From 35cc05d286d412be7d7b6e74f011de9700655182 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Thu, 17 May 2018 23:24:36 -0700 Subject: [PATCH 01/24] Working build, even if the processes aren't working. --- .babelrc | 9 +- .eslintrc | 2 +- CONTRIBUTING.md | 4 +- config/webpack.browser.config.js | 69 +- config/webpack.server.config.js | 90 +- dist/cli/index.js | 2201 +---- dist/cli/index.js.map | 2 +- dist/web/index.js | 2096 +--- dist/web/index.js.map | 2 +- package-lock.json | 14728 ++++++++++++++++++++++------- package.json | 97 +- src/cli/actions.js | 14 +- src/cli/handleHTML.js | 17 +- src/cli/handleKSS.js | 8 +- src/cli/server.js | 32 +- src/cli/utils.js | 13 +- src/defaultConfig/README.md | 2 +- src/web/index.js | 18 +- templates/hotTemplate.js | 10 +- 19 files changed, 11254 insertions(+), 8160 deletions(-) diff --git a/.babelrc b/.babelrc index e4ed7aa..a7b44a8 100644 --- a/.babelrc +++ b/.babelrc @@ -5,7 +5,7 @@ ["env", { "targets": { "node": "6.11.4", - } + }, }] ] }, @@ -14,7 +14,10 @@ ["env", { "targets": { "node": "6.11.4", - } + }, + "modules": "commonjs", + "useBuiltIns": "usage", + "debug": false, }] ] }, @@ -32,4 +35,4 @@ ] } } -} \ No newline at end of file +} diff --git a/.eslintrc b/.eslintrc index 0d92346..d19be09 100644 --- a/.eslintrc +++ b/.eslintrc @@ -30,7 +30,6 @@ "plugins": [ "jest" ], - // Do NOT change these rules "rules": { "indent": [2, 2, {"SwitchCase": 1}], "max-len": [2, 80, 4, { @@ -64,5 +63,6 @@ "no-constant-condition": ["error"], "arrow-parens": ["error", "always"], "no-console": 0, + "function-paren-newline": 0, } } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fd518fb..9b00b1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,7 +3,7 @@ At this point contribution guidelines are limited. This document contains information on setting up and developing locally; otherwise the primary concern for contributors is whether or not you are a member of the Alley Interactive organization (Huron's sponsor). ## Development -There are two primary comonents to Huron: the CLI and the web (browser) script. Since each of these is used for different purposes, there is a different build pipeline for each. +There are two primary components to Huron: the CLI and the web (browser) script. Since each of these is used for different purposes, there is a different build pipeline for each. Generally speaking, there are three NPM scripts you'll need to compile the Huron source: * `dev-cli`: This script will start Webpack for the CLI (`/src/cli`) only using Webpack's watcher. Hot Module Reloading is also enabled with this script. @@ -14,7 +14,7 @@ Generally speaking, there are three NPM scripts you'll need to compile the Huron In order to allow users to reference the `.bin` version of the Huron cli via NPM, we need to bundle the CLI into a single `.js` file. To do this we utilize an internal Webpack install, for which the configuration is located in `/config/webpack-node.config.js`. As detailed above, you should use the `dev-cli` command during development, as this will allow you to hot reload your changes. Currently there is no HMR handling for the CLI scripts, so this functionality may be buggy. ### Web -Huron's browser-facing scripts will run through the user's own (or Huron's default) Webpack configuration and, as such, cannot be pre-compiled by Webpack. Therefore, we simply transpile the source for the web scripts using babel-cli to ensure some measure of browser compatibility. Note: At some point, it may be worth exploring further the possibility of dynamically inserting the babel-loader specifically for the huron web scripts when the user run's the CLI. +Huron's browser-facing scripts will run through the user's own (or Huron's default) Webpack configuration and, as such, cannot be pre-compiled by Webpack. Therefore, we simply transpile the source for the web scripts using babel-cli to ensure some measure of browser compatibility. Note: At some point, it may be worth exploring further the possibility of dynamically inserting the babel-loader specifically for the huron web scripts when the user runs the CLI. ## Submitting your changes Note for all new package versions: the github release should _always_ match the corresponding release to NPM. In addition, publishes from the `beta` branch must always include a `-beta.0` after the version number to indicate a beta pre-release. In addition, generally speaking, every merge of a Pull Request should be associated with a version bump. If you are writing changes for documentation only, a version bump is not necessary. When working on changes for Huron, please follow these guildelines: diff --git a/config/webpack.browser.config.js b/config/webpack.browser.config.js index 22b1579..51dc3e0 100644 --- a/config/webpack.browser.config.js +++ b/config/webpack.browser.config.js @@ -2,40 +2,39 @@ const webpack = require('webpack'); const path = require('path'); -module.exports = function getConfig(env) { - const context = path.join(__dirname, '../'); - - return { - context, - entry: { - web: ['./src/web/index'], - }, - devtool: 'cheap-module-source-map', - plugins: [ - new webpack.NamedModulesPlugin(), +module.exports = { + context: path.join(__dirname, '../'), + entry: { + web: ['./src/web/index'], + }, + devtool: 'cheap-module-source-map', + optimization: { + namedModules: true, // NamedModulesPlugin() + }, + plugins: [ + new webpack.NamedModulesPlugin(), + ], + output: { + path: path.join(__dirname, '../dist/web'), + filename: 'index.js', + chunkFilename: '[name].chunk.min.js', + publicPath: '../', + library: 'huron', + libraryTarget: 'commonjs2', + }, + module: { + rules: [ + { + enforce: 'pre', + test: /\.js$/, + exclude: [/\.min\.js$/], + use: 'eslint-loader', + }, + { + test: /\.js$/, + // exclude: /node_modules/, + use: 'babel-loader', + }, ], - output: { - path: path.join(context, 'dist/web'), - filename: 'index.js', - chunkFilename: '[name].chunk.min.js', - publicPath: '../', - library: 'huron', - libraryTarget: 'commonjs2', - }, - module: { - rules: [ - { - enforce: 'pre', - test: /\.js$/, - exclude: [/node_modules/, /\.min\.js$/], - use: 'eslint-loader', - }, - { - test: /\.js$/, - exclude: /node_modules/, - use: 'babel-loader', - }, - ], - }, - }; + }, }; diff --git a/config/webpack.server.config.js b/config/webpack.server.config.js index dcd1a77..719e360 100644 --- a/config/webpack.server.config.js +++ b/config/webpack.server.config.js @@ -1,55 +1,49 @@ +/* eslint-disable import/no-extraneous-dependencies */ // Requires -const webpack = require('webpack'); const path = require('path'); - /* eslint-disable */ const nodeExternals = require('webpack-node-externals'); const CleanPlugin = require('clean-webpack-plugin'); -/* eslint-enable */ -module.exports = function getConfig(env) { - const context = path.join(__dirname, '../'); - - return { - context, - entry: { - cli: ['./src/cli/index'], - }, - plugins: [ - new CleanPlugin(['dist/cli'], { - root: context, - exclude: 'index.js', - }), +module.exports = { + context: path.join(__dirname, '../'), + entry: { + cli: ['./src/cli/index'], + }, + plugins: [ + new CleanPlugin(['dist/cli'], { + root: path.join(__dirname, '../'), + exclude: 'index.js', + }), + ], + target: 'node', + devtool: 'cheap-module-source-map', + output: { + path: path.join(__dirname, '../dist/cli'), + filename: 'index.js', + chunkFilename: '[name].chunk.min.js', + publicPath: '../', + }, + externals: ['localConfig', 'localHuron'].concat(nodeExternals({ + whitelist: [/webpack\/hot/], + })), + node: { + __filename: false, + __dirname: false, + }, + module: { + noParse: [/requireExternal/], + rules: [ + { + enforce: 'pre', + test: /\.js$/, + exclude: [/\.min\.js$/], + use: 'eslint-loader', + }, + { + test: /\.js$/, + exclude: [/\.min\.js$/], + use: 'babel-loader', + }, ], - target: 'node', - devtool: 'cheap-module-source-map', - output: { - path: path.join(context, 'dist/cli'), - filename: 'index.js', - chunkFilename: '[name].chunk.min.js', - publicPath: '../', - }, - externals: ['localConfig', 'localHuron'].concat(nodeExternals({ - whitelist: [/webpack\/hot/], - })), - node: { - __filename: false, - __dirname: false, - }, - module: { - noParse: [/requireExternal/], - rules: [ - { - enforce: 'pre', - test: /\.js$/, - exclude: [/node_modules/, /\.min\.js$/], - use: 'eslint-loader', - }, - { - test: /\.js$/, - exclude: [/node_modules/, /\.min\.js$/], - use: 'babel-loader', - }, - ], - }, - }; + }, }; diff --git a/dist/cli/index.js b/dist/cli/index.js index 256039e..5f1867b 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2201 +1,2 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "../"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 30); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -module.exports = require("path"); - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.normalizeSectionData = normalizeSectionData; -exports.writeSectionData = writeSectionData; -exports.getTemplateDataPair = getTemplateDataPair; -exports.normalizeHeader = normalizeHeader; -exports.wrapMarkup = wrapMarkup; -exports.generateFilename = generateFilename; -exports.writeFile = writeFile; -exports.removeFile = removeFile; -exports.writeSectionTemplate = writeSectionTemplate; -exports.getSection = getSection; -exports.matchKssDir = matchKssDir; -exports.mergeClassnameJSON = mergeClassnameJSON; -exports.removeTrailingSlash = removeTrailingSlash; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const cwd = process.cwd(); // Current working directory - -/** - * Ensure predictable data structure for KSS section data - * - * @function normalizeSectionData - * @param {object} section - section data - * @return {object} section data - */ -/** @module cli/utilities */ -function normalizeSectionData(section) { - const data = section.data || section; - - if (!data.referenceURI || '' === data.referenceURI) { - data.referenceURI = section.referenceURI(); - } - - return data; -} - -/** - * Ensure predictable data structure for KSS section data - * - * @function writeSectionData - * @param {object} store - data store - * @param {object} section - section data - * @param {string} sectionPath - output destination for section data file - */ -function writeSectionData(store, section, sectionPath = false) { - let outputPath = sectionPath; - let sectionFileInfo; - - if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) { - sectionFileInfo = _path2.default.parse(section.kssPath); - outputPath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); - } - - // Output section data - if (outputPath) { - return writeFile(section.referenceURI, 'section', outputPath, JSON.stringify(section), store); - } - - console.warn( // eslint-disable-line no-console - _chalk2.default.red(`Failed to write section data for ${section.referenceURI}`)); - return false; -} - -/** - * Find .json from a template file or vice versa - * - * @function getTemplateDataPair - * @param {object} file - file object from path.parse() - * @param {object} section - KSS section data - * @return {string} relative path to module JSON file - */ -function getTemplateDataPair(file, section, store) { - const huron = store.get('config'); - const kssDir = matchKssDir(file.dir, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const partnerType = '.json' === file.ext ? 'template' : 'data'; - const partnerExt = '.json' === file.ext ? huron.get('templates').extension : '.json'; - - const pairPath = _path2.default.join(componentPath, generateFilename(section.referenceURI, partnerType, partnerExt, store)); - - return `./${pairPath}`; - } - - return false; -} - -/** - * Normalize a section title for use as a filename - * - * @function normalizeHeader - * @param {string} header - section header extracted from KSS documentation - * @return {string} modified header, lowercase and words separated by dash - */ -function normalizeHeader(header) { - return header.toLowerCase().replace(/\s?\W\s?/g, '-'); -} - -/** - * Wrap html in required template tags - * - * @function wrapMarkup - * @param {string} content - html or template markup - * @param {string} templateId - id of template (should be section reference) - * @return {string} modified HTML - */ -function wrapMarkup(content, templateId) { - return ` - -\n`; -} - -/** - * Generate a filename based on referenceURI, type and file object - * - * @function generateFilename - * @param {string} id - The name of the file (with extension). - * @param {string} type - the type of file output - * @param {object} ext - file extension - * @param {store} store - data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function generateFilename(id, type, ext, store) { - // Type of file and its corresponding extension(s) - const types = store.get('types'); - const outputExt = '.scss' !== ext ? ext : '.html'; - - /* eslint-disable */ - if (-1 === types.indexOf(type)) { - console.log(`Huron data ${type} does not exist`); - return false; - } - /* eslint-enable */ - - return `${id}-${type}${outputExt}`; -} - -/** - * Copy an HTML file into the huron output directory. - * - * @function writeFile - * @param {string} id - The name of the file (with extension). - * @param {string} content - The content of the file to write. - * @param {string} type - the type of file output - * @param {object} store - The data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function writeFile(id, type, filepath, content, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - const filename = generateFilename(id, type, file.ext, store); - const kssDir = matchKssDir(filepath, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); - const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); - let newContent = content; - - if ('data' !== type && 'section' !== type) { - newContent = wrapMarkup(content, id); - } - - try { - _fsExtra2.default.outputFileSync(outputPath, newContent); - console.log(_chalk2.default.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console - } catch (e) { - console.log(_chalk2.default.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console - } - - return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; - } - - return false; -} - -/** - * Delete a file in the huron output directory - * - * @function removeFile - * @param {string} filename - The name of the file (with extension). - * @param {object} store - The data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function removeFile(id, type, filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - const filename = generateFilename(id, type, file.ext, store); - const kssDir = matchKssDir(filepath, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); - const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); - - try { - _fsExtra2.default.removeSync(outputPath); - console.log(_chalk2.default.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console - } catch (e) { - console.log( // eslint-disable-line no-console - _chalk2.default.red(`${outputRelative} does not exist or cannot be deleted`)); - } - - return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; - } - - return false; -} - -/** - * Write a template for sections - * - * @function writeSectionTemplate - * @param {string} filepath - the original template file - * @param {object} store - data store - * @return {object} updated store - */ -function writeSectionTemplate(filepath, store) { - const huron = store.get('config'); - const sectionTemplate = wrapMarkup(_fsExtra2.default.readFileSync(filepath, 'utf8')); - const componentPath = './huron-assets/section.hbs'; - const output = _path2.default.join(cwd, huron.get('root'), componentPath); - - // Move huron script and section template into huron root - _fsExtra2.default.outputFileSync(output, sectionTemplate); - console.log(_chalk2.default.green(`writing section template to ${output}`)); // eslint-disable-line no-console - - return store.set('sectionTemplatePath', componentPath); -} - -/** - * Request for section data based on section reference - * - * @function writeSectionTemplate - * @param {string} search - key on which to match section - * @param {field} string - field in which to look to determine section - * @param {obj} store - sections memory store - */ -function getSection(search, field, store) { - const sectionValues = store.getIn(['sections', 'sectionsByPath']).valueSeq(); - let selectedSection = false; - - if (field) { - selectedSection = sectionValues.filter(value => value[field] === search).get(0); - } else { - selectedSection = store.getIn(['sections', 'sectionsByPath', search]); - } - - return selectedSection; -} - -/** - * Find which configured KSS directory a filepath exists in - * - * @function matchKssDir - * @param {string} filepath - filepath to search for - * @param {object} huron - huron configuration - * @return {string} kssMatch - relative path to KSS directory - */ -function matchKssDir(filepath, huron) { - const kssSource = huron.get('kss'); - // Include forward slash in our test to make sure we're matchin a directory, not a file extension - const kssMatch = kssSource.filter(dir => filepath.includes(`/${dir}`)); - - if (kssMatch.length) { - return kssMatch[0]; - } - - return false; -} - -/** - * Merge JSON files for css modules classnames in a provided directory - * - * @function mergeClassnameJSON - * @param {string} directory - directory containing classname JSON files - * - * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within - * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) - */ -function mergeClassnameJSON(directory) { - let files; - - // If no config is provided, return immediately - if (!directory) { - return {}; - } - - // Try to read through classnames directory - try { - files = _fsExtra2.default.readdirSync(directory); - } catch (e) { - console.warn(_chalk2.default.red(e)); - } - - // Merge classname json files - const classNamesMerged = files.reduce((acc, file) => { - const fileInfo = _path2.default.parse(file); - let classNames = {}; - - if ('.json' === fileInfo.ext) { - try { - const contents = _fsExtra2.default.readFileSync(_path2.default.join(directory, file), 'utf8'); - classNames = JSON.parse(contents); - } catch (e) { - console.warn(_chalk2.default.red(e)); - } - } - - return Object.assign({}, acc, { [fileInfo.name]: classNames }); - }, {}); - - return classNamesMerged; -} - -/** - * Remove the trailing slash from a provided directory - * - * @function removeTrailingSlash - * @param {string} directory - directory path - * @return {string} directory - directory path with trailing slash removed - */ -function removeTrailingSlash(directory) { - if ('/' === directory.slice(-1)) { - return directory.slice(0, -1); - } - - return directory; -} - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -module.exports = require("chalk"); - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -module.exports = require("fs-extra"); - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _commander = __webpack_require__(21); - -var _commander2 = _interopRequireDefault(_commander); - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Requires -/** @global */ - -/** - * Process huron CLI arguments - * - * @function parseArgs - * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production - */ -/** @module cli/parse-arguments */ -/* eslint-disable space-unary-ops */ - -function parseArgs() { - const envArg = {}; - - process.argv = process.argv.filter(arg => { - if (-1 !== arg.indexOf('--env')) { - const envParts = arg.split('.')[1].split('='); - - envArg[envParts[0]] = envParts[1] || true; - return false; - } - - return true; - }); - - _commander2.default.version('1.0.1').option('-c, --huron-config [huronConfig]', '[huronConfig] for all huron options', _path2.default.resolve(__dirname, '../defaultConfig/huron.config.js')).option('-w, --webpack-config [webpackConfig]', '[webpackConfig] for all webpack options', _path2.default.resolve(__dirname, '../defaultConfig/webpack.config.js')).option('-p, --production', 'compile assets once for production'); - - _commander2.default.env = envArg; - - // Only parse if we're not running tests - if (!process.env.npm_lifecycle_event || 'test' !== process.env.npm_lifecycle_event) { - _commander2.default.parse(process.argv); - } -} - -parseArgs(); -/* eslint-enable */ - -exports.default = _commander2.default; - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -module.exports = require("webpack"); - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.config = exports.defaultStore = undefined; - -var _immutable = __webpack_require__(24); - -var _generateConfig = __webpack_require__(13); - -var _generateConfig2 = _interopRequireDefault(_generateConfig); - -var _utils = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Create initial data structure - -// Merge Huron default webpack config with user config -const config = (0, _generateConfig2.default)(); - -// Make sure the kss option is represented as an array -config.huron.kss = [].concat(config.huron.kss); - -/* eslint-disable */ -/** - * Initial structure for immutable data store - * - * @global - */ -const defaultStore = (0, _immutable.Map)({ - types: ['template', 'data', 'description', 'section', 'prototype', 'sections-template'], - config: (0, _immutable.Map)(config.huron), - classNames: (0, _utils.mergeClassnameJSON)(config.huron.classNames), - sections: (0, _immutable.Map)({ - sectionsByPath: (0, _immutable.Map)({}), - sectionsByURI: (0, _immutable.Map)({}), - sorted: {} - }), - templates: (0, _immutable.Map)({}), - prototypes: (0, _immutable.Map)({}), - sectionTemplatePath: '', - referenceDelimiter: '.' -}); -/* eslint-enable */ - -exports.defaultStore = defaultStore; -exports.config = config; - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateTemplate = updateTemplate; -exports.deleteTemplate = deleteTemplate; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _utils = __webpack_require__(1); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of a template or data (json) file - * - * @function updateTemplate - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated memory store - */ -/** @module cli/template-handler */ -function updateTemplate(filepath, section, store) { - const file = _path2.default.parse(filepath); - const pairPath = utils.getTemplateDataPair(file, section, store); - const type = '.json' === file.ext ? 'data' : 'template'; - const newSection = section; - const newStore = store; - let content = false; - - try { - content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - } catch (e) { - console.log(_chalk2.default.red(`${filepath} does not exist`)); - } - - if (content) { - const requirePath = utils.writeFile(newSection.referenceURI, type, filepath, content, newStore); - newSection[`${type}Path`] = requirePath; - - if ('template' === type) { - newSection.templateContent = content; - - // Rewrite section data with template content - newSection.sectionPath = utils.writeSectionData(newStore, newSection); - } - - return newStore.setIn(['templates', requirePath], pairPath).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle removal of a template or data (json) file - * - * @function deleteTemplate - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated memory store - */ -function deleteTemplate(filepath, section, store) { - const file = _path2.default.parse(filepath); - const type = '.json' === file.ext ? 'data' : 'template'; - const newSection = section; - const newStore = store; - - // Remove partner - const requirePath = utils.removeFile(newSection.referenceURI, type, filepath, newStore); - delete newSection[`${type}Path`]; - - return newStore.deleteIn(['templates', requirePath]).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); -} - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.writeStore = exports.requireTemplates = undefined; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _hotTemplate = __webpack_require__(20); - -var _hotTemplate2 = _interopRequireDefault(_hotTemplate); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* eslint-enable */ - -const cwd = process.cwd(); - -// We need to prepend this to the browser script as a string but still want to transpile it, -// hence loading it using `raw-loader` so we receive a string from webpack -/* eslint-disable */ -/** @module cli/require-templates */ - -const huronScript = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../web/index.js'), 'utf8'); - -/** - * Write code for requiring all generated huron assets - * - * @function requireTemplates - * @param {object} store - memory store - */ -const requireTemplates = exports.requireTemplates = function requireTemplates(store) { - const huron = store.get('config'); - const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); - // These will be used to replace strings in the hotTemplate. - // In order to accurately replace strings but still keep things parseable by eslint and babel, - // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object. - // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`, - // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`. - const hotVariableScope = { - sectionTemplatePath: `'${huron.get('sectionTemplate')}'`, - requireRegex: new RegExp(`\\.html|\\.json|\\${huron.get('templates').extension}$`), - requirePath: `'../${huron.get('output')}'` - }; - const hotTemplateTransformed = Object.keys(hotVariableScope).reduce((acc, curr) => acc.replace(new RegExp(`hotScope.${curr}`, 'g'), hotVariableScope[curr]), _hotTemplate2.default); - - // Write the contents of this script. - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'index.js'), hotTemplateTransformed); - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'insertNodes.js'), huronScript); -}; - -/** - * Output entire data store to a JS object and handle if any KSS data has changed - * - * @function writeStore - * @param {object} store - memory store - * @param {string} changed - filepath of changed KSS section, if applicable - */ -const writeStore = exports.writeStore = function writeStore(store, newStore = false) { - const updatedStore = newStore || store; - const huron = updatedStore.get('config'); - const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); - - // Write updated data store - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'huron-store.js'), `module.exports = ${JSON.stringify(updatedStore.toJSON())}`); -}; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _actions = __webpack_require__(11); - -var _requireTemplates = __webpack_require__(8); - -var _utils = __webpack_require__(1); - -var _parseArgs = __webpack_require__(4); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _server = __webpack_require__(17); - -var _server2 = _interopRequireDefault(_server); - -var _defaultStore = __webpack_require__(6); - -var _fileWatcher = __webpack_require__(12); - -var _fileWatcher2 = _interopRequireDefault(_fileWatcher); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Initialize data store with files from gaze and original data structure - * - * @global - */ -// Local imports -const huron = _defaultStore.defaultStore.get('config'); -let store = (0, _actions.initFiles)(_fileWatcher2.default.watched(), _defaultStore.defaultStore); - -(0, _requireTemplates.requireTemplates)(store); -(0, _requireTemplates.writeStore)(store); - -// If building for production, close gaze and exit process once initFiles is done. -if (_parseArgs2.default.production) { - _fileWatcher2.default.close(); -} - -/** @module cli/gaze */ -_fileWatcher2.default.on('all', (event, filepath) => { - store = (0, _actions.updateClassNames)(filepath, store); - (0, _requireTemplates.writeStore)(store); -}); - -/** - * Anonymous handler for Gaze 'changed' event indicating a file has changed - * - * @callback changed - * @listens gaze:changed - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('changed', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.updateFile)(filepath, store); - } - - console.log(_chalk2.default.green(`${filepath} updated!`)); -}); - -/** - * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories - * - * @callback added - * @listens gaze:added - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('added', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.updateFile)(filepath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.blue(`${filepath} added!`)); -}); - -/** - * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed - * - * @callback renamed - * @listens gaze:renamed - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('renamed', (newPath, oldPath) => { - if ((0, _utils.matchKssDir)(newPath, huron)) { - store = (0, _actions.deleteFile)(oldPath, store); - store = (0, _actions.updateFile)(newPath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.blue(`${newPath} added!`)); -}); - -/** - * Anonymous handler for Gaze 'deleted' event indicating a file has been removed - * - * @callback deleted - * @listens gaze:deleted - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('deleted', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.deleteFile)(filepath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.red(`${filepath} deleted`)); -}); - -// Start webpack or build for production -(0, _server2.default)(_defaultStore.config); - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = huron => ({ - hot: true, - host: 'localhost', - quiet: false, - noInfo: false, - overlay: true, - stats: { - colors: true, - hash: false, - version: false, - assets: false, - chunks: false, - modules: false, - reasons: false, - children: false, - source: false - }, - publicPath: `/${huron.root}` -}); - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.initFiles = initFiles; -exports.updateFile = updateFile; -exports.deleteFile = deleteFile; -exports.updateClassNames = updateClassNames; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _isEqual = __webpack_require__(26); - -var _isEqual2 = _interopRequireDefault(_isEqual); - -var _handleHTML = __webpack_require__(14); - -var _handleTemplates = __webpack_require__(7); - -var _handleKSS = __webpack_require__(15); - -var _utils = __webpack_require__(1); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Recursively loop through initial watched files list from Gaze. - * - * @param {object} data - object containing directory and file paths - * @param {object} store - memory store - * @return {object} newStore - map object of entire data store - */ -function initFiles(data, store, depth = 0) { - const type = Object.prototype.toString.call(data); - const huron = store.get('config'); - let newStore = store; - let info; - let files; - - switch (type) { - case '[object Object]': - files = Object.keys(data); - newStore = files.reduce((prevStore, file) => initFiles(data[file], prevStore, depth), newStore); - break; - - case '[object Array]': - newStore = data.reduce((prevStore, file) => initFiles(file, prevStore, depth), newStore); - break; - - case '[object String]': - info = _path2.default.parse(data); - - // Only call update if data is a filepath and it's within the KSS source directory - if (info.ext && !data.includes(huron.get('classNames'))) { - newStore = updateFile(data, store); - } - break; - - default: - break; - } - - return newStore; -} - -/** - * Logic for updating and writing file information based on file type (extension) - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * @return {object} store - map object of map object of entire data store - */ -/** @module cli/actions */ - -// Imports -function updateFile(filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - let field; - let section; - - if (filepath.includes(huron.get('sectionTemplate'))) { - return utils.writeSectionTemplate(filepath, store); - } - - switch (file.ext) { - // Plain HTML template, external - case '.html': - section = utils.getSection(file.base, 'markup', store); - - if (section) { - return (0, _handleHTML.updateHTML)(filepath, section, store); - } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { - return (0, _handleHTML.updatePrototype)(filepath, store); - } - - console.log(_chalk2.default.red(`Failed to write file: ${file.name}`)); - break; - - // Handlebars template, external - case huron.get('templates').extension: - case '.json': - field = '.json' === file.ext ? 'data' : 'markup'; - section = utils.getSection(file.base, field, store); - - if (section) { - return (0, _handleTemplates.updateTemplate)(filepath, section, store); - } - - console.log( // eslint-disable-line no-console - _chalk2.default.red(`Could not find associated KSS section for ${filepath}`)); - break; - - // KSS documentation (default extension is `.css`) - // Will also output a template if markup is inline - // Note: inline markup does _not_ support handlebars currently - case huron.get('kssExtension'): - return (0, _handleKSS.updateKSS)(filepath, store); - - // This should never happen if Gaze is working properly - default: - return store; - } - - return store; -} - -/** - * Logic for deleting file information and files based on file type (extension) - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * @return {object} newStore - map object of map object of entire data store - */ -function deleteFile(filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - let field = ''; - let section = null; - let newStore = store; - - switch (file.ext) { - // Plain HTML template, external - case '.html': - section = utils.getSection(file.base, 'markup', store); - - if (section) { - newStore = (0, _handleHTML.deleteHTML)(filepath, section, store); - } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { - newStore = (0, _handleHTML.deletePrototype)(filepath, store); - } - break; - - case huron.get('templates').extension: - case '.json': - field = '.json' === file.ext ? 'data' : 'markup'; - section = utils.getSection(file.base, field, store); - - if (section) { - newStore = (0, _handleTemplates.deleteTemplate)(filepath, section, store); - } - break; - - case huron.get('kssExtension'): - section = utils.getSection(filepath, false, store); - - if (section) { - newStore = (0, _handleKSS.deleteKSS)(filepath, section, store); - } - break; - - default: - console.warn( // eslint-disable-line no-console - _chalk2.default.red(`Could not delete: ${file.name}`)); - break; - } - - return newStore; -} - -/** - * Logic for updating localized classnames from CSS modules - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * - * @return void - */ -function updateClassNames(filepath, store) { - const classNamesPath = store.getIn(['config', 'classNames']); - - if (filepath.includes(classNamesPath)) { - const oldClassnames = store.get('classNames'); - const newClassnames = utils.mergeClassnameJSON(classNamesPath); - - if (!(0, _isEqual2.default)(oldClassnames, newClassnames)) { - return store.set('classNames', newClassnames); - } - } - - return store; -} - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.watchedFiles = exports.extensions = undefined; - -var _gaze = __webpack_require__(22); - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _utils = __webpack_require__(1); - -var _defaultStore = __webpack_require__(6); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Huron configuration object - * - * @global - */ -const huron = _defaultStore.defaultStore.get('config'); - -/** - * Available file extensions. Extensions should not include the leading '.' - * - * @global - */ -const extensions = exports.extensions = [huron.get('kssExtension'), huron.get('templates').extension, 'html', 'json'].map(extension => extension.replace('.', '')); - -// Generate watch list for Gaze, start gaze -const watchedFiles = exports.watchedFiles = []; - -// Watch section template -watchedFiles.push(_path2.default.resolve(huron.get('sectionTemplate'))); - -// Watch cssmodules classname files (if they exist) -if (huron.get('classNames')) { - watchedFiles.push(`${_path2.default.resolve(huron.get('classNames'))}/*.json`); -} - -// Watch all provided kss directories -huron.get('kss').forEach(dir => { - watchedFiles.push(`${(0, _utils.removeTrailingSlash)(dir)}/**/*.+(${extensions.join('|')})`); -}); - -/** - * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON - * - * @global - */ -const gaze = new _gaze.Gaze(watchedFiles); - -exports.default = gaze; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = generateConfig; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _url = __webpack_require__(28); - -var _url2 = _interopRequireDefault(_url); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _webpack = __webpack_require__(5); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _htmlWebpackPlugin = __webpack_require__(23); - -var _htmlWebpackPlugin2 = _interopRequireDefault(_htmlWebpackPlugin); - -var _parseArgs = __webpack_require__(4); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _requireExternal = __webpack_require__(16); - -var _requireExternal2 = _interopRequireDefault(_requireExternal); - -var _webpack3 = __webpack_require__(19); - -var _webpack4 = _interopRequireDefault(_webpack3); - -var _huron = __webpack_require__(18); - -var _huron2 = _interopRequireDefault(_huron); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const cwd = process.cwd(); - -// Require configs passed in by user from CLI -/** @module cli/generate-config */ -let defaultConfig = false; -const localConfig = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.webpackConfig)); -const localHuron = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.huronConfig)); - -/** - * Generate a mutant hybrid of the huron default webpack config and your local webpack config - * - * @function generateConfig - * @param {object} config - local webpack config - * @return {object} newConfig - updated data store - */ -function generateConfig() { - let newConfig = localConfig; - let newHuron = localHuron; - - // Execute config function, if provided - if ('function' === typeof newConfig) { - newConfig = newConfig(_parseArgs2.default.env); - } - - // Execute huron config function, if provided - if ('function' === typeof newHuron) { - newHuron = newHuron(_parseArgs2.default.env); - } - - // Merge huron defaults with user settings - newHuron = Object.assign({}, _huron2.default, newHuron); - // Use user huron config to modify webpack defaults - defaultConfig = (0, _webpack4.default)(newHuron); - - // Set ouput options - newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output); - newConfig.output.path = defaultConfig.output.path; - newConfig.output.publicPath = defaultConfig.output.publicPath; - - // configure entries - newConfig = configureEntries(newHuron, newConfig); - - // configure plugins - newConfig = configurePlugins(newHuron, newConfig); - - // configure loaders - newConfig = configureLoaders(newHuron, newConfig); - - // Add HTMLWebpackPlugin for each configured prototype - newConfig = configurePrototypes(newHuron, newConfig); - - // Remove existing devServer settings - delete newConfig.devServer; - - return { - huron: newHuron, - webpack: newConfig - }; -} - -/** - * Configure and manage webpack entry points - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configureEntries(huron, config) { - const entry = config.entry[huron.entry]; - const newConfig = config; - - newConfig.entry = {}; - if (!_parseArgs2.default.production) { - newConfig.entry[huron.entry] = [`webpack-dev-server/client/index.js?http://localhost:${huron.port}/`, 'webpack/hot/dev-server', _path2.default.join(cwd, huron.root, 'huron-assets/index')].concat(entry); - } else { - newConfig.entry[huron.entry] = [_path2.default.join(cwd, huron.root, 'huron-assets/index')].concat(entry); - } - - return newConfig; -} - -/** - * Configure and manage webpack plugins - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configurePlugins(huron, config) { - const newConfig = config; - - newConfig.plugins = config.plugins || []; - - if (!_parseArgs2.default.production) { - if (newConfig.plugins && newConfig.plugins.length) { - newConfig.plugins = newConfig.plugins.filter(plugin => 'HotModuleReplacementPlugin' !== plugin.constructor.name && 'NamedModulesPlugin' !== plugin.constructor.name); - } - newConfig.plugins = newConfig.plugins.concat([new _webpack2.default.HotModuleReplacementPlugin(), new _webpack2.default.NamedModulesPlugin()]); - } - - return newConfig; -} - -/** - * Configure and manage webpack loaders - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configureLoaders(huron, config) { - // Manage loaders - const templatesLoader = huron.templates.rule || {}; - const newConfig = config; - - // Make sure we're only using templates loader for files in huron root - templatesLoader.include = [_path2.default.join(cwd, huron.root, huron.output)]; - - // Normalize module and module.rules - newConfig.module = newConfig.module || {}; - newConfig.module.rules = newConfig.module.rules || newConfig.module.loaders || []; - - // Add default loaders - newConfig.module.rules = defaultConfig.module.rules.concat(newConfig.module.rules, templatesLoader); - - return newConfig; -} - -/** - * Create an HTML webpack plugin for each configured prototype - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configurePrototypes(huron, config) { - const wrapperTemplate = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../../templates/prototypeTemplate.hbs'), 'utf8'); - - const defaultHTMLPluginOptions = { - title: 'Huron', - window: huron.window, - js: [], - css: [], - filename: 'index.html', - template: _path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), - inject: false, - chunks: [huron.entry] - }; - const newConfig = config; - - // Write prototype template file for HTML webpack plugin - _fsExtra2.default.outputFileSync(_path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), wrapperTemplate); - - huron.prototypes.forEach(prototype => { - const newPrototype = prototype; - let opts = {}; - - // Merge configured settings with default settings - if ('string' === typeof prototype) { - opts = Object.assign({}, defaultHTMLPluginOptions, { - title: prototype, - filename: `${prototype}.html` - }); - } else if ('object' === typeof prototype && {}.hasOwnProperty.call(prototype, 'title')) { - // Create filename based on configured title if not provided - if (!prototype.filename) { - newPrototype.filename = `${prototype.title}.html`; - } - - // Move css assets for this prototype, - // reset css option with new file paths - if (prototype.css) { - newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron); - } - - // Move js assets for this prototype, - // reset js option with new file paths - if (prototype.js) { - newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron); - } - - opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype); - } - - // Move global css assets, - // reset css option with new file paths - if (huron.css.length) { - opts.css = opts.css.concat(moveAdditionalAssets(huron.css, 'css', huron)); - } - - // Move global js assets, - // reset js option with new file paths - if (huron.js.length) { - opts.js = opts.js.concat(moveAdditionalAssets(huron.js, 'js', huron)); - } - - // Push a new plugin for each configured prototype - if (Object.keys(opts).length) { - newConfig.plugins.push(new _htmlWebpackPlugin2.default(opts)); - } - }); - - return newConfig; -} - -/** - * Move relative (and local) js and css assets provided in huron options - * - * @param {array|string} assets - array of assets or single asset - * @param {string} subdir - subdirectory in huron root from which to load additional asset - * @param {object} huron - huron configuration object - * @return {array} assetResults - paths to js and css assets - */ -function moveAdditionalAssets(assets, subdir = '', huron) { - const currentAssets = [].concat(assets); - const assetResults = []; - - currentAssets.forEach(asset => { - const assetInfo = _path2.default.parse(asset); - const assetURL = _url2.default.parse(asset); - const sourcePath = _path2.default.join(cwd, asset); - const outputPath = _path2.default.resolve(cwd, huron.root, subdir, assetInfo.base); - const loadPath = _path2.default.join(subdir, assetInfo.base); - let contents = false; - - if (!_path2.default.isAbsolute(asset) && !assetURL.protocol) { - try { - contents = _fsExtra2.default.readFileSync(sourcePath); - } catch (e) { - console.warn(`could not read ${sourcePath}`); - } - - if (contents) { - _fsExtra2.default.outputFileSync(outputPath, contents); - assetResults.push(loadPath); - } - } else { - assetResults.push(asset); - } - }); - - return assetResults; -} - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateHTML = updateHTML; -exports.deleteHTML = deleteHTML; -exports.updatePrototype = updatePrototype; -exports.deletePrototype = deletePrototype; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _utils = __webpack_require__(1); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of an HMTL template - * - * @function updateHTML - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateHTML(filepath, section, store) { - const file = _path2.default.parse(filepath); - const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - const newSection = section; - - if (content) { - newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, content, store); - newSection.templateContent = content; - - // Rewrite section data with template content - newSection.sectionPath = utils.writeSectionData(store, newSection); - - return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - console.log(`File ${file.base} could not be read`); - return store; -} - -/** - * Handle removal of an HMTL template - * - * @function deleteHTML - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -/** @module cli/html-handler */ -function deleteHTML(filepath, section, store) { - const newSection = section; - - utils.removeFile(newSection.referenceURI, 'template', filepath, store); - - delete newSection.templatePath; - - return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); -} - -/** - * Handle update for a prototype file - * - * @function updatePrototype - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function updatePrototype(filepath, store) { - const file = _path2.default.parse(filepath); - const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - - if (content) { - const requirePath = utils.writeFile(file.name, 'prototype', filepath, content, store); - - return store.setIn(['prototypes', file.name], requirePath); - } - - console.log(`File ${file.base} could not be read`); - return store; -} - -/** - * Handle removal of a prototype file - * - * @function deletePrototype - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function deletePrototype(filepath, store) { - const file = _path2.default.parse(filepath); - const requirePath = utils.removeFile(file.name, 'prototype', filepath, store); - - return store.setIn(['prototypes', file.name], requirePath); -} - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateKSS = updateKSS; -exports.deleteKSS = deleteKSS; - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(3); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _kss = __webpack_require__(25); - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _utils = __webpack_require__(1); - -var utils = _interopRequireWildcard(_utils); - -var _handleTemplates = __webpack_require__(7); - -var _requireTemplates = __webpack_require__(8); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of a KSS section - * - * @function updateKSS - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateKSS(filepath, store) { - const kssSource = _fsExtra2.default.readFileSync(filepath, 'utf8'); - const huron = store.get('config'); - const oldSection = utils.getSection(filepath, false, store) || {}; - const file = _path2.default.parse(filepath); - let newStore = store; - - if (kssSource) { - const styleguide = (0, _kss.parse)(kssSource, huron.get('kssOptions')); - - if (styleguide.data.sections.length) { - const section = utils.normalizeSectionData(styleguide.data.sections[0]); - - if (section.reference && section.referenceURI) { - // Update or add section data - newStore = updateSectionData(filepath, section, oldSection, newStore); - - // Remove old section data if reference URI has changed - if (oldSection && oldSection.referenceURI && oldSection.referenceURI !== section.referenceURI) { - newStore = unsetSection(oldSection, file, newStore, false); - } - - (0, _requireTemplates.writeStore)(newStore); - console.log(_chalk2.default.green(`KSS source in ${filepath} changed or added`)); - return newStore; - } - - console.log(_chalk2.default.magenta(`KSS section in ${filepath} is missing a section reference`)); - return newStore; - } - - console.log(_chalk2.default.magenta(`No KSS found in ${filepath}`)); - return newStore; - } - - if (oldSection) { - newStore = deleteKSS(filepath, oldSection, newStore); - } - - console.log(_chalk2.default.red(`${filepath} not found or empty`)); // eslint-disable-line no-console - return newStore; -} - -/** - * Handle removal of a KSS section - * - * @function deleteKSS - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -/** @module cli/kss-handler */ - -function deleteKSS(filepath, section, store) { - const file = _path2.default.parse(filepath); - - if (section.reference && section.referenceURI) { - // Remove section data from memory store - return unsetSection(section, file, store, true); - } - - return store; -} - -/** - * Update the sections store with new data for a specific section - * - * @function updateSectionData - * @param {object} section - contains updated section data - * @param {string} kssPath - path to KSS section - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateSectionData(kssPath, section, oldSection, store) { - const sectionFileInfo = _path2.default.parse(kssPath); - const dataFilepath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); - const isInline = null !== section.markup.match(/<\/[^>]*>/); - const newSort = sortSection(store.getIn(['sections', 'sorted']), section.reference, store.get('referenceDelimiter')); - const newSection = Object.assign({}, oldSection, section); - let newStore = store; - - // Required for reference from templates and data - newSection.kssPath = kssPath; - - if (isInline) { - // Set section value if inlineTempalte() returned a path - newStore = updateInlineTemplate(kssPath, oldSection, newSection, newStore); - } else { - // Remove inline template, if it exists - utils.removeFile(newSection.referenceURI, 'template', kssPath, store); - // Update markup and data fields - newStore = updateTemplateFields(sectionFileInfo, oldSection, newSection, newStore); - } - - // Output section description - newStore = updateDescription(kssPath, oldSection, newSection, newStore); - - // Output section data to a JSON file - newSection.sectionPath = utils.writeSectionData(newStore, newSection, dataFilepath); - - // Update section sorting - return newStore.setIn(['sections', 'sorted'], newSort).setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); -} - -/** - * Handle detection and output of inline templates, which is markup written - * in the KSS documentation itself as opposed to an external file - * - * @function updateInlineTemplate - * @param {string} oldSection - previous iteration of KSS data, if updated - * @param {object} section - KSS section data - * @return {object} updated data store with new template path info - */ -function updateInlineTemplate(filepath, oldSection, section, store) { - const newSection = section; - const newStore = store; - - // If we have inline markup - if (fieldShouldOutput(oldSection, section, 'markup')) { - newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, section.markup, store); - newSection.templateContent = section.markup; - - return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle output of section description - * - * @function updateDescription - * @param {string} oldSection - previous iteration of KSS data, if updated - * @param {object} section - KSS section data - * @return {object} updated data store with new descripton path info - */ -function updateDescription(filepath, oldSection, section, store) { - const newSection = section; - const newStore = store; - - // If we don't have previous KSS or the KSS has been updated - if (fieldShouldOutput(oldSection, section, 'description')) { - // Write new description - newSection.descriptionPath = utils.writeFile(section.referenceURI, 'description', filepath, section.description, store); - - return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle Data and Markup fields - * - * @function updateTemplateFields - * @param {string} file - File data for KSS file from path.parse() - * @param {object} oldSection - outdated KSS data - * @param {object} section - KSS section data - * @param {object} store - memory store - * @return {object} KSS section data with updated asset paths - */ -function updateTemplateFields(file, oldSection, section, store) { - const kssPath = _path2.default.format(file); - const newSection = section; - let filepath = ''; - let oldFilepath = ''; - let newStore = store; - - ['data', 'markup'].forEach(field => { - if (newSection[field]) { - if (oldSection[field]) { - oldFilepath = _path2.default.join(file.dir, oldSection[field]); - newStore = (0, _handleTemplates.deleteTemplate)(oldFilepath, oldSection, newStore); - } - - filepath = _path2.default.join(file.dir, newSection[field]); - newStore = (0, _handleTemplates.updateTemplate)(filepath, newSection, newStore); - } else { - delete newSection[field]; - newStore = newStore.setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); - } - }); - - return newStore; -} - -/** - * Remove a section from the memory store - * - * @function unsetSection - * @param {object} section - contains updated section data - * @param {string} file - file object from path.parse() - * @param {object} store - memory store - * @param {bool} removed - has the file been removed or just the section information changed? - * @return {object} updated data store with new descripton path info - */ -function unsetSection(section, file, store, removed) { - const sorted = store.getIn(['sections', 'sorted']); - const kssPath = _path2.default.format(file); - const dataFilepath = _path2.default.join(file.dir, `${file.name}.json`); - const isInline = section.markup && null !== section.markup.match(/<\/[^>]*>/); - const newSort = unsortSection(sorted, section.reference, store.get('referenceDelimiter')); - let newStore = store; - - // Remove old section data - utils.removeFile(section.referenceURI, 'section', dataFilepath, newStore); - - // Remove associated inline template - if (isInline) { - utils.removeFile(section.referenceURI, 'template', kssPath, newStore); - } - - // Remove description template - utils.removeFile(section.referenceURI, 'description', kssPath, newStore); - - // Remove data from sectionsByPath if file has been removed - if (removed) { - newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]); - } - - return newStore.deleteIn(['sections', 'sectionsByURI', section.referenceURI]).setIn(['sections', 'sorted'], newSort); -} - -/** - * Sort sections and subsections - * - * @function sortSection - * @param {object} sorted - currently sorted sections - * @param {string} reference - reference URI of section to sort - * @return {object} updated data store with new descripton path info - */ -function sortSection(sorted, reference, delimiter) { - const parts = reference.split(delimiter); - const newSort = sorted[parts[0]] || {}; - const newSorted = sorted; - - if (1 < parts.length) { - const newParts = parts.filter((part, idx) => 0 !== idx); - newSorted[parts[0]] = sortSection(newSort, newParts.join(delimiter), delimiter); - } else { - newSorted[parts[0]] = newSort; - } - - return newSorted; -} - -/** - * Remove a section from the sorted sections - * - * @function unsortSection - * @param {object} sorted - currently sorted sections - * @param {string} reference - reference URI of section to sort - * @return {object} updated data store with new descripton path info - */ -function unsortSection(sorted, reference, delimiter) { - const parts = reference.split(delimiter); - const subsections = Object.keys(sorted[parts[0]]); - const newSorted = sorted; - - if (subsections.length) { - if (1 < parts.length) { - const newParts = parts.filter((part, idx) => 0 !== idx); - newSorted[parts[0]] = unsortSection(newSorted[parts[0]], newParts.join(delimiter), delimiter); - } - } else { - delete newSorted[parts[0]]; - } - - return newSorted; -} - -/** - * Compare a KSS field between old and new KSS data to see if we need to output - * a new module for that field - * - * @function fieldShouldOutput - * @param {object} oldSection - currently sorted sections - * @param {object} newSection - reference URI of section to sort - * @param {string} field - KSS field to check - * @return {bool} output a new module for the KSS field - */ -function fieldShouldOutput(oldSection, newSection, field) { - return oldSection && (oldSection[field] !== newSection[field] || oldSection.referenceURI !== newSection.referenceURI) || !oldSection; -} - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = requireExternal; -// Necessary to remove require statement from Webpack processing preserve it in output -/* eslint-disable import/no-dynamic-require, global-require */ -function requireExternal(requirePath) { - return require(requirePath); -} -/* eslint-enable */ - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = startWebpack; - -var _webpack = __webpack_require__(5); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _webpackDevServer = __webpack_require__(29); - -var _webpackDevServer2 = _interopRequireDefault(_webpackDevServer); - -var _chalk = __webpack_require__(2); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _opn = __webpack_require__(27); - -var _opn2 = _interopRequireDefault(_opn); - -var _devServer = __webpack_require__(10); - -var _devServer2 = _interopRequireDefault(_devServer); - -var _parseArgs = __webpack_require__(4); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _utils = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Spin up webpack-dev-server or, if production flag is set, run webpack a single time - * - * @function startWebpack - * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig} - * @see {@link module:cli/generate-config generateConfig} - */ -function startWebpack(config) { - const huron = config.huron; - const webpackConfig = config.webpack; - const compiler = (0, _webpack2.default)(webpackConfig); - - if (_parseArgs2.default.progress) { - compiler.apply(new _webpack2.default.ProgressPlugin((percentage, msg) => { - console.log(`${percentage * 100}% `, msg); - })); - } - - if (_parseArgs2.default.production) { - compiler.run((err, stats) => { - const info = stats.toJson(); - - if (err) { - console.log(err); - } - - if (stats.hasErrors()) { - console.error(_chalk2.default.red('Webpack encountered errors during compile: ', info.errors)); - } - - if (stats.hasWarnings()) { - console.error(_chalk2.default.yellow('Webpack encountered warnings during compile: ', info.warnings)); - } - }); - } else { - const server = new _webpackDevServer2.default(compiler, (0, _devServer2.default)(huron)); - const prototypeName = huron.prototypes[0].title || huron.prototypes[0]; - - server.listen(huron.port, 'localhost', err => { - if (err) { - return console.log(err); - } - - console.log(`Listening at http://localhost:${huron.port}/`); - (0, _opn2.default)(`http://localhost:${huron.port}/${(0, _utils.removeTrailingSlash)(huron.root)}/${prototypeName}.html`); - return true; - }); - } -} /** @module cli/webpack-server */ - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = { - css: [], - entry: 'huron', - js: [], - kss: 'css/', - kssExtension: '.css', - kssOptions: { - multiline: true, - markdown: true, - custom: ['data'] - }, - output: 'partials', - port: 8080, - prototypes: ['index'], - root: 'dist/', - sectionTemplate: _path2.default.join(__dirname, '../../templates/section.hbs'), - classNames: false, - templates: { - rule: { - test: /\.(hbs|handlebars)$/, - use: 'handlebars-loader' - }, - extension: '.hbs' - }, - window: {} -}; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _webpack = __webpack_require__(5); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _path = __webpack_require__(0); - -var _path2 = _interopRequireDefault(_path); - -var _parseArgs = __webpack_require__(4); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = huron => { - const cwd = process.cwd(); - - return { - entry: {}, - output: { - path: _path2.default.join(cwd, huron.root), - publicPath: _parseArgs2.default.production ? '' : `/${huron.root}`, - filename: '[name].js', - chunkFilename: '[name].chunk.min.js' - }, - plugins: [new _webpack2.default.HotModuleReplacementPlugin(), new _webpack2.default.NamedModulesPlugin()], - resolve: { - modulesDirectories: [_path2.default.resolve(__dirname, '../src/js')] - }, - resolveLoader: { - modulesDirectories: ['web_loaders', 'web_modules', 'node_loaders', 'node_modules', _path2.default.resolve(__dirname, '../node_modules')] - }, - module: { - rules: [{ - test: /\.html$/, - include: [_path2.default.join(cwd, huron.root, huron.output)], - use: 'html-loader' - }, { - test: /\.(hbs|handlebars)$/, - include: [_path2.default.join(cwd, huron.root, 'huron-assets')], - use: { - loader: 'handlebars-loader', - options: { - helperDirs: [_path2.default.join(__dirname, '../../', 'templates/handlebarsHelpers')] - } - } - }] - } - }; -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports) { - -module.exports = "'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1];\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}" - -/***/ }), -/* 21 */ -/***/ (function(module, exports) { - -module.exports = require("commander"); - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -module.exports = require("gaze"); - -/***/ }), -/* 23 */ -/***/ (function(module, exports) { - -module.exports = require("html-webpack-plugin"); - -/***/ }), -/* 24 */ -/***/ (function(module, exports) { - -module.exports = require("immutable"); - -/***/ }), -/* 25 */ -/***/ (function(module, exports) { - -module.exports = require("kss"); - -/***/ }), -/* 26 */ -/***/ (function(module, exports) { - -module.exports = require("lodash/isEqual"); - -/***/ }), -/* 27 */ -/***/ (function(module, exports) { - -module.exports = require("opn"); - -/***/ }), -/* 28 */ -/***/ (function(module, exports) { - -module.exports = require("url"); - -/***/ }), -/* 29 */ -/***/ (function(module, exports) { - -module.exports = require("webpack-dev-server"); - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(9); - - -/***/ }) -/******/ ]); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e=>{const t=process.cwd();return{entry:{},output:{path:r.default.join(t,e.root),publicPath:s.default.production?"":`/${e.root}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},plugins:[new o.default.HotModuleReplacementPlugin,new o.default.NamedModulesPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(t,e.root,e.output)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(t,e.root,"huron-assets")],use:{loader:"handlebars-loader",options:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}})},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpackConfig:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/cli/index.js.map b/dist/cli/index.js.map index 2a34548..e2d55f0 100644 --- a/dist/cli/index.js.map +++ b/dist/cli/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap b0c884d423deecb6359c","webpack:///external \"path\"","webpack:///src/cli/utils.js","webpack:///external \"chalk\"","webpack:///external \"fs-extra\"","webpack:///src/cli/parseArgs.js","webpack:///external \"webpack\"","webpack:///src/cli/defaultStore.js","webpack:///src/cli/handleTemplates.js","webpack:///src/cli/requireTemplates.js","webpack:///src/cli/index.js","webpack:///config/devServer.config.js","webpack:///src/cli/actions.js","webpack:///src/cli/fileWatcher.js","webpack:///src/cli/generateConfig.js","webpack:///src/cli/handleHTML.js","webpack:///src/cli/handleKSS.js","webpack:///src/cli/requireExternal.js","webpack:///src/cli/server.js","webpack:///src/defaultConfig/huron.config.js","webpack:///src/defaultConfig/webpack.config.js","webpack:///./templates/hotTemplate.js","webpack:///external \"commander\"","webpack:///external \"gaze\"","webpack:///external \"html-webpack-plugin\"","webpack:///external \"immutable\"","webpack:///external \"kss\"","webpack:///external \"lodash/isEqual\"","webpack:///external \"opn\"","webpack:///external \"url\"","webpack:///external \"webpack-dev-server\""],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 30);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b0c884d423deecb6359c","module.exports = require(\"path\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"path\"\n// module id = 0\n// module chunks = 0","/** @module cli/utilities */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nconst cwd = process.cwd(); // Current working directory\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function normalizeSectionData\n * @param {object} section - section data\n * @return {object} section data\n */\nexport function normalizeSectionData(section) {\n const data = section.data || section;\n\n if (!data.referenceURI || '' === data.referenceURI) {\n data.referenceURI = section.referenceURI();\n }\n\n return data;\n}\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function writeSectionData\n * @param {object} store - data store\n * @param {object} section - section data\n * @param {string} sectionPath - output destination for section data file\n */\nexport function writeSectionData(store, section, sectionPath = false) {\n let outputPath = sectionPath;\n let sectionFileInfo;\n\n if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) {\n sectionFileInfo = path.parse(section.kssPath);\n outputPath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n }\n\n // Output section data\n if (outputPath) {\n return writeFile(\n section.referenceURI,\n 'section',\n outputPath,\n JSON.stringify(section),\n store\n );\n }\n\n console.warn( // eslint-disable-line no-console\n chalk.red(`Failed to write section data for ${section.referenceURI}`)\n );\n return false;\n}\n\n/**\n * Find .json from a template file or vice versa\n *\n * @function getTemplateDataPair\n * @param {object} file - file object from path.parse()\n * @param {object} section - KSS section data\n * @return {string} relative path to module JSON file\n */\nexport function getTemplateDataPair(file, section, store) {\n const huron = store.get('config');\n const kssDir = matchKssDir(file.dir, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const partnerType = '.json' === file.ext ? 'template' : 'data';\n const partnerExt = '.json' === file.ext ?\n huron.get('templates').extension :\n '.json';\n\n const pairPath = path.join(\n componentPath,\n generateFilename(\n section.referenceURI,\n partnerType,\n partnerExt,\n store\n )\n );\n\n return `./${pairPath}`;\n }\n\n return false;\n}\n\n/**\n * Normalize a section title for use as a filename\n *\n * @function normalizeHeader\n * @param {string} header - section header extracted from KSS documentation\n * @return {string} modified header, lowercase and words separated by dash\n */\nexport function normalizeHeader(header) {\n return header\n .toLowerCase()\n .replace(/\\s?\\W\\s?/g, '-');\n}\n\n/**\n * Wrap html in required template tags\n *\n * @function wrapMarkup\n * @param {string} content - html or template markup\n * @param {string} templateId - id of template (should be section reference)\n * @return {string} modified HTML\n */\nexport function wrapMarkup(content, templateId) {\n return `\n\n\\n`;\n}\n\n/**\n * Generate a filename based on referenceURI, type and file object\n *\n * @function generateFilename\n * @param {string} id - The name of the file (with extension).\n * @param {string} type - the type of file output\n * @param {object} ext - file extension\n * @param {store} store - data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function generateFilename(id, type, ext, store) {\n // Type of file and its corresponding extension(s)\n const types = store.get('types');\n const outputExt = '.scss' !== ext ? ext : '.html';\n\n /* eslint-disable */\n if (-1 === types.indexOf(type)) {\n console.log(`Huron data ${type} does not exist`);\n return false;\n }\n /* eslint-enable */\n\n return `${id}-${type}${outputExt}`;\n}\n\n/**\n * Copy an HTML file into the huron output directory.\n *\n * @function writeFile\n * @param {string} id - The name of the file (with extension).\n * @param {string} content - The content of the file to write.\n * @param {string} type - the type of file output\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function writeFile(id, type, filepath, content, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n let newContent = content;\n\n if ('data' !== type && 'section' !== type) {\n newContent = wrapMarkup(content, id);\n }\n\n try {\n fs.outputFileSync(outputPath, newContent);\n console.log(chalk.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log(chalk.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Delete a file in the huron output directory\n *\n * @function removeFile\n * @param {string} filename - The name of the file (with extension).\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function removeFile(id, type, filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n\n try {\n fs.removeSync(outputPath);\n console.log(chalk.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log( // eslint-disable-line no-console\n chalk.red(`${outputRelative} does not exist or cannot be deleted`)\n );\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Write a template for sections\n *\n * @function writeSectionTemplate\n * @param {string} filepath - the original template file\n * @param {object} store - data store\n * @return {object} updated store\n */\nexport function writeSectionTemplate(filepath, store) {\n const huron = store.get('config');\n const sectionTemplate = wrapMarkup(fs.readFileSync(filepath, 'utf8'));\n const componentPath = './huron-assets/section.hbs';\n const output = path.join(\n cwd,\n huron.get('root'),\n componentPath\n );\n\n // Move huron script and section template into huron root\n fs.outputFileSync(output, sectionTemplate);\n console.log(chalk.green(`writing section template to ${output}`)); // eslint-disable-line no-console\n\n return store.set('sectionTemplatePath', componentPath);\n}\n\n/**\n * Request for section data based on section reference\n *\n * @function writeSectionTemplate\n * @param {string} search - key on which to match section\n * @param {field} string - field in which to look to determine section\n * @param {obj} store - sections memory store\n */\nexport function getSection(search, field, store) {\n const sectionValues = store\n .getIn(['sections', 'sectionsByPath'])\n .valueSeq();\n let selectedSection = false;\n\n if (field) {\n selectedSection = sectionValues\n .filter((value) => value[field] === search)\n .get(0);\n } else {\n selectedSection = store.getIn(['sections', 'sectionsByPath', search]);\n }\n\n return selectedSection;\n}\n\n/**\n * Find which configured KSS directory a filepath exists in\n *\n * @function matchKssDir\n * @param {string} filepath - filepath to search for\n * @param {object} huron - huron configuration\n * @return {string} kssMatch - relative path to KSS directory\n */\nexport function matchKssDir(filepath, huron) {\n const kssSource = huron.get('kss');\n // Include forward slash in our test to make sure we're matchin a directory, not a file extension\n const kssMatch = kssSource.filter((dir) => filepath.includes(`/${dir}`));\n\n if (kssMatch.length) {\n return kssMatch[0];\n }\n\n return false;\n}\n\n/**\n * Merge JSON files for css modules classnames in a provided directory\n *\n * @function mergeClassnameJSON\n * @param {string} directory - directory containing classname JSON files\n *\n * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within\n * the returned object by filename. (e.g. article.json -> { article: {...json contents}})\n */\nexport function mergeClassnameJSON(directory) {\n let files;\n\n // If no config is provided, return immediately\n if (!directory) {\n return {};\n }\n\n // Try to read through classnames directory\n try {\n files = fs.readdirSync(directory);\n } catch (e) {\n console.warn(chalk.red(e));\n }\n\n // Merge classname json files\n const classNamesMerged = files.reduce((acc, file) => {\n const fileInfo = path.parse(file);\n let classNames = {};\n\n if ('.json' === fileInfo.ext) {\n try {\n const contents = fs.readFileSync(\n path.join(directory, file),\n 'utf8'\n );\n classNames = JSON.parse(contents);\n } catch (e) {\n console.warn(chalk.red(e));\n }\n }\n\n return Object.assign({}, acc, { [fileInfo.name]: classNames });\n }, {});\n\n return classNamesMerged;\n}\n\n/**\n * Remove the trailing slash from a provided directory\n *\n * @function removeTrailingSlash\n * @param {string} directory - directory path\n * @return {string} directory - directory path with trailing slash removed\n */\nexport function removeTrailingSlash(directory) {\n if ('/' === directory.slice(-1)) {\n return directory.slice(0, -1);\n }\n\n return directory;\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/utils.js","module.exports = require(\"chalk\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"chalk\"\n// module id = 2\n// module chunks = 0","module.exports = require(\"fs-extra\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"fs-extra\"\n// module id = 3\n// module chunks = 0","/** @module cli/parse-arguments */\n/* eslint-disable space-unary-ops */\n\nimport program from 'commander';\nimport path from 'path';\n\n// Requires\n/** @global */\n\n/**\n * Process huron CLI arguments\n *\n * @function parseArgs\n * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production\n */\nfunction parseArgs() {\n const envArg = {};\n\n process.argv = process.argv.filter((arg) => {\n if (-1 !== arg.indexOf('--env')) {\n const envParts = arg\n .split('.')[1]\n .split('=');\n\n envArg[envParts[0]] = envParts[1] || true;\n return false;\n }\n\n return true;\n });\n\n program.version('1.0.1')\n .option(\n '-c, --huron-config [huronConfig]',\n '[huronConfig] for all huron options',\n path.resolve(__dirname, '../defaultConfig/huron.config.js')\n )\n .option(\n '-w, --webpack-config [webpackConfig]',\n '[webpackConfig] for all webpack options',\n path.resolve(__dirname, '../defaultConfig/webpack.config.js')\n )\n .option('-p, --production', 'compile assets once for production');\n\n program.env = envArg;\n\n // Only parse if we're not running tests\n if (\n ! process.env.npm_lifecycle_event ||\n 'test' !== process.env.npm_lifecycle_event\n ) {\n program.parse(process.argv);\n }\n}\n\nparseArgs();\n/* eslint-enable */\n\nexport default program;\n\n\n\n// WEBPACK FOOTER //\n// src/cli/parseArgs.js","module.exports = require(\"webpack\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"webpack\"\n// module id = 5\n// module chunks = 0","import { Map } from 'immutable';\n\nimport generateConfig from './generateConfig';\nimport { mergeClassnameJSON } from './utils';\n// Create initial data structure\n\n// Merge Huron default webpack config with user config\nconst config = generateConfig();\n\n// Make sure the kss option is represented as an array\nconfig.huron.kss = [].concat(config.huron.kss);\n\n/* eslint-disable */\n/**\n * Initial structure for immutable data store\n *\n * @global\n */\nconst defaultStore = Map({\n types: [\n 'template',\n 'data',\n 'description',\n 'section',\n 'prototype',\n 'sections-template',\n ],\n config: Map(config.huron),\n classNames: mergeClassnameJSON(config.huron.classNames),\n sections: Map({\n sectionsByPath: Map({}),\n sectionsByURI: Map({}),\n sorted: {},\n }),\n templates: Map({}),\n prototypes: Map({}),\n sectionTemplatePath: '',\n referenceDelimiter: '.',\n});\n/* eslint-enable */\n\nexport { defaultStore, config };\n\n\n\n// WEBPACK FOOTER //\n// src/cli/defaultStore.js","/** @module cli/template-handler */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\n\n/**\n * Handle update of a template or data (json) file\n *\n * @function updateTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function updateTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const pairPath = utils.getTemplateDataPair(file, section, store);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n let content = false;\n\n try {\n content = fs.readFileSync(filepath, 'utf8');\n } catch (e) {\n console.log(chalk.red(`${filepath} does not exist`));\n }\n\n if (content) {\n const requirePath = utils.writeFile(\n newSection.referenceURI,\n type,\n filepath,\n content,\n newStore\n );\n newSection[`${type}Path`] = requirePath;\n\n if ('template' === type) {\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(newStore, newSection);\n }\n\n return newStore\n .setIn(\n ['templates', requirePath],\n pairPath\n )\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle removal of a template or data (json) file\n *\n * @function deleteTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function deleteTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n\n // Remove partner\n const requirePath = utils.removeFile(\n newSection.referenceURI,\n type,\n filepath,\n newStore\n );\n delete newSection[`${type}Path`];\n\n return newStore\n .deleteIn(['templates', requirePath])\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/handleTemplates.js","/** @module cli/require-templates */\nimport path from 'path';\nimport fs from 'fs-extra';\n\n// We need to prepend this to the browser script as a string but still want to transpile it,\n// hence loading it using `raw-loader` so we receive a string from webpack\n/* eslint-disable */\nimport hotTemplate from '!raw-loader!babel-loader!../../templates/hotTemplate';\n/* eslint-enable */\n\nconst cwd = process.cwd();\nconst huronScript = fs.readFileSync(\n path.join(__dirname, '../web/index.js'),\n 'utf8'\n);\n\n/**\n * Write code for requiring all generated huron assets\n *\n * @function requireTemplates\n * @param {object} store - memory store\n */\nexport const requireTemplates = function requireTemplates(store) {\n const huron = store.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n // These will be used to replace strings in the hotTemplate.\n // In order to accurately replace strings but still keep things parseable by eslint and babel,\n // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object.\n // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`,\n // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`.\n const hotVariableScope = {\n sectionTemplatePath: `'${huron.get('sectionTemplate')}'`,\n requireRegex: new RegExp(`\\\\.html|\\\\.json|\\\\${\n huron.get('templates').extension\n }$`),\n requirePath: `'../${huron.get('output')}'`,\n };\n const hotTemplateTransformed = Object.keys(hotVariableScope)\n .reduce(\n (acc, curr) => acc.replace(\n new RegExp(`hotScope.${curr}`, 'g'),\n hotVariableScope[curr]\n ), hotTemplate\n );\n\n // Write the contents of this script.\n fs.outputFileSync(\n path.join(outputPath, 'index.js'),\n hotTemplateTransformed\n );\n fs.outputFileSync(\n path.join(outputPath, 'insertNodes.js'),\n huronScript\n );\n};\n\n/**\n * Output entire data store to a JS object and handle if any KSS data has changed\n *\n * @function writeStore\n * @param {object} store - memory store\n * @param {string} changed - filepath of changed KSS section, if applicable\n */\nexport const writeStore = function writeStore(store, newStore = false) {\n const updatedStore = newStore || store;\n const huron = updatedStore.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n\n // Write updated data store\n fs.outputFileSync(\n path.join(outputPath, 'huron-store.js'),\n `module.exports = ${JSON.stringify(updatedStore.toJSON())}`\n );\n};\n\n\n\n\n// WEBPACK FOOTER //\n// src/cli/requireTemplates.js","// Local imports\nimport chalk from 'chalk';\n\nimport {\n initFiles,\n updateFile,\n deleteFile,\n updateClassNames,\n} from './actions';\nimport { requireTemplates, writeStore } from './requireTemplates';\nimport { matchKssDir } from './utils';\nimport program from './parseArgs';\nimport startWebpack from './server';\nimport { defaultStore, config } from './defaultStore';\nimport gaze from './fileWatcher';\n\n/**\n * Initialize data store with files from gaze and original data structure\n *\n * @global\n */\nconst huron = defaultStore.get('config');\nlet store = initFiles(gaze.watched(), defaultStore);\n\nrequireTemplates(store);\nwriteStore(store);\n\n// If building for production, close gaze and exit process once initFiles is done.\nif (program.production) {\n gaze.close();\n}\n\n/** @module cli/gaze */\ngaze.on('all', (event, filepath) => {\n store = updateClassNames(filepath, store);\n writeStore(store);\n});\n\n/**\n * Anonymous handler for Gaze 'changed' event indicating a file has changed\n *\n * @callback changed\n * @listens gaze:changed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('changed', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n }\n\n console.log(chalk.green(`${filepath} updated!`));\n});\n\n/**\n * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories\n *\n * @callback added\n * @listens gaze:added\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('added', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${filepath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed\n *\n * @callback renamed\n * @listens gaze:renamed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('renamed', (newPath, oldPath) => {\n if (matchKssDir(newPath, huron)) {\n store = deleteFile(oldPath, store);\n store = updateFile(newPath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${newPath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'deleted' event indicating a file has been removed\n *\n * @callback deleted\n * @listens gaze:deleted\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('deleted', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = deleteFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.red(`${filepath} deleted`));\n});\n\n// Start webpack or build for production\nstartWebpack(config);\n\n\n\n// WEBPACK FOOTER //\n// src/cli/index.js","export default (huron) => ({\n hot: true,\n host: 'localhost',\n quiet: false,\n noInfo: false,\n overlay: true,\n stats: {\n colors: true,\n hash: false,\n version: false,\n assets: false,\n chunks: false,\n modules: false,\n reasons: false,\n children: false,\n source: false,\n },\n publicPath: `/${huron.root}`,\n});\n\n\n\n// WEBPACK FOOTER //\n// config/devServer.config.js","/** @module cli/actions */\n\n// Imports\nimport path from 'path';\nimport chalk from 'chalk';\nimport isEqual from 'lodash/isEqual';\n\nimport {\n updateHTML,\n deleteHTML,\n updatePrototype,\n deletePrototype,\n} from './handleHTML';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { updateKSS, deleteKSS } from './handleKSS';\nimport * as utils from './utils';\n\n/**\n * Recursively loop through initial watched files list from Gaze.\n *\n * @param {object} data - object containing directory and file paths\n * @param {object} store - memory store\n * @return {object} newStore - map object of entire data store\n */\nexport function initFiles(data, store, depth = 0) {\n const type = Object.prototype.toString.call(data);\n const huron = store.get('config');\n let newStore = store;\n let info;\n let files;\n\n switch (type) {\n case '[object Object]':\n files = Object.keys(data);\n newStore = files.reduce(\n (prevStore, file) => initFiles(data[file], prevStore, depth),\n newStore\n );\n break;\n\n case '[object Array]':\n newStore = data.reduce(\n (prevStore, file) => initFiles(file, prevStore, depth),\n newStore\n );\n break;\n\n case '[object String]':\n info = path.parse(data);\n\n // Only call update if data is a filepath and it's within the KSS source directory\n if (info.ext && !data.includes(huron.get('classNames'))) {\n newStore = updateFile(data, store);\n }\n break;\n\n default:\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating and writing file information based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} store - map object of map object of entire data store\n */\nexport function updateFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field;\n let section;\n\n if (filepath.includes(huron.get('sectionTemplate'))) {\n return utils.writeSectionTemplate(filepath, store);\n }\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n return updateHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n return updatePrototype(filepath, store);\n }\n\n console.log(chalk.red(`Failed to write file: ${file.name}`));\n break;\n\n // Handlebars template, external\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n return updateTemplate(filepath, section, store);\n }\n\n console.log( // eslint-disable-line no-console\n chalk.red(`Could not find associated KSS section for ${filepath}`)\n );\n break;\n\n // KSS documentation (default extension is `.css`)\n // Will also output a template if markup is inline\n // Note: inline markup does _not_ support handlebars currently\n case huron.get('kssExtension'):\n return updateKSS(filepath, store);\n\n // This should never happen if Gaze is working properly\n default:\n return store;\n }\n\n return store;\n}\n\n/**\n * Logic for deleting file information and files based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} newStore - map object of map object of entire data store\n */\nexport function deleteFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field = '';\n let section = null;\n let newStore = store;\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n newStore = deleteHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n newStore = deletePrototype(filepath, store);\n }\n break;\n\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n newStore = deleteTemplate(filepath, section, store);\n }\n break;\n\n case huron.get('kssExtension'):\n section = utils.getSection(filepath, false, store);\n\n if (section) {\n newStore = deleteKSS(filepath, section, store);\n }\n break;\n\n default:\n console.warn( // eslint-disable-line no-console\n chalk.red(`Could not delete: ${file.name}`)\n );\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating localized classnames from CSS modules\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n *\n * @return void\n */\nexport function updateClassNames(filepath, store) {\n const classNamesPath = store.getIn(['config', 'classNames']);\n\n if (filepath.includes(classNamesPath)) {\n const oldClassnames = store.get('classNames');\n const newClassnames = utils.mergeClassnameJSON(classNamesPath);\n\n if (!isEqual(oldClassnames, newClassnames)) {\n return store.set('classNames', newClassnames);\n }\n }\n\n return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/actions.js","import { Gaze } from 'gaze';\nimport path from 'path';\n\nimport { removeTrailingSlash } from './utils';\nimport { defaultStore } from './defaultStore';\n\n/**\n * Huron configuration object\n *\n * @global\n */\nconst huron = defaultStore.get('config');\n\n/**\n * Available file extensions. Extensions should not include the leading '.'\n *\n * @global\n */\nexport const extensions = [\n huron.get('kssExtension'),\n huron.get('templates').extension,\n 'html',\n 'json',\n].map((extension) => extension.replace('.', ''));\n\n// Generate watch list for Gaze, start gaze\nexport const watchedFiles = [];\n\n// Watch section template\nwatchedFiles.push(path.resolve(huron.get('sectionTemplate')));\n\n// Watch cssmodules classname files (if they exist)\nif (huron.get('classNames')) {\n watchedFiles.push(\n `${path.resolve(huron.get('classNames'))}/*.json`\n );\n}\n\n// Watch all provided kss directories\nhuron.get('kss').forEach((dir) => {\n watchedFiles.push(\n `${removeTrailingSlash(dir)}/**/*.+(${extensions.join('|')})`\n );\n});\n\n/**\n * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON\n *\n * @global\n */\nconst gaze = new Gaze(watchedFiles);\n\nexport default gaze;\n\n\n\n// WEBPACK FOOTER //\n// src/cli/fileWatcher.js","/** @module cli/generate-config */\nimport path from 'path';\nimport url from 'url';\nimport fs from 'fs-extra';\nimport webpack from 'webpack';\nimport HTMLWebpackPlugin from 'html-webpack-plugin';\n\nimport program from './parseArgs';\nimport requireExternal from './requireExternal';\nimport defaultWebpack from '../defaultConfig/webpack.config';\nimport defaultHuron from '../defaultConfig/huron.config';\n\nconst cwd = process.cwd();\n\n// Require configs passed in by user from CLI\nlet defaultConfig = false;\nconst localConfig = requireExternal(\n path.resolve(program.webpackConfig)\n);\nconst localHuron = requireExternal(\n path.resolve(program.huronConfig)\n);\n\n/**\n * Generate a mutant hybrid of the huron default webpack config and your local webpack config\n *\n * @function generateConfig\n * @param {object} config - local webpack config\n * @return {object} newConfig - updated data store\n */\nexport default function generateConfig() {\n let newConfig = localConfig;\n let newHuron = localHuron;\n\n // Execute config function, if provided\n if ('function' === typeof newConfig) {\n newConfig = newConfig(program.env);\n }\n\n // Execute huron config function, if provided\n if ('function' === typeof newHuron) {\n newHuron = newHuron(program.env);\n }\n\n // Merge huron defaults with user settings\n newHuron = Object.assign({}, defaultHuron, newHuron);\n // Use user huron config to modify webpack defaults\n defaultConfig = defaultWebpack(newHuron);\n\n // Set ouput options\n newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output);\n newConfig.output.path = defaultConfig.output.path;\n newConfig.output.publicPath = defaultConfig.output.publicPath;\n\n // configure entries\n newConfig = configureEntries(newHuron, newConfig);\n\n // configure plugins\n newConfig = configurePlugins(newHuron, newConfig);\n\n // configure loaders\n newConfig = configureLoaders(newHuron, newConfig);\n\n // Add HTMLWebpackPlugin for each configured prototype\n newConfig = configurePrototypes(newHuron, newConfig);\n\n // Remove existing devServer settings\n delete newConfig.devServer;\n\n return {\n huron: newHuron,\n webpack: newConfig,\n };\n}\n\n/**\n * Configure and manage webpack entry points\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configureEntries(huron, config) {\n const entry = config.entry[huron.entry];\n const newConfig = config;\n\n newConfig.entry = {};\n if (!program.production) {\n newConfig.entry[huron.entry] = [\n `webpack-dev-server/client/index.js?http://localhost:${huron.port}/`,\n 'webpack/hot/dev-server',\n path.join(cwd, huron.root, 'huron-assets/index'),\n ].concat(entry);\n } else {\n newConfig.entry[huron.entry] = [\n path.join(cwd, huron.root, 'huron-assets/index'),\n ].concat(entry);\n }\n\n return newConfig;\n}\n\n/**\n * Configure and manage webpack plugins\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePlugins(huron, config) {\n const newConfig = config;\n\n newConfig.plugins = config.plugins || [];\n\n if (!program.production) {\n if (newConfig.plugins && newConfig.plugins.length) {\n newConfig.plugins = newConfig.plugins.filter(\n (plugin) => 'HotModuleReplacementPlugin' !== plugin.constructor.name &&\n 'NamedModulesPlugin' !== plugin.constructor.name\n );\n }\n newConfig.plugins = newConfig.plugins\n .concat([\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NamedModulesPlugin(),\n ]);\n }\n\n return newConfig;\n}\n\n/**\n * Configure and manage webpack loaders\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configureLoaders(huron, config) {\n // Manage loaders\n const templatesLoader = huron.templates.rule || {};\n const newConfig = config;\n\n // Make sure we're only using templates loader for files in huron root\n templatesLoader.include = [path.join(cwd, huron.root, huron.output)];\n\n // Normalize module and module.rules\n newConfig.module = newConfig.module || {};\n newConfig.module.rules = newConfig.module.rules ||\n newConfig.module.loaders ||\n [];\n\n // Add default loaders\n newConfig.module.rules = defaultConfig.module.rules\n .concat(\n newConfig.module.rules,\n templatesLoader\n );\n\n return newConfig;\n}\n\n/**\n * Create an HTML webpack plugin for each configured prototype\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePrototypes(huron, config) {\n const wrapperTemplate = fs.readFileSync(\n path.join(__dirname, '../../templates/prototypeTemplate.hbs'),\n 'utf8'\n );\n\n const defaultHTMLPluginOptions = {\n title: 'Huron',\n window: huron.window,\n js: [],\n css: [],\n filename: 'index.html',\n template: path.join(\n cwd,\n huron.root,\n 'huron-assets/prototypeTemplate.hbs'\n ),\n inject: false,\n chunks: [huron.entry],\n };\n const newConfig = config;\n\n // Write prototype template file for HTML webpack plugin\n fs.outputFileSync(\n path.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'),\n wrapperTemplate\n );\n\n huron.prototypes.forEach((prototype) => {\n const newPrototype = prototype;\n let opts = {};\n\n // Merge configured settings with default settings\n if ('string' === typeof prototype) {\n opts = Object.assign({}, defaultHTMLPluginOptions, {\n title: prototype,\n filename: `${prototype}.html`,\n });\n } else if (\n 'object' === typeof prototype &&\n {}.hasOwnProperty.call(prototype, 'title')\n ) {\n // Create filename based on configured title if not provided\n if (!prototype.filename) {\n newPrototype.filename = `${prototype.title}.html`;\n }\n\n // Move css assets for this prototype,\n // reset css option with new file paths\n if (prototype.css) {\n newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron);\n }\n\n // Move js assets for this prototype,\n // reset js option with new file paths\n if (prototype.js) {\n newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron);\n }\n\n opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype);\n }\n\n // Move global css assets,\n // reset css option with new file paths\n if (huron.css.length) {\n opts.css = opts.css.concat(\n moveAdditionalAssets(huron.css, 'css', huron)\n );\n }\n\n // Move global js assets,\n // reset js option with new file paths\n if (huron.js.length) {\n opts.js = opts.js.concat(\n moveAdditionalAssets(huron.js, 'js', huron)\n );\n }\n\n // Push a new plugin for each configured prototype\n if (Object.keys(opts).length) {\n newConfig.plugins.push(\n new HTMLWebpackPlugin(opts)\n );\n }\n });\n\n return newConfig;\n}\n\n/**\n * Move relative (and local) js and css assets provided in huron options\n *\n * @param {array|string} assets - array of assets or single asset\n * @param {string} subdir - subdirectory in huron root from which to load additional asset\n * @param {object} huron - huron configuration object\n * @return {array} assetResults - paths to js and css assets\n */\nfunction moveAdditionalAssets(assets, subdir = '', huron) {\n const currentAssets = [].concat(assets);\n const assetResults = [];\n\n currentAssets.forEach((asset) => {\n const assetInfo = path.parse(asset);\n const assetURL = url.parse(asset);\n const sourcePath = path.join(cwd, asset);\n const outputPath = path.resolve(cwd, huron.root, subdir, assetInfo.base);\n const loadPath = path.join(subdir, assetInfo.base);\n let contents = false;\n\n if (\n !path.isAbsolute(asset) &&\n !assetURL.protocol\n ) {\n try {\n contents = fs.readFileSync(sourcePath);\n } catch (e) {\n console.warn(`could not read ${sourcePath}`);\n }\n\n if (contents) {\n fs.outputFileSync(outputPath, contents);\n assetResults.push(loadPath);\n }\n } else {\n assetResults.push(asset);\n }\n });\n\n return assetResults;\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/generateConfig.js","/** @module cli/html-handler */\nimport path from 'path';\nimport fs from 'fs-extra';\n\nimport * as utils from './utils';\n\n/**\n * Handle update of an HMTL template\n *\n * @function updateHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateHTML(filepath, section, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n const newSection = section;\n\n if (content) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n content,\n store\n );\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(store, newSection);\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of an HMTL template\n *\n * @function deleteHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteHTML(filepath, section, store) {\n const newSection = section;\n\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n filepath,\n store\n );\n\n delete newSection.templatePath;\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle update for a prototype file\n *\n * @function updatePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updatePrototype(filepath, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n\n if (content) {\n const requirePath = utils.writeFile(\n file.name,\n 'prototype',\n filepath,\n content,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of a prototype file\n *\n * @function deletePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deletePrototype(filepath, store) {\n const file = path.parse(filepath);\n const requirePath = utils.removeFile(\n file.name,\n 'prototype',\n filepath,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/handleHTML.js","/** @module cli/kss-handler */\n\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { parse } from 'kss';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { writeStore } from './requireTemplates';\n\n/**\n * Handle update of a KSS section\n *\n * @function updateKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateKSS(filepath, store) {\n const kssSource = fs.readFileSync(filepath, 'utf8');\n const huron = store.get('config');\n const oldSection = utils.getSection(filepath, false, store) || {};\n const file = path.parse(filepath);\n let newStore = store;\n\n if (kssSource) {\n const styleguide = parse(kssSource, huron.get('kssOptions'));\n\n if (styleguide.data.sections.length) {\n const section = utils.normalizeSectionData(\n styleguide.data.sections[0]\n );\n\n if (section.reference && section.referenceURI) {\n // Update or add section data\n newStore = updateSectionData(\n filepath,\n section,\n oldSection,\n newStore\n );\n\n // Remove old section data if reference URI has changed\n if (oldSection &&\n oldSection.referenceURI &&\n oldSection.referenceURI !== section.referenceURI\n ) {\n newStore = unsetSection(oldSection, file, newStore, false);\n }\n\n writeStore(newStore);\n console.log(\n chalk.green(\n `KSS source in ${filepath} changed or added`\n )\n );\n return newStore;\n }\n\n console.log(\n chalk.magenta(\n `KSS section in ${filepath} is missing a section reference`\n )\n );\n return newStore;\n }\n\n console.log(chalk.magenta(`No KSS found in ${filepath}`));\n return newStore;\n }\n\n if (oldSection) {\n newStore = deleteKSS(filepath, oldSection, newStore);\n }\n\n console.log(chalk.red(`${filepath} not found or empty`)); // eslint-disable-line no-console\n return newStore;\n}\n\n/**\n * Handle removal of a KSS section\n *\n * @function deleteKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteKSS(filepath, section, store) {\n const file = path.parse(filepath);\n\n if (section.reference && section.referenceURI) {\n // Remove section data from memory store\n return unsetSection(section, file, store, true);\n }\n\n return store;\n}\n\n/**\n * Update the sections store with new data for a specific section\n *\n * @function updateSectionData\n * @param {object} section - contains updated section data\n * @param {string} kssPath - path to KSS section\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nfunction updateSectionData(kssPath, section, oldSection, store) {\n const sectionFileInfo = path.parse(kssPath);\n const dataFilepath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n const isInline = null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = sortSection(\n store.getIn(['sections', 'sorted']),\n section.reference,\n store.get('referenceDelimiter')\n );\n const newSection = Object.assign({}, oldSection, section);\n let newStore = store;\n\n // Required for reference from templates and data\n newSection.kssPath = kssPath;\n\n if (isInline) {\n // Set section value if inlineTempalte() returned a path\n newStore = updateInlineTemplate(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n } else {\n // Remove inline template, if it exists\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n kssPath,\n store\n );\n // Update markup and data fields\n newStore = updateTemplateFields(\n sectionFileInfo,\n oldSection,\n newSection,\n newStore\n );\n }\n\n // Output section description\n newStore = updateDescription(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n\n // Output section data to a JSON file\n newSection.sectionPath = utils.writeSectionData(\n newStore,\n newSection,\n dataFilepath\n );\n\n // Update section sorting\n return newStore\n .setIn(\n ['sections', 'sorted'],\n newSort\n )\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle detection and output of inline templates, which is markup written\n * in the KSS documentation itself as opposed to an external file\n *\n * @function updateInlineTemplate\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new template path info\n */\nfunction updateInlineTemplate(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we have inline markup\n if (fieldShouldOutput(oldSection, section, 'markup')) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n section.markup,\n store\n );\n newSection.templateContent = section.markup;\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle output of section description\n *\n * @function updateDescription\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new descripton path info\n */\nfunction updateDescription(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we don't have previous KSS or the KSS has been updated\n if (fieldShouldOutput(oldSection, section, 'description')) {\n // Write new description\n newSection.descriptionPath = utils.writeFile(\n section.referenceURI,\n 'description',\n filepath,\n section.description,\n store\n );\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle Data and Markup fields\n *\n * @function updateTemplateFields\n * @param {string} file - File data for KSS file from path.parse()\n * @param {object} oldSection - outdated KSS data\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} KSS section data with updated asset paths\n */\nfunction updateTemplateFields(file, oldSection, section, store) {\n const kssPath = path.format(file);\n const newSection = section;\n let filepath = '';\n let oldFilepath = '';\n let newStore = store;\n\n ['data', 'markup'].forEach((field) => {\n if (newSection[field]) {\n if (oldSection[field]) {\n oldFilepath = path.join(file.dir, oldSection[field]);\n newStore = deleteTemplate(\n oldFilepath,\n oldSection,\n newStore\n );\n }\n\n filepath = path.join(file.dir, newSection[field]);\n newStore = updateTemplate(\n filepath,\n newSection,\n newStore\n );\n } else {\n delete newSection[field];\n newStore = newStore\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n });\n\n return newStore;\n}\n\n/**\n * Remove a section from the memory store\n *\n * @function unsetSection\n * @param {object} section - contains updated section data\n * @param {string} file - file object from path.parse()\n * @param {object} store - memory store\n * @param {bool} removed - has the file been removed or just the section information changed?\n * @return {object} updated data store with new descripton path info\n */\nfunction unsetSection(section, file, store, removed) {\n const sorted = store.getIn(['sections', 'sorted']);\n const kssPath = path.format(file);\n const dataFilepath = path.join(file.dir, `${file.name}.json`);\n const isInline = section.markup &&\n null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = unsortSection(\n sorted,\n section.reference,\n store.get('referenceDelimiter')\n );\n let newStore = store;\n\n // Remove old section data\n utils.removeFile(\n section.referenceURI,\n 'section',\n dataFilepath,\n newStore\n );\n\n // Remove associated inline template\n if (isInline) {\n utils.removeFile(section.referenceURI, 'template', kssPath, newStore);\n }\n\n // Remove description template\n utils.removeFile(section.referenceURI, 'description', kssPath, newStore);\n\n // Remove data from sectionsByPath if file has been removed\n if (removed) {\n newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]);\n }\n\n return newStore\n .deleteIn(['sections', 'sectionsByURI', section.referenceURI])\n .setIn(['sections', 'sorted'], newSort);\n}\n\n/**\n * Sort sections and subsections\n *\n * @function sortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction sortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const newSort = sorted[parts[0]] || {};\n const newSorted = sorted;\n\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = sortSection(\n newSort,\n newParts.join(delimiter),\n delimiter\n );\n } else {\n newSorted[parts[0]] = newSort;\n }\n\n return newSorted;\n}\n\n/**\n * Remove a section from the sorted sections\n *\n * @function unsortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction unsortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const subsections = Object.keys(sorted[parts[0]]);\n const newSorted = sorted;\n\n if (subsections.length) {\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = unsortSection(\n newSorted[parts[0]],\n newParts.join(delimiter),\n delimiter\n );\n }\n } else {\n delete newSorted[parts[0]];\n }\n\n return newSorted;\n}\n\n/**\n * Compare a KSS field between old and new KSS data to see if we need to output\n * a new module for that field\n *\n * @function fieldShouldOutput\n * @param {object} oldSection - currently sorted sections\n * @param {object} newSection - reference URI of section to sort\n * @param {string} field - KSS field to check\n * @return {bool} output a new module for the KSS field\n */\nfunction fieldShouldOutput(oldSection, newSection, field) {\n return (oldSection &&\n (oldSection[field] !== newSection[field] ||\n oldSection.referenceURI !== newSection.referenceURI)\n ) ||\n !oldSection;\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/handleKSS.js","// Necessary to remove require statement from Webpack processing preserve it in output\n/* eslint-disable import/no-dynamic-require, global-require */\nexport default function requireExternal(requirePath) {\n return require(requirePath);\n}\n/* eslint-enable */\n\n\n\n// WEBPACK FOOTER //\n// src/cli/requireExternal.js","/** @module cli/webpack-server */\nimport webpack from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\nimport chalk from 'chalk';\nimport open from 'opn';\n\nimport createDevServerConfig from '../../config/devServer.config';\nimport program from './parseArgs';\nimport { removeTrailingSlash } from './utils';\n\n/**\n * Spin up webpack-dev-server or, if production flag is set, run webpack a single time\n *\n * @function startWebpack\n * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig}\n * @see {@link module:cli/generate-config generateConfig}\n */\nexport default function startWebpack(config) {\n const huron = config.huron;\n const webpackConfig = config.webpack;\n const compiler = webpack(webpackConfig);\n\n if (program.progress) {\n compiler.apply(\n new webpack.ProgressPlugin(\n (percentage, msg) => {\n console.log(`${(percentage * 100)}% `, msg);\n }\n )\n );\n }\n\n if (program.production) {\n compiler.run((err, stats) => {\n const info = stats.toJson();\n\n if (err) {\n console.log(err);\n }\n\n if (stats.hasErrors()) {\n console.error(\n chalk.red(\n 'Webpack encountered errors during compile: ',\n info.errors\n )\n );\n }\n\n if (stats.hasWarnings()) {\n console.error(\n chalk.yellow(\n 'Webpack encountered warnings during compile: ', info.warnings\n )\n );\n }\n });\n } else {\n const server = new WebpackDevServer(compiler, createDevServerConfig(huron));\n const prototypeName = huron.prototypes[0].title || huron.prototypes[0];\n\n server.listen(\n huron.port,\n 'localhost',\n (err) => {\n if (err) {\n return console.log(err);\n }\n\n console.log(`Listening at http://localhost:${huron.port}/`);\n open(`http://localhost:${huron.port}/${\n removeTrailingSlash(huron.root)\n }/${prototypeName}.html`);\n return true;\n }\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/cli/server.js","import path from 'path';\n\nexport default {\n css: [],\n entry: 'huron',\n js: [],\n kss: 'css/',\n kssExtension: '.css',\n kssOptions: {\n multiline: true,\n markdown: true,\n custom: ['data'],\n },\n output: 'partials',\n port: 8080,\n prototypes: ['index'],\n root: 'dist/',\n sectionTemplate: path.join(__dirname, '../../templates/section.hbs'),\n classNames: false,\n templates: {\n rule: {\n test: /\\.(hbs|handlebars)$/,\n use: 'handlebars-loader',\n },\n extension: '.hbs',\n },\n window: {},\n};\n\n\n\n// WEBPACK FOOTER //\n// src/defaultConfig/huron.config.js","import webpack from 'webpack';\nimport path from 'path';\n\nimport program from '../cli/parseArgs';\n\nexport default (huron) => {\n const cwd = process.cwd();\n\n return {\n entry: {},\n output: {\n path: path.join(cwd, huron.root),\n publicPath: program.production ? '' :\n `/${huron.root}`,\n filename: '[name].js',\n chunkFilename: '[name].chunk.min.js',\n },\n plugins: [\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NamedModulesPlugin(),\n ],\n resolve: {\n modulesDirectories: [\n path.resolve(__dirname, '../src/js'),\n ],\n },\n resolveLoader: {\n modulesDirectories: [\n 'web_loaders',\n 'web_modules',\n 'node_loaders',\n 'node_modules',\n path.resolve(__dirname, '../node_modules'),\n ],\n },\n module: {\n rules: [\n {\n test: /\\.html$/,\n include: [path.join(cwd, huron.root, huron.output)],\n use: 'html-loader',\n },\n {\n test: /\\.(hbs|handlebars)$/,\n include: [path.join(cwd, huron.root, 'huron-assets')],\n use: {\n loader: 'handlebars-loader',\n options: {\n helperDirs: [path.join(\n __dirname,\n '../../',\n 'templates/handlebarsHelpers'\n )],\n },\n },\n },\n ],\n },\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// src/defaultConfig/webpack.config.js","module.exports = \"'use strict';\\n\\nvar _huronStore = require('./huron-store');\\n\\nvar _huronStore2 = _interopRequireDefault(_huronStore);\\n\\nvar _insertNodes = require('./insertNodes');\\n\\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\\n\\nvar _section = require('./section.hbs');\\n\\nvar _section2 = _interopRequireDefault(_section);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\n/* eslint-enable */\\n\\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\\n\\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\\n// with CLI arguments or config properties passed in by the user.\\n\\n/* eslint-disable */\\n\\nconst modules = {};\\n\\nmodules[hotScope.sectionTemplatePath] = _section2.default;\\n\\nassets.keys().forEach(key => {\\n modules[key] = assets(key);\\n});\\n\\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\\n\\nif (module.hot) {\\n // Hot Module Replacement for huron components (json, hbs, html)\\n module.hot.accept(assets.id, () => {\\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\\n\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n newModules.forEach(module => {\\n modules[module[0]] = module[1];\\n hotReplace(module[0], module[1], modules);\\n });\\n });\\n\\n // Hot Module Replacement for sections template\\n module.hot.accept('./section.hbs', () => {\\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\\n\\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\\n });\\n\\n // Hot Module Replacement for data store\\n module.hot.accept('./huron-store.js', () => {\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n });\\n}\\n\\nfunction hotReplace(key, module, newModules) {\\n insert.modules = newModules;\\n if (key === _huronStore2.default.sectionTemplatePath) {\\n insert.cycleSections();\\n } else {\\n insert.inserted = [];\\n insert.loadModule(key, module, false);\\n }\\n}\\n\\nfunction updateStore(newStore) {\\n insert.store = newStore;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/raw-loader!./~/babel-loader/lib!./templates/hotTemplate.js\n// module id = 20\n// module chunks = 0","module.exports = require(\"commander\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"commander\"\n// module id = 21\n// module chunks = 0","module.exports = require(\"gaze\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"gaze\"\n// module id = 22\n// module chunks = 0","module.exports = require(\"html-webpack-plugin\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"html-webpack-plugin\"\n// module id = 23\n// module chunks = 0","module.exports = require(\"immutable\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"immutable\"\n// module id = 24\n// module chunks = 0","module.exports = require(\"kss\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"kss\"\n// module id = 25\n// module chunks = 0","module.exports = require(\"lodash/isEqual\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"lodash/isEqual\"\n// module id = 26\n// module chunks = 0","module.exports = require(\"opn\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"opn\"\n// module id = 27\n// module chunks = 0","module.exports = require(\"url\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"url\"\n// module id = 28\n// module chunks = 0","module.exports = require(\"webpack-dev-server\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"webpack-dev-server\"\n// module id = 29\n// module chunks = 0"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;AChEA;;;;;;;;;;;;ACcA;AAkBA;AAqCA;AAqCA;AAcA;AAkBA;AAyBA;AA4CA;AAyCA;AAyBA;AAyBA;AAqBA;AA6CA;AACA;AA5WA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;;;;;;;AAPA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;;AAFA;AAKA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AClXA;;;;;;ACAA;;;;;;;;;;;;;ACGA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;;;;;;AATA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzDA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAnBA;AAqBA;AACA;AACA;AAAA;;;;;;;;;;;;ACzBA;AA0DA;AACA;AA1EA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AAPA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAUA;;;;;;;;;;;;;;AClGA;AACA;;;AAAA;AACA;;;AAIA;AACA;;;;;AAAA;AACA;AACA;AACA;AAPA;AACA;AACA;AANA;AACA;AAUA;AACA;AAIA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AALA;AAOA;AACA;AAOA;AACA;AAIA;AAIA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;ACxEA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;AAhBA;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AAjBA;;;;;;;;;;;;ACwBA;AA8CA;AA+DA;AA0DA;AACA;AA7LA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;AADA;AACA;;;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AACA;AA4BA;AACA;AACA;AACA;;;;;;;AA/DA;AACA;AACA;AAoEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxCA;AACA;AA0CA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AArCA;AACA;AAuCA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5MA;AACA;AAAA;AACA;;;AACA;AACA;AAAA;AACA;;;AACA;;;;;AAKA;AACA;AACA;;;;;AAKA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;AAKA;AACA;AACA;;;;;;;;;;;;ACtBA;AACA;AA9BA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AAdA;AAeA;AACA;AAGA;AACA;AAGA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAZA;AAcA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3RA;AA0CA;AA+BA;AA+BA;AACA;AAvHA;AACA;;;AAAA;AACA;;;AACA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAhDA;AAyDA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AASA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AAMA;AAIA;;;;;;;;;;;;ACjHA;AAsEA;AACA;AAxFA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAMA;AACA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAhFA;AACA;AAwFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAMA;AACA;AAMA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAKA;AACA;AAaA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AAKA;;;;;;;;;;;AC5aA;AAFA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACYA;AACA;AAjBA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;;;;;;;;;;;;;AC7EA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AALA;AAOA;AAxBA;;;;;;;;;;;;;ACFA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AALA;AAOA;AAIA;AACA;AADA;AAKA;AACA;AADA;AASA;AACA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAHA;AAPA;AA3BA;AAmDA;;;;;;AC3DA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;ACAA;;;;;;;;;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 30);\n"],"mappings":"AACA","sourceRoot":""} \ No newline at end of file diff --git a/dist/web/index.js b/dist/web/index.js index 23210cf..3655c3d 100644 --- a/dist/web/index.js +++ b/dist/web/index.js @@ -1,2098 +1,6 @@ -module.exports = -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "../"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/lodash/fp.js": -/***/ (function(module, exports, __webpack_require__) { - -var _ = __webpack_require__("./node_modules/lodash/lodash.min.js").runInContext(); -module.exports = __webpack_require__("./node_modules/lodash/fp/_baseConvert.js")(_, _); - - -/***/ }), - -/***/ "./node_modules/lodash/fp/_baseConvert.js": -/***/ (function(module, exports, __webpack_require__) { - -var mapping = __webpack_require__("./node_modules/lodash/fp/_mapping.js"), - fallbackHolder = __webpack_require__("./node_modules/lodash/fp/placeholder.js"); - -/** Built-in value reference. */ -var push = Array.prototype.push; - +module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="../",e(e.s=0)}({"./node_modules/lodash/fp.js":function(t,n,e){var r=e("./node_modules/lodash/lodash.min.js").runInContext();t.exports=e("./node_modules/lodash/fp/_baseConvert.js")(r,r)},"./node_modules/lodash/fp/_baseConvert.js":function(t,n,e){var r=e("./node_modules/lodash/fp/_mapping.js"),u=e("./node_modules/lodash/fp/placeholder.js"),i=Array.prototype.push;function o(t,n){return 2==n?function(n,e){return t(n,e)}:function(n){return t(n)}}function a(t){for(var n=t?t.length:0,e=Array(n);n--;)e[n]=t[n];return e}function c(t,n){return function(){var e=arguments.length;if(e){for(var r=Array(e);e--;)r[e]=arguments[e];var u=r[0]=n.apply(void 0,r);return t.apply(void 0,r),u}}}t.exports=function t(n,e,f,l){var s,p="function"==typeof e,h=e===Object(e);if(h&&(l=f,f=e,e=void 0),null==f)throw new TypeError;l||(l={});var d={cap:!("cap"in l)||l.cap,curry:!("curry"in l)||l.curry,fixed:!("fixed"in l)||l.fixed,immutable:!("immutable"in l)||l.immutable,rearg:!("rearg"in l)||l.rearg},g="curry"in l&&l.curry,y="fixed"in l&&l.fixed,_="rearg"in l&&l.rearg,v=p?f:u,b=p?f.runInContext():void 0,m=p?f:{ary:n.ary,assign:n.assign,clone:n.clone,curry:n.curry,forEach:n.forEach,isArray:n.isArray,isError:n.isError,isFunction:n.isFunction,isWeakMap:n.isWeakMap,iteratee:n.iteratee,keys:n.keys,rearg:n.rearg,toInteger:n.toInteger,toPath:n.toPath},x=m.ary,j=m.assign,A=m.clone,w=m.curry,k=m.forEach,O=m.isArray,I=m.isError,E=m.isFunction,W=m.isWeakMap,R=m.keys,S=m.rearg,M=m.toInteger,B=m.toPath,L=R(r.aryMethod),C={castArray:function(t){return function(){var n=arguments[0];return O(n)?t(a(n)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var n=arguments[0],e=arguments[1],r=t(n,e),u=r.length;return d.cap&&"number"==typeof e?(e=e>2?e-2:1,u&&u<=e?r:o(r,e)):r}},mixin:function(t){return function(n){var e=this;if(!E(e))return t(e,Object(n));var r=[];return k(R(n),function(t){E(n[t])&&r.push([t,e.prototype[t]])}),t(e,Object(n)),k(r,function(t){var n=t[1];E(n)?e.prototype[t[0]]=n:delete e.prototype[t[0]]}),e}},nthArg:function(t){return function(n){var e=n<0?1:M(n)+1;return w(t(n),e)}},rearg:function(t){return function(n,e){var r=e?e.length:0;return w(t(n,e),r)}},runInContext:function(e){return function(r){return t(n,e(r),l)}}};function T(t,n){if(d.cap){var e=r.iterateeRearg[t];if(e)return function(t,n){return U(t,function(t){var e=n.length;return function(t,n){return 2==n?function(n,e){return t.apply(void 0,arguments)}:function(n){return t.apply(void 0,arguments)}}(S(o(t,e),n),e)})}(n,e);var u=!p&&r.iterateeAry[t];if(u)return function(t,n){return U(t,function(t){return"function"==typeof t?o(t,n):t})}(n,u)}return n}function z(t,n,e){if(d.fixed&&(y||!r.skipFixed[t])){var u=r.methodSpread[t],o=u&&u.start;return void 0===o?x(n,e):function(t,n){return function(){for(var e=arguments.length,r=e-1,u=Array(e);e--;)u[e]=arguments[e];var o=u[n],a=u.slice(0,n);return o&&i.apply(a,o),n!=r&&i.apply(a,u.slice(n+1)),t.apply(this,a)}}(n,o)}return n}function F(t,n,e){return d.rearg&&e>1&&(_||!r.skipRearg[t])?S(n,r.methodRearg[t]||r.aryRearg[e]):n}function D(t,n){for(var e=-1,r=(n=B(n)).length,u=r-1,i=A(Object(t)),o=i;null!=o&&++e1?w(c,f):c,!1}var c,f}),!e}),e||(e=i),e==n&&(e=g?w(e,1):function(){return n.apply(this,arguments)}),e.convert=P(u,n),r.placeholder[u]&&(s=!0,e.placeholder=n.placeholder=v),e}if(!h)return N(e,f);var q=f,$=[];return k(L,function(t){k(r.aryMethod[t],function(t){var n=q[r.remap[t]||t];n&&$.push([t,N(t,n)])})}),k(R(q),function(t){var n=q[t];if("function"==typeof n){for(var e=$.length;e--;)if($[e][0]==t)return;n.convert=P(t,n),$.push([t,n])}}),k($,function(t){q[t[0]]=t[1]}),q.convert=function(t){return q.runInContext.convert(t)(void 0)},s&&(q.placeholder=v),k(R(q),function(t){k(r.realToAlias[t]||[],function(n){q[n]=q[t]})}),q}},"./node_modules/lodash/fp/_mapping.js":function(t,n){n.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},n.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},n.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},n.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},n.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},n.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},n.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},n.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},n.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},n.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=n.aliasToReal,r={};for(var u in e){var i=e[u];t.call(r,i)?r[i].push(u):r[i]=[u]}return r}(),n.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},n.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},n.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},"./node_modules/lodash/fp/placeholder.js":function(t,n){t.exports={}},"./node_modules/lodash/lodash.min.js":function(t,n,e){(function(t,r){var u; /** - * Creates a function, with an arity of `n`, that invokes `func` with the - * arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} n The arity of the new function. - * @returns {Function} Returns the new function. - */ -function baseArity(func, n) { - return n == 2 - ? function(a, b) { return func.apply(undefined, arguments); } - : function(a) { return func.apply(undefined, arguments); }; -} - -/** - * Creates a function that invokes `func`, with up to `n` arguments, ignoring - * any additional arguments. - * - * @private - * @param {Function} func The function to cap arguments for. - * @param {number} n The arity cap. - * @returns {Function} Returns the new function. - */ -function baseAry(func, n) { - return n == 2 - ? function(a, b) { return func(a, b); } - : function(a) { return func(a); }; -} - -/** - * Creates a clone of `array`. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the cloned array. - */ -function cloneArray(array) { - var length = array ? array.length : 0, - result = Array(length); - - while (length--) { - result[length] = array[length]; - } - return result; -} - -/** - * Creates a function that clones a given object using the assignment `func`. - * - * @private - * @param {Function} func The assignment function. - * @returns {Function} Returns the new cloner function. - */ -function createCloner(func) { - return function(object) { - return func({}, object); - }; -} - -/** - * A specialized version of `_.spread` which flattens the spread array into - * the arguments of the invoked `func`. - * - * @private - * @param {Function} func The function to spread arguments over. - * @param {number} start The start position of the spread. - * @returns {Function} Returns the new function. - */ -function flatSpread(func, start) { - return function() { - var length = arguments.length, - lastIndex = length - 1, - args = Array(length); - - while (length--) { - args[length] = arguments[length]; - } - var array = args[start], - otherArgs = args.slice(0, start); - - if (array) { - push.apply(otherArgs, array); - } - if (start != lastIndex) { - push.apply(otherArgs, args.slice(start + 1)); - } - return func.apply(this, otherArgs); - }; -} - -/** - * Creates a function that wraps `func` and uses `cloner` to clone the first - * argument it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} cloner The function to clone arguments. - * @returns {Function} Returns the new immutable function. - */ -function wrapImmutable(func, cloner) { - return function() { - var length = arguments.length; - if (!length) { - return; - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var result = args[0] = cloner.apply(undefined, args); - func.apply(undefined, args); - return result; - }; -} - -/** - * The base implementation of `convert` which accepts a `util` object of methods - * required to perform conversions. - * - * @param {Object} util The util object. - * @param {string} name The name of the function to convert. - * @param {Function} func The function to convert. - * @param {Object} [options] The options object. - * @param {boolean} [options.cap=true] Specify capping iteratee arguments. - * @param {boolean} [options.curry=true] Specify currying. - * @param {boolean} [options.fixed=true] Specify fixed arity. - * @param {boolean} [options.immutable=true] Specify immutable operations. - * @param {boolean} [options.rearg=true] Specify rearranging arguments. - * @returns {Function|Object} Returns the converted function or object. - */ -function baseConvert(util, name, func, options) { - var setPlaceholder, - isLib = typeof name == 'function', - isObj = name === Object(name); - - if (isObj) { - options = func; - func = name; - name = undefined; - } - if (func == null) { - throw new TypeError; - } - options || (options = {}); - - var config = { - 'cap': 'cap' in options ? options.cap : true, - 'curry': 'curry' in options ? options.curry : true, - 'fixed': 'fixed' in options ? options.fixed : true, - 'immutable': 'immutable' in options ? options.immutable : true, - 'rearg': 'rearg' in options ? options.rearg : true - }; - - var forceCurry = ('curry' in options) && options.curry, - forceFixed = ('fixed' in options) && options.fixed, - forceRearg = ('rearg' in options) && options.rearg, - placeholder = isLib ? func : fallbackHolder, - pristine = isLib ? func.runInContext() : undefined; - - var helpers = isLib ? func : { - 'ary': util.ary, - 'assign': util.assign, - 'clone': util.clone, - 'curry': util.curry, - 'forEach': util.forEach, - 'isArray': util.isArray, - 'isFunction': util.isFunction, - 'iteratee': util.iteratee, - 'keys': util.keys, - 'rearg': util.rearg, - 'toInteger': util.toInteger, - 'toPath': util.toPath - }; - - var ary = helpers.ary, - assign = helpers.assign, - clone = helpers.clone, - curry = helpers.curry, - each = helpers.forEach, - isArray = helpers.isArray, - isFunction = helpers.isFunction, - keys = helpers.keys, - rearg = helpers.rearg, - toInteger = helpers.toInteger, - toPath = helpers.toPath; - - var aryMethodKeys = keys(mapping.aryMethod); - - var wrappers = { - 'castArray': function(castArray) { - return function() { - var value = arguments[0]; - return isArray(value) - ? castArray(cloneArray(value)) - : castArray.apply(undefined, arguments); - }; - }, - 'iteratee': function(iteratee) { - return function() { - var func = arguments[0], - arity = arguments[1], - result = iteratee(func, arity), - length = result.length; - - if (config.cap && typeof arity == 'number') { - arity = arity > 2 ? (arity - 2) : 1; - return (length && length <= arity) ? result : baseAry(result, arity); - } - return result; - }; - }, - 'mixin': function(mixin) { - return function(source) { - var func = this; - if (!isFunction(func)) { - return mixin(func, Object(source)); - } - var pairs = []; - each(keys(source), function(key) { - if (isFunction(source[key])) { - pairs.push([key, func.prototype[key]]); - } - }); - - mixin(func, Object(source)); - - each(pairs, function(pair) { - var value = pair[1]; - if (isFunction(value)) { - func.prototype[pair[0]] = value; - } else { - delete func.prototype[pair[0]]; - } - }); - return func; - }; - }, - 'nthArg': function(nthArg) { - return function(n) { - var arity = n < 0 ? 1 : (toInteger(n) + 1); - return curry(nthArg(n), arity); - }; - }, - 'rearg': function(rearg) { - return function(func, indexes) { - var arity = indexes ? indexes.length : 0; - return curry(rearg(func, indexes), arity); - }; - }, - 'runInContext': function(runInContext) { - return function(context) { - return baseConvert(util, runInContext(context), options); - }; - } - }; - - /*--------------------------------------------------------------------------*/ - - /** - * Casts `func` to a function with an arity capped iteratee if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @returns {Function} Returns the cast function. - */ - function castCap(name, func) { - if (config.cap) { - var indexes = mapping.iterateeRearg[name]; - if (indexes) { - return iterateeRearg(func, indexes); - } - var n = !isLib && mapping.iterateeAry[name]; - if (n) { - return iterateeAry(func, n); - } - } - return func; - } - - /** - * Casts `func` to a curried function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity of `func`. - * @returns {Function} Returns the cast function. - */ - function castCurry(name, func, n) { - return (forceCurry || (config.curry && n > 1)) - ? curry(func, n) - : func; - } - - /** - * Casts `func` to a fixed arity function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity cap. - * @returns {Function} Returns the cast function. - */ - function castFixed(name, func, n) { - if (config.fixed && (forceFixed || !mapping.skipFixed[name])) { - var data = mapping.methodSpread[name], - start = data && data.start; - - return start === undefined ? ary(func, n) : flatSpread(func, start); - } - return func; - } - - /** - * Casts `func` to an rearged function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity of `func`. - * @returns {Function} Returns the cast function. - */ - function castRearg(name, func, n) { - return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name])) - ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n]) - : func; - } - - /** - * Creates a clone of `object` by `path`. - * - * @private - * @param {Object} object The object to clone. - * @param {Array|string} path The path to clone by. - * @returns {Object} Returns the cloned object. - */ - function cloneByPath(object, path) { - path = toPath(path); - - var index = -1, - length = path.length, - lastIndex = length - 1, - result = clone(Object(object)), - nested = result; - - while (nested != null && ++index < length) { - var key = path[index], - value = nested[key]; - - if (value != null) { - nested[path[index]] = clone(index == lastIndex ? value : Object(value)); - } - nested = nested[key]; - } - return result; - } - - /** - * Converts `lodash` to an immutable auto-curried iteratee-first data-last - * version with conversion `options` applied. - * - * @param {Object} [options] The options object. See `baseConvert` for more details. - * @returns {Function} Returns the converted `lodash`. - */ - function convertLib(options) { - return _.runInContext.convert(options)(undefined); - } - - /** - * Create a converter function for `func` of `name`. - * - * @param {string} name The name of the function to convert. - * @param {Function} func The function to convert. - * @returns {Function} Returns the new converter function. - */ - function createConverter(name, func) { - var realName = mapping.aliasToReal[name] || name, - methodName = mapping.remap[realName] || realName, - oldOptions = options; - - return function(options) { - var newUtil = isLib ? pristine : helpers, - newFunc = isLib ? pristine[methodName] : func, - newOptions = assign(assign({}, oldOptions), options); - - return baseConvert(newUtil, realName, newFunc, newOptions); - }; - } - - /** - * Creates a function that wraps `func` to invoke its iteratee, with up to `n` - * arguments, ignoring any additional arguments. - * - * @private - * @param {Function} func The function to cap iteratee arguments for. - * @param {number} n The arity cap. - * @returns {Function} Returns the new function. - */ - function iterateeAry(func, n) { - return overArg(func, function(func) { - return typeof func == 'function' ? baseAry(func, n) : func; - }); - } - - /** - * Creates a function that wraps `func` to invoke its iteratee with arguments - * arranged according to the specified `indexes` where the argument value at - * the first index is provided as the first argument, the argument value at - * the second index is provided as the second argument, and so on. - * - * @private - * @param {Function} func The function to rearrange iteratee arguments for. - * @param {number[]} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - */ - function iterateeRearg(func, indexes) { - return overArg(func, function(func) { - var n = indexes.length; - return baseArity(rearg(baseAry(func, n), indexes), n); - }); - } - - /** - * Creates a function that invokes `func` with its first argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function() { - var length = arguments.length; - if (!length) { - return func(); - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var index = config.rearg ? 0 : (length - 1); - args[index] = transform(args[index]); - return func.apply(undefined, args); - }; - } - - /** - * Creates a function that wraps `func` and applys the conversions - * rules by `name`. - * - * @private - * @param {string} name The name of the function to wrap. - * @param {Function} func The function to wrap. - * @returns {Function} Returns the converted function. - */ - function wrap(name, func) { - var result, - realName = mapping.aliasToReal[name] || name, - wrapped = func, - wrapper = wrappers[realName]; - - if (wrapper) { - wrapped = wrapper(func); - } - else if (config.immutable) { - if (mapping.mutate.array[realName]) { - wrapped = wrapImmutable(func, cloneArray); - } - else if (mapping.mutate.object[realName]) { - wrapped = wrapImmutable(func, createCloner(func)); - } - else if (mapping.mutate.set[realName]) { - wrapped = wrapImmutable(func, cloneByPath); - } - } - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(otherName) { - if (realName == otherName) { - var data = mapping.methodSpread[realName], - afterRearg = data && data.afterRearg; - - result = afterRearg - ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey) - : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey); - - result = castCap(realName, result); - result = castCurry(realName, result, aryKey); - return false; - } - }); - return !result; - }); - - result || (result = wrapped); - if (result == func) { - result = forceCurry ? curry(result, 1) : function() { - return func.apply(this, arguments); - }; - } - result.convert = createConverter(realName, func); - if (mapping.placeholder[realName]) { - setPlaceholder = true; - result.placeholder = func.placeholder = placeholder; - } - return result; - } - - /*--------------------------------------------------------------------------*/ - - if (!isObj) { - return wrap(name, func); - } - var _ = func; - - // Convert methods by ary cap. - var pairs = []; - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(key) { - var func = _[mapping.remap[key] || key]; - if (func) { - pairs.push([key, wrap(key, func)]); - } - }); - }); - - // Convert remaining methods. - each(keys(_), function(key) { - var func = _[key]; - if (typeof func == 'function') { - var length = pairs.length; - while (length--) { - if (pairs[length][0] == key) { - return; - } - } - func.convert = createConverter(key, func); - pairs.push([key, func]); - } - }); - - // Assign to `_` leaving `_.prototype` unchanged to allow chaining. - each(pairs, function(pair) { - _[pair[0]] = pair[1]; - }); - - _.convert = convertLib; - if (setPlaceholder) { - _.placeholder = placeholder; - } - // Assign aliases. - each(keys(_), function(key) { - each(mapping.realToAlias[key] || [], function(alias) { - _[alias] = _[key]; - }); - }); - - return _; -} - -module.exports = baseConvert; - - -/***/ }), - -/***/ "./node_modules/lodash/fp/_mapping.js": -/***/ (function(module, exports) { - -/** Used to map aliases to their real names. */ -exports.aliasToReal = { - - // Lodash aliases. - 'each': 'forEach', - 'eachRight': 'forEachRight', - 'entries': 'toPairs', - 'entriesIn': 'toPairsIn', - 'extend': 'assignIn', - 'extendAll': 'assignInAll', - 'extendAllWith': 'assignInAllWith', - 'extendWith': 'assignInWith', - 'first': 'head', - - // Methods that are curried variants of others. - 'conforms': 'conformsTo', - 'matches': 'isMatch', - 'property': 'get', - - // Ramda aliases. - '__': 'placeholder', - 'F': 'stubFalse', - 'T': 'stubTrue', - 'all': 'every', - 'allPass': 'overEvery', - 'always': 'constant', - 'any': 'some', - 'anyPass': 'overSome', - 'apply': 'spread', - 'assoc': 'set', - 'assocPath': 'set', - 'complement': 'negate', - 'compose': 'flowRight', - 'contains': 'includes', - 'dissoc': 'unset', - 'dissocPath': 'unset', - 'dropLast': 'dropRight', - 'dropLastWhile': 'dropRightWhile', - 'equals': 'isEqual', - 'identical': 'eq', - 'indexBy': 'keyBy', - 'init': 'initial', - 'invertObj': 'invert', - 'juxt': 'over', - 'omitAll': 'omit', - 'nAry': 'ary', - 'path': 'get', - 'pathEq': 'matchesProperty', - 'pathOr': 'getOr', - 'paths': 'at', - 'pickAll': 'pick', - 'pipe': 'flow', - 'pluck': 'map', - 'prop': 'get', - 'propEq': 'matchesProperty', - 'propOr': 'getOr', - 'props': 'at', - 'symmetricDifference': 'xor', - 'symmetricDifferenceBy': 'xorBy', - 'symmetricDifferenceWith': 'xorWith', - 'takeLast': 'takeRight', - 'takeLastWhile': 'takeRightWhile', - 'unapply': 'rest', - 'unnest': 'flatten', - 'useWith': 'overArgs', - 'where': 'conformsTo', - 'whereEq': 'isMatch', - 'zipObj': 'zipObject' -}; - -/** Used to map ary to method names. */ -exports.aryMethod = { - '1': [ - 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create', - 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow', - 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll', - 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse', - 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart', - 'uniqueId', 'words', 'zipAll' - ], - '2': [ - 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith', - 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith', - 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN', - 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference', - 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', - 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex', - 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach', - 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get', - 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection', - 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', - 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', - 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit', - 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial', - 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll', - 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', - 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex', - 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy', - 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', - 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', - 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', - 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', - 'zipObjectDeep' - ], - '3': [ - 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith', - 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr', - 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith', - 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', - 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd', - 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight', - 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', - 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy', - 'xorWith', 'zipWith' - ], - '4': [ - 'fill', 'setWith', 'updateWith' - ] -}; - -/** Used to map ary to rearg configs. */ -exports.aryRearg = { - '2': [1, 0], - '3': [2, 0, 1], - '4': [3, 2, 0, 1] -}; - -/** Used to map method names to their iteratee ary. */ -exports.iterateeAry = { - 'dropRightWhile': 1, - 'dropWhile': 1, - 'every': 1, - 'filter': 1, - 'find': 1, - 'findFrom': 1, - 'findIndex': 1, - 'findIndexFrom': 1, - 'findKey': 1, - 'findLast': 1, - 'findLastFrom': 1, - 'findLastIndex': 1, - 'findLastIndexFrom': 1, - 'findLastKey': 1, - 'flatMap': 1, - 'flatMapDeep': 1, - 'flatMapDepth': 1, - 'forEach': 1, - 'forEachRight': 1, - 'forIn': 1, - 'forInRight': 1, - 'forOwn': 1, - 'forOwnRight': 1, - 'map': 1, - 'mapKeys': 1, - 'mapValues': 1, - 'partition': 1, - 'reduce': 2, - 'reduceRight': 2, - 'reject': 1, - 'remove': 1, - 'some': 1, - 'takeRightWhile': 1, - 'takeWhile': 1, - 'times': 1, - 'transform': 2 -}; - -/** Used to map method names to iteratee rearg configs. */ -exports.iterateeRearg = { - 'mapKeys': [1], - 'reduceRight': [1, 0] -}; - -/** Used to map method names to rearg configs. */ -exports.methodRearg = { - 'assignInAllWith': [1, 0], - 'assignInWith': [1, 2, 0], - 'assignAllWith': [1, 0], - 'assignWith': [1, 2, 0], - 'differenceBy': [1, 2, 0], - 'differenceWith': [1, 2, 0], - 'getOr': [2, 1, 0], - 'intersectionBy': [1, 2, 0], - 'intersectionWith': [1, 2, 0], - 'isEqualWith': [1, 2, 0], - 'isMatchWith': [2, 1, 0], - 'mergeAllWith': [1, 0], - 'mergeWith': [1, 2, 0], - 'padChars': [2, 1, 0], - 'padCharsEnd': [2, 1, 0], - 'padCharsStart': [2, 1, 0], - 'pullAllBy': [2, 1, 0], - 'pullAllWith': [2, 1, 0], - 'rangeStep': [1, 2, 0], - 'rangeStepRight': [1, 2, 0], - 'setWith': [3, 1, 2, 0], - 'sortedIndexBy': [2, 1, 0], - 'sortedLastIndexBy': [2, 1, 0], - 'unionBy': [1, 2, 0], - 'unionWith': [1, 2, 0], - 'updateWith': [3, 1, 2, 0], - 'xorBy': [1, 2, 0], - 'xorWith': [1, 2, 0], - 'zipWith': [1, 2, 0] -}; - -/** Used to map method names to spread configs. */ -exports.methodSpread = { - 'assignAll': { 'start': 0 }, - 'assignAllWith': { 'start': 0 }, - 'assignInAll': { 'start': 0 }, - 'assignInAllWith': { 'start': 0 }, - 'defaultsAll': { 'start': 0 }, - 'defaultsDeepAll': { 'start': 0 }, - 'invokeArgs': { 'start': 2 }, - 'invokeArgsMap': { 'start': 2 }, - 'mergeAll': { 'start': 0 }, - 'mergeAllWith': { 'start': 0 }, - 'partial': { 'start': 1 }, - 'partialRight': { 'start': 1 }, - 'without': { 'start': 1 }, - 'zipAll': { 'start': 0 } -}; - -/** Used to identify methods which mutate arrays or objects. */ -exports.mutate = { - 'array': { - 'fill': true, - 'pull': true, - 'pullAll': true, - 'pullAllBy': true, - 'pullAllWith': true, - 'pullAt': true, - 'remove': true, - 'reverse': true - }, - 'object': { - 'assign': true, - 'assignAll': true, - 'assignAllWith': true, - 'assignIn': true, - 'assignInAll': true, - 'assignInAllWith': true, - 'assignInWith': true, - 'assignWith': true, - 'defaults': true, - 'defaultsAll': true, - 'defaultsDeep': true, - 'defaultsDeepAll': true, - 'merge': true, - 'mergeAll': true, - 'mergeAllWith': true, - 'mergeWith': true, - }, - 'set': { - 'set': true, - 'setWith': true, - 'unset': true, - 'update': true, - 'updateWith': true - } -}; - -/** Used to track methods with placeholder support */ -exports.placeholder = { - 'bind': true, - 'bindKey': true, - 'curry': true, - 'curryRight': true, - 'partial': true, - 'partialRight': true -}; - -/** Used to map real names to their aliases. */ -exports.realToAlias = (function() { - var hasOwnProperty = Object.prototype.hasOwnProperty, - object = exports.aliasToReal, - result = {}; - - for (var key in object) { - var value = object[key]; - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - return result; -}()); - -/** Used to map method names to other names. */ -exports.remap = { - 'assignAll': 'assign', - 'assignAllWith': 'assignWith', - 'assignInAll': 'assignIn', - 'assignInAllWith': 'assignInWith', - 'curryN': 'curry', - 'curryRightN': 'curryRight', - 'defaultsAll': 'defaults', - 'defaultsDeepAll': 'defaultsDeep', - 'findFrom': 'find', - 'findIndexFrom': 'findIndex', - 'findLastFrom': 'findLast', - 'findLastIndexFrom': 'findLastIndex', - 'getOr': 'get', - 'includesFrom': 'includes', - 'indexOfFrom': 'indexOf', - 'invokeArgs': 'invoke', - 'invokeArgsMap': 'invokeMap', - 'lastIndexOfFrom': 'lastIndexOf', - 'mergeAll': 'merge', - 'mergeAllWith': 'mergeWith', - 'padChars': 'pad', - 'padCharsEnd': 'padEnd', - 'padCharsStart': 'padStart', - 'propertyOf': 'get', - 'rangeStep': 'range', - 'rangeStepRight': 'rangeRight', - 'restFrom': 'rest', - 'spreadFrom': 'spread', - 'trimChars': 'trim', - 'trimCharsEnd': 'trimEnd', - 'trimCharsStart': 'trimStart', - 'zipAll': 'zip' -}; - -/** Used to track methods that skip fixing their arity. */ -exports.skipFixed = { - 'castArray': true, - 'flow': true, - 'flowRight': true, - 'iteratee': true, - 'mixin': true, - 'rearg': true, - 'runInContext': true -}; - -/** Used to track methods that skip rearranging arguments. */ -exports.skipRearg = { - 'add': true, - 'assign': true, - 'assignIn': true, - 'bind': true, - 'bindKey': true, - 'concat': true, - 'difference': true, - 'divide': true, - 'eq': true, - 'gt': true, - 'gte': true, - 'isEqual': true, - 'lt': true, - 'lte': true, - 'matchesProperty': true, - 'merge': true, - 'multiply': true, - 'overArgs': true, - 'partial': true, - 'partialRight': true, - 'propertyOf': true, - 'random': true, - 'range': true, - 'rangeRight': true, - 'subtract': true, - 'zip': true, - 'zipObject': true, - 'zipObjectDeep': true -}; - - -/***/ }), - -/***/ "./node_modules/lodash/fp/placeholder.js": -/***/ (function(module, exports) { - -/** - * The default argument placeholder value for methods. - * - * @type {Object} - */ -module.exports = {}; - - -/***/ }), - -/***/ "./node_modules/lodash/lodash.min.js": -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** * @license * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE - */ -;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/^\./,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hn=/\{\n\/\* \[wrapped with (.+)\] \*/,pn=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vn=/\\(\\)?/g,gn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dn=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\d*)$/,mn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,An=/($^)/,kn=/['\n\r\u2028\u2029\\]/g,En="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",On="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+En,Sn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",In=RegExp("['\u2019]","g"),Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),zn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Sn+En,"g"),Wn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+",On].join("|"),"g"),Bn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={}; -Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object DataView]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false; -var Dn={};Dn["[object Arguments]"]=Dn["[object Array]"]=Dn["[object ArrayBuffer]"]=Dn["[object DataView]"]=Dn["[object Boolean]"]=Dn["[object Date]"]=Dn["[object Float32Array]"]=Dn["[object Float64Array]"]=Dn["[object Int8Array]"]=Dn["[object Int16Array]"]=Dn["[object Int32Array]"]=Dn["[object Map]"]=Dn["[object Number]"]=Dn["[object Object]"]=Dn["[object RegExp]"]=Dn["[object Set]"]=Dn["[object String]"]=Dn["[object Symbol]"]=Dn["[object Uint8Array]"]=Dn["[object Uint8ClampedArray]"]=Dn["[object Uint16Array]"]=Dn["[object Uint32Array]"]=true, -Dn["[object Error]"]=Dn["[object Function]"]=Dn["[object WeakMap]"]=false;var Mn,Tn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$n=parseFloat,Fn=parseInt,Nn=typeof global=="object"&&global&&global.Object===Object&&global,Pn=typeof self=="object"&&self&&self.Object===Object&&self,Zn=Nn||Pn||Function("return this")(),qn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vn=qn&&typeof module=="object"&&module&&!module.nodeType&&module,Kn=Vn&&Vn.exports===qn,Gn=Kn&&Nn.process; -n:{try{Mn=Gn&&Gn.binding&&Gn.binding("util");break n}catch(n){}Mn=void 0}var Hn=Mn&&Mn.isArrayBuffer,Jn=Mn&&Mn.isDate,Yn=Mn&&Mn.isMap,Qn=Mn&&Mn.isRegExp,Xn=Mn&&Mn.isSet,nt=Mn&&Mn.isTypedArray,tt=j("length"),rt=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I", -"\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C", -"\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i", -"\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S", -"\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe", -"\u0149":"'n","\u017f":"s"}),et=w({"&":"&","<":"<",">":">",'"':""","'":"'"}),ut=w({"&":"&","<":"<",">":">",""":'"',"'":"'"}),it=function w(En){function On(n){if(xu(n)&&!af(n)&&!(n instanceof Mn)){if(n instanceof zn)return n;if(ci.call(n,"__wrapped__"))return Pe(n)}return new zn(n)}function Sn(){}function zn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=F}function Mn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1, -this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function dt(n,t,r,e,i,o){var f,c=1&t,a=2&t,l=4&t;if(r&&(f=i?r(n,e,i,o):r(n)),f!==F)return f;if(!bu(n))return n;if(e=af(n)){if(f=Ee(n),!c)return Mr(n,f)}else{var s=yo(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(sf(n))return Wr(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Oe(n),!c)return a?Fr(n,pt(f,n)):$r(n,ht(f,n))}else{if(!Dn[s])return i?n:{};f=Se(n,s,dt,c)}}if(o||(o=new Vn), -i=o.get(n))return i;o.set(n,f);var a=l?a?ye:de:a?Uu:Lu,p=e?F:a(n);return u(p||n,function(e,u){p&&(u=e,e=n[u]),at(f,u,dt(e,t,r,u,n,o))}),f}function yt(n){var t=Lu(n);return function(r){return bt(r,n,t)}}function bt(n,t,r){var e=r.length;if(null==n)return!e;for(n=ni(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===F&&!(u in n)||!i(o))return false}return true}function xt(n,t,r){if(typeof n!="function")throw new ei("Expected a function");return jo(function(){n.apply(F,r)},t)}function jt(n,t,r,e){var u=-1,i=c,o=true,f=n.length,s=[],h=t.length; -if(!f)return s;r&&(t=l(t,S(r))),e?(i=a,o=false):200<=t.length&&(i=R,o=false,t=new qn(t));n:for(;++ut}function Bt(n,t){return null!=n&&ci.call(n,t)}function Lt(n,t){return null!=n&&t in ni(n)}function Ut(n,t,r){for(var e=r?a:c,u=n[0].length,i=n.length,o=i,f=Hu(i),s=1/0,h=[];o--;){var p=n[o];o&&t&&(p=l(p,S(t))),s=Mi(p.length,s),f[o]=!r&&(t||120<=u&&120<=p.length)?new qn(o&&p):F}var p=n[0],_=-1,v=f[0];n:for(;++_t.length?n:It(n,vr(t,0,-1)),t=null==n?n:n[$e(Ge(t))],null==t?F:r(t,n,e)}function Mt(n){return xu(n)&&"[object Arguments]"==zt(n)}function Tt(n){return xu(n)&&"[object ArrayBuffer]"==zt(n)}function $t(n){return xu(n)&&"[object Date]"==zt(n)}function Ft(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!xu(n)&&!xu(t))t=n!==n&&t!==t;else n:{ -var i=af(n),o=af(t),f=i?"[object Array]":yo(n),c=o?"[object Array]":yo(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&sf(n)){if(!sf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Vn),t=i||gf(n)?_e(n,t,r,e,Ft,u):ve(n,t,f,r,e,Ft,u);else{if(!(1&r)&&(i=a&&ci.call(n,"__wrapped__"),f=o&&ci.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Vn),t=Ft(n,t,r,e,u);break n}if(c)t:if(u||(u=new Vn), -i=1&r,f=de(n),o=f.length,c=de(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ci.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Re(t,r)?n[t]:F}function rr(n,t,r){var e=-1;return t=l(t.length?t:[Nu],S(je())),n=Yt(n,function(n){return{a:l(t,function(t){return t(n)}),b:++e,c:n}}),A(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1); -break n}}e=n.b-t.b}return e})}function er(n,t){return ur(n,t,function(t,r){return Bu(n,r)})}function ur(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Hu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!Au(o)&&(r?o<=t:ot.length?n:It(n,vr(t,0,-1)), -null==n||delete n[$e(Ge(t))]}function Ar(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?wr(n[0]):[];for(var u=-1,i=Hu(e);++u=e?n:vr(n,t,r)}function Wr(n,t){if(t)return n.slice();var r=n.length,r=yi?yi(r):new n.constructor(r);return n.copy(r),r}function Br(n){var t=new n.constructor(n.byteLength);return new di(t).set(new di(n)),t}function Lr(n,t){return new n.constructor(t?Br(n.buffer):n.buffer,n.byteOffset,n.length)}function Ur(n,t){ -if(n!==t){var r=n!==F,e=null===n,u=n===n,i=Au(n),o=t!==F,f=null===t,c=t===t,a=Au(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?F:i,u=1),t=ni(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,or?r?ar(t,n):t:(r=ar(t,Ri(n/T(t))),Bn.test(t)?zr($(r),0,n).join(""):r.slice(0,n))}function ue(n,t,e,u){function i(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Hu(l+c),h=this&&this!==Zn&&this instanceof i?f:n;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Cr(e,r,h[4]):r,i[4]=e?C(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Dr(e,r,h[6]):r,i[6]=e?C(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Mi(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1], -r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===F?c?0:n.length:Di(i[9]-a,0),!f&&24&t&&(t&=-25),De((h?lo:xo)(t&&1!=t?8==t||16==t?Jr(n,t,f):32!=t&&33!=t||u.length?Xr.apply(F,i):ue(n,t,r,e):Vr(n,t,r),i),n,t)}function se(n,t,r,e){return n===F||hu(n,ii[r])&&!ci.call(e,r)?t:n}function he(n,t,r,e,u,i){return bu(n)&&bu(t)&&(i.set(t,n),nr(n,t,F,he,i),i.delete(t)),n}function pe(n){return wu(n)?F:n}function _e(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new qn:F; -for(i.set(n,t),i.set(t,n);++cr&&(r=Di(e+r,0)),g(n,je(t,3),r)):-1}function qe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==F&&(u=Ou(r),u=0>r?Di(e+u,0):Mi(u,e-1)), -g(n,je(t,3),u,true)}function Ve(n){return(null==n?0:n.length)?kt(n,1):[]}function Ke(n){return n&&n.length?n[0]:F}function Ge(n){var t=null==n?0:n.length;return t?n[t-1]:F}function He(n,t){return n&&n.length&&t&&t.length?or(n,t):n}function Je(n){return null==n?n:Ni.call(n)}function Ye(n){if(!n||!n.length)return[];var t=0;return n=f(n,function(n){if(_u(n))return t=Di(n.length,t),true}),E(t,function(t){return l(n,j(t))})}function Qe(n,t){if(!n||!n.length)return[];var e=Ye(n);return null==t?e:l(e,function(n){ -return r(t,F,n)})}function Xe(n){return n=On(n),n.__chain__=true,n}function nu(n,t){return t(n)}function tu(){return this}function ru(n,t){return(af(n)?u:oo)(n,je(t,3))}function eu(n,t){return(af(n)?i:fo)(n,je(t,3))}function uu(n,t){return(af(n)?l:Yt)(n,je(t,3))}function iu(n,t,r){return t=r?F:t,t=n&&null==t?n.length:t,le(n,128,F,F,F,F,t)}function ou(n,t){var r;if(typeof t!="function")throw new ei("Expected a function");return n=Ou(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=F), -r}}function fu(n,t,r){return t=r?F:t,n=le(n,8,F,F,F,F,F,t),n.placeholder=fu.placeholder,n}function cu(n,t,r){return t=r?F:t,n=le(n,16,F,F,F,F,F,t),n.placeholder=cu.placeholder,n}function au(n,t,r){function e(t){var r=c,e=a;return c=a=F,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===F||r>=t||0>r||g&&n>=l}function i(){var n=Jo();if(u(n))return o(n);var r,e=jo;r=n-_,n=t-(n-p),r=g?Mi(n,l-r):n,h=e(i,r)}function o(n){return h=F,d&&c?e(n):(c=a=F,s)}function f(){var n=Jo(),r=u(n);if(c=arguments, -a=this,p=n,r){if(h===F)return _=n=p,h=jo(i,t),v?e(n):s;if(g)return h=jo(i,t),e(p)}return h===F&&(h=jo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ei("Expected a function");return t=Iu(t)||0,bu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Di(Iu(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==F&&ho(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Jo())},f}function lu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e), -r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ei("Expected a function");return r.cache=new(lu.Cache||Pn),r}function su(n){if(typeof n!="function")throw new ei("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function hu(n,t){return n===t||n!==n&&t!==t}function pu(n){return null!=n&&yu(n.length)&&!gu(n); -}function _u(n){return xu(n)&&pu(n)}function vu(n){if(!xu(n))return false;var t=zt(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!wu(n)}function gu(n){return!!bu(n)&&(n=zt(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function du(n){return typeof n=="number"&&n==Ou(n)}function yu(n){return typeof n=="number"&&-1=n}function bu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t); -}function xu(n){return null!=n&&typeof n=="object"}function ju(n){return typeof n=="number"||xu(n)&&"[object Number]"==zt(n)}function wu(n){return!(!xu(n)||"[object Object]"!=zt(n))&&(n=bi(n),null===n||(n=ci.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&fi.call(n)==hi))}function mu(n){return typeof n=="string"||!af(n)&&xu(n)&&"[object String]"==zt(n)}function Au(n){return typeof n=="symbol"||xu(n)&&"[object Symbol]"==zt(n)}function ku(n){if(!n)return[];if(pu(n))return mu(n)?$(n):Mr(n); -if(Ai&&n[Ai]){n=n[Ai]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=yo(n),("[object Map]"==t?L:"[object Set]"==t?D:Du)(n)}function Eu(n){return n?(n=Iu(n),n===N||n===-N?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Ou(n){n=Eu(n);var t=n%1;return n===n?t?n-t:n:0}function Su(n){return n?gt(Ou(n),0,4294967295):0}function Iu(n){if(typeof n=="number")return n;if(Au(n))return P;if(bu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=bu(n)?n+"":n),typeof n!="string")return 0===n?n:+n; -n=n.replace(cn,"");var t=bn.test(n);return t||jn.test(n)?Fn(n.slice(2),t?2:8):yn.test(n)?P:+n}function Ru(n){return Tr(n,Uu(n))}function zu(n){return null==n?"":jr(n)}function Wu(n,t,r){return n=null==n?F:It(n,t),n===F?r:n}function Bu(n,t){return null!=n&&ke(n,t,Lt)}function Lu(n){return pu(n)?Gn(n):Ht(n)}function Uu(n){if(pu(n))n=Gn(n,true);else if(bu(n)){var t,r=Le(n),e=[];for(t in n)("constructor"!=t||!r&&ci.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in ni(n))t.push(r);n=t}return n}function Cu(n,t){ -if(null==n)return{};var r=l(ye(n),function(n){return[n]});return t=je(t),ur(n,r,function(n,r){return t(n,r[0])})}function Du(n){return null==n?[]:I(n,Lu(n))}function Mu(n){return Nf(zu(n).toLowerCase())}function Tu(n){return(n=zu(n))&&n.replace(mn,rt).replace(Rn,"")}function $u(n,t,r){return n=zu(n),t=r?F:t,t===F?Ln.test(n)?n.match(Wn)||[]:n.match(_n)||[]:n.match(t)||[]}function Fu(n){return function(){return n}}function Nu(n){return n}function Pu(n){return Gt(typeof n=="function"?n:dt(n,1))}function Zu(n,t,r){ -var e=Lu(t),i=St(t,e);null!=r||bu(t)&&(i.length||!e.length)||(r=t,t=n,n=this,i=St(t,Lu(t)));var o=!(bu(r)&&"chain"in r&&!r.chain),f=gu(n);return u(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Mr(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,s([this.value()],arguments))})}),n}function qu(){}function Vu(n){return We(n)?j($e(n)):ir(n)}function Ku(){return[]}function Gu(){ -return false}En=null==En?Zn:it.defaults(Zn.Object(),En,it.pick(Zn,Un));var Hu=En.Array,Ju=En.Date,Yu=En.Error,Qu=En.Function,Xu=En.Math,ni=En.Object,ti=En.RegExp,ri=En.String,ei=En.TypeError,ui=Hu.prototype,ii=ni.prototype,oi=En["__core-js_shared__"],fi=Qu.prototype.toString,ci=ii.hasOwnProperty,ai=0,li=function(){var n=/[^.]+$/.exec(oi&&oi.keys&&oi.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),si=ii.toString,hi=fi.call(ni),pi=Zn._,_i=ti("^"+fi.call(ci).replace(on,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vi=Kn?En.Buffer:F,gi=En.Symbol,di=En.Uint8Array,yi=vi?vi.f:F,bi=U(ni.getPrototypeOf,ni),xi=ni.create,ji=ii.propertyIsEnumerable,wi=ui.splice,mi=gi?gi.isConcatSpreadable:F,Ai=gi?gi.iterator:F,ki=gi?gi.toStringTag:F,Ei=function(){ -try{var n=Ae(ni,"defineProperty");return n({},"",{}),n}catch(n){}}(),Oi=En.clearTimeout!==Zn.clearTimeout&&En.clearTimeout,Si=Ju&&Ju.now!==Zn.Date.now&&Ju.now,Ii=En.setTimeout!==Zn.setTimeout&&En.setTimeout,Ri=Xu.ceil,zi=Xu.floor,Wi=ni.getOwnPropertySymbols,Bi=vi?vi.isBuffer:F,Li=En.isFinite,Ui=ui.join,Ci=U(ni.keys,ni),Di=Xu.max,Mi=Xu.min,Ti=Ju.now,$i=En.parseInt,Fi=Xu.random,Ni=ui.reverse,Pi=Ae(En,"DataView"),Zi=Ae(En,"Map"),qi=Ae(En,"Promise"),Vi=Ae(En,"Set"),Ki=Ae(En,"WeakMap"),Gi=Ae(ni,"create"),Hi=Ki&&new Ki,Ji={},Yi=Fe(Pi),Qi=Fe(Zi),Xi=Fe(qi),no=Fe(Vi),to=Fe(Ki),ro=gi?gi.prototype:F,eo=ro?ro.valueOf:F,uo=ro?ro.toString:F,io=function(){ -function n(){}return function(t){return bu(t)?xi?xi(t):(n.prototype=t,t=new n,n.prototype=F,t):{}}}();On.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:On}},On.prototype=Sn.prototype,On.prototype.constructor=On,zn.prototype=io(Sn.prototype),zn.prototype.constructor=zn,Mn.prototype=io(Sn.prototype),Mn.prototype.constructor=Mn,Tn.prototype.clear=function(){this.__data__=Gi?Gi(null):{},this.size=0},Tn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], -this.size-=n?1:0,n},Tn.prototype.get=function(n){var t=this.__data__;return Gi?(n=t[n],"__lodash_hash_undefined__"===n?F:n):ci.call(t,n)?t[n]:F},Tn.prototype.has=function(n){var t=this.__data__;return Gi?t[n]!==F:ci.call(t,n)},Tn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Gi&&t===F?"__lodash_hash_undefined__":t,this},Nn.prototype.clear=function(){this.__data__=[],this.size=0},Nn.prototype.delete=function(n){var t=this.__data__;return n=lt(t,n),!(0>n)&&(n==t.length-1?t.pop():wi.call(t,n,1), ---this.size,true)},Nn.prototype.get=function(n){var t=this.__data__;return n=lt(t,n),0>n?F:t[n][1]},Nn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Pn.prototype.clear=function(){this.size=0,this.__data__={hash:new Tn,map:new(Zi||Nn),string:new Tn}},Pn.prototype.delete=function(n){return n=we(this,n).delete(n),this.size-=n?1:0,n},Pn.prototype.get=function(n){return we(this,n).get(n); -},Pn.prototype.has=function(n){return we(this,n).has(n)},Pn.prototype.set=function(n,t){var r=we(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},qn.prototype.add=qn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},qn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.clear=function(){this.__data__=new Nn,this.size=0},Vn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Vn.prototype.get=function(n){ -return this.__data__.get(n)},Vn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Nn){var e=r.__data__;if(!Zi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Pn(e)}return r.set(n,t),this.size=r.size,this};var oo=Zr(Et),fo=Zr(Ot,true),co=qr(),ao=qr(true),lo=Hi?function(n,t){return Hi.set(n,t),n}:Nu,so=Ei?function(n,t){return Ei(n,"toString",{configurable:true,enumerable:false,value:Fu(t),writable:true})}:Nu,ho=Oi||function(n){ -return Zn.clearTimeout(n)},po=Vi&&1/D(new Vi([,-0]))[1]==N?function(n){return new Vi(n)}:qu,_o=Hi?function(n){return Hi.get(n)}:qu,vo=Wi?function(n){return null==n?[]:(n=ni(n),f(Wi(n),function(t){return ji.call(n,t)}))}:Ku,go=Wi?function(n){for(var t=[];n;)s(t,vo(n)),n=bi(n);return t}:Ku,yo=zt;(Pi&&"[object DataView]"!=yo(new Pi(new ArrayBuffer(1)))||Zi&&"[object Map]"!=yo(new Zi)||qi&&"[object Promise]"!=yo(qi.resolve())||Vi&&"[object Set]"!=yo(new Vi)||Ki&&"[object WeakMap]"!=yo(new Ki))&&(yo=function(n){ -var t=zt(n);if(n=(n="[object Object]"==t?n.constructor:F)?Fe(n):"")switch(n){case Yi:return"[object DataView]";case Qi:return"[object Map]";case Xi:return"[object Promise]";case no:return"[object Set]";case to:return"[object WeakMap]"}return t});var bo=oi?gu:Gu,xo=Me(lo),jo=Ii||function(n,t){return Zn.setTimeout(n,t)},wo=Me(so),mo=function(n){n=lu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return en.test(n)&&t.push(""),n.replace(un,function(n,r,e,u){ -t.push(e?u.replace(vn,"$1"):r||n)}),t}),Ao=lr(function(n,t){return _u(n)?jt(n,kt(t,1,_u,true)):[]}),ko=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),je(r,2)):[]}),Eo=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),F,r):[]}),Oo=lr(function(n){var t=l(n,Sr);return t.length&&t[0]===n[0]?Ut(t):[]}),So=lr(function(n){var t=Ge(n),r=l(n,Sr);return t===Ge(r)?t=F:r.pop(),r.length&&r[0]===n[0]?Ut(r,je(t,2)):[]}),Io=lr(function(n){var t=Ge(n),r=l(n,Sr);return(t=typeof t=="function"?t:F)&&r.pop(), -r.length&&r[0]===n[0]?Ut(r,F,t):[]}),Ro=lr(He),zo=ge(function(n,t){var r=null==n?0:n.length,e=vt(n,t);return fr(n,l(t,function(n){return Re(n,r)?+n:n}).sort(Ur)),e}),Wo=lr(function(n){return wr(kt(n,1,_u,true))}),Bo=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),wr(kt(n,1,_u,true),je(t,2))}),Lo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return wr(kt(n,1,_u,true),F,t)}),Uo=lr(function(n,t){return _u(n)?jt(n,t):[]}),Co=lr(function(n){return Er(f(n,_u))}),Do=lr(function(n){var t=Ge(n);return _u(t)&&(t=F), -Er(f(n,_u),je(t,2))}),Mo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return Er(f(n,_u),F,t)}),To=lr(Ye),$o=lr(function(n){var t=n.length,t=1=t}),cf=Mt(function(){return arguments}())?Mt:function(n){return xu(n)&&ci.call(n,"callee")&&!ji.call(n,"callee")},af=Hu.isArray,lf=Hn?S(Hn):Tt,sf=Bi||Gu,hf=Jn?S(Jn):$t,pf=Yn?S(Yn):Nt,_f=Qn?S(Qn):qt,vf=Xn?S(Xn):Vt,gf=nt?S(nt):Kt,df=oe(Jt),yf=oe(function(n,t){return n<=t}),bf=Pr(function(n,t){ -if(Le(t)||pu(t))Tr(t,Lu(t),n);else for(var r in t)ci.call(t,r)&&at(n,r,t[r])}),xf=Pr(function(n,t){Tr(t,Uu(t),n)}),jf=Pr(function(n,t,r,e){Tr(t,Uu(t),n,e)}),wf=Pr(function(n,t,r,e){Tr(t,Lu(t),n,e)}),mf=ge(vt),Af=lr(function(n){return n.push(F,se),r(jf,F,n)}),kf=lr(function(n){return n.push(F,he),r(Rf,F,n)}),Ef=ne(function(n,t,r){n[t]=r},Fu(Nu)),Of=ne(function(n,t,r){ci.call(n,t)?n[t].push(r):n[t]=[r]},je),Sf=lr(Dt),If=Pr(function(n,t,r){nr(n,t,r)}),Rf=Pr(function(n,t,r,e){nr(n,t,r,e)}),zf=ge(function(n,t){ -var r={};if(null==n)return r;var e=false;t=l(t,function(t){return t=Rr(t,n),e||(e=1--n)return t.apply(this,arguments)}},On.ary=iu,On.assign=bf,On.assignIn=xf,On.assignInWith=jf,On.assignWith=wf,On.at=mf,On.before=ou,On.bind=Yo,On.bindAll=Zf,On.bindKey=Qo,On.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return af(n)?n:[n]}, -On.chain=Xe,On.chunk=function(n,t,r){if(t=(r?ze(n,t,r):t===F)?1:Di(Ou(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Hu(Ri(r/t));et?0:t,e)):[]},On.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0,0>t?0:t)):[]},On.dropRightWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true,true):[]},On.dropWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true):[]},On.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&ze(n,t,r)&&(r=0,e=u),u=n.length,r=Ou(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:Ou(e),0>e&&(e+=u),e=r>e?0:Su(e);r>>0,r?(n=zu(n))&&(typeof t=="string"||null!=t&&!_f(t))&&(t=jr(t), -!t&&Bn.test(n))?zr($(n),0,r):n.split(t,r):[]},On.spread=function(n,t){if(typeof n!="function")throw new ei("Expected a function");return t=null==t?0:Di(Ou(t),0),lr(function(e){var u=e[t];return e=zr(e,0,t),u&&s(e,u),r(n,this,e)})},On.tail=function(n){var t=null==n?0:n.length;return t?vr(n,1,t):[]},On.take=function(n,t,r){return n&&n.length?(t=r||t===F?1:Ou(t),vr(n,0,0>t?0:t)):[]},On.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0>t?0:t,e)):[]},On.takeRightWhile=function(n,t){ -return n&&n.length?Ar(n,je(t,3),false,true):[]},On.takeWhile=function(n,t){return n&&n.length?Ar(n,je(t,3)):[]},On.tap=function(n,t){return t(n),n},On.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ei("Expected a function");return bu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),au(n,t,{leading:e,maxWait:t,trailing:u})},On.thru=nu,On.toArray=ku,On.toPairs=Bf,On.toPairsIn=Lf,On.toPath=function(n){return af(n)?l(n,$e):Au(n)?[n]:Mr(mo(zu(n)))},On.toPlainObject=Ru, -On.transform=function(n,t,r){var e=af(n),i=e||sf(n)||gf(n);if(t=je(t,4),null==r){var o=n&&n.constructor;r=i?e?new o:[]:bu(n)&&gu(o)?io(bi(n)):{}}return(i?u:Et)(n,function(n,e,u){return t(r,n,e,u)}),r},On.unary=function(n){return iu(n,1)},On.union=Wo,On.unionBy=Bo,On.unionWith=Lo,On.uniq=function(n){return n&&n.length?wr(n):[]},On.uniqBy=function(n,t){return n&&n.length?wr(n,je(t,2)):[]},On.uniqWith=function(n,t){return t=typeof t=="function"?t:F,n&&n.length?wr(n,F,t):[]},On.unset=function(n,t){return null==n||mr(n,t); -},On.unzip=Ye,On.unzipWith=Qe,On.update=function(n,t,r){return null==n?n:pr(n,t,Ir(r)(It(n,t)),void 0)},On.updateWith=function(n,t,r,e){return e=typeof e=="function"?e:F,null!=n&&(n=pr(n,t,Ir(r)(It(n,t)),e)),n},On.values=Du,On.valuesIn=function(n){return null==n?[]:I(n,Uu(n))},On.without=Uo,On.words=$u,On.wrap=function(n,t){return rf(Ir(t),n)},On.xor=Co,On.xorBy=Do,On.xorWith=Mo,On.zip=To,On.zipObject=function(n,t){return Or(n||[],t||[],at)},On.zipObjectDeep=function(n,t){return Or(n||[],t||[],pr); -},On.zipWith=$o,On.entries=Bf,On.entriesIn=Lf,On.extend=xf,On.extendWith=jf,Zu(On,On),On.add=nc,On.attempt=Pf,On.camelCase=Uf,On.capitalize=Mu,On.ceil=tc,On.clamp=function(n,t,r){return r===F&&(r=t,t=F),r!==F&&(r=Iu(r),r=r===r?r:0),t!==F&&(t=Iu(t),t=t===t?t:0),gt(Iu(n),t,r)},On.clone=function(n){return dt(n,4)},On.cloneDeep=function(n){return dt(n,5)},On.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,5,t)},On.cloneWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,4,t)}, -On.conformsTo=function(n,t){return null==t||bt(n,t,Lu(t))},On.deburr=Tu,On.defaultTo=function(n,t){return null==n||n!==n?t:n},On.divide=rc,On.endsWith=function(n,t,r){n=zu(n),t=jr(t);var e=n.length,e=r=r===F?e:gt(Ou(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},On.eq=hu,On.escape=function(n){return(n=zu(n))&&Y.test(n)?n.replace(H,et):n},On.escapeRegExp=function(n){return(n=zu(n))&&fn.test(n)?n.replace(on,"\\$&"):n},On.every=function(n,t,r){var e=af(n)?o:wt;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3)); -},On.find=Po,On.findIndex=Ze,On.findKey=function(n,t){return v(n,je(t,3),Et)},On.findLast=Zo,On.findLastIndex=qe,On.findLastKey=function(n,t){return v(n,je(t,3),Ot)},On.floor=ec,On.forEach=ru,On.forEachRight=eu,On.forIn=function(n,t){return null==n?n:co(n,je(t,3),Uu)},On.forInRight=function(n,t){return null==n?n:ao(n,je(t,3),Uu)},On.forOwn=function(n,t){return n&&Et(n,je(t,3))},On.forOwnRight=function(n,t){return n&&Ot(n,je(t,3))},On.get=Wu,On.gt=of,On.gte=ff,On.has=function(n,t){return null!=n&&ke(n,t,Bt); -},On.hasIn=Bu,On.head=Ke,On.identity=Nu,On.includes=function(n,t,r,e){return n=pu(n)?n:Du(n),r=r&&!e?Ou(r):0,e=n.length,0>r&&(r=Di(e+r,0)),mu(n)?r<=e&&-1r&&(r=Di(e+r,0)),d(n,t,r)):-1},On.inRange=function(n,t,r){return t=Eu(t),r===F?(r=t,t=0):r=Eu(r),n=Iu(n),n>=Mi(t,r)&&n=n},On.isSet=vf,On.isString=mu,On.isSymbol=Au,On.isTypedArray=gf,On.isUndefined=function(n){return n===F},On.isWeakMap=function(n){return xu(n)&&"[object WeakMap]"==yo(n)},On.isWeakSet=function(n){return xu(n)&&"[object WeakSet]"==zt(n)},On.join=function(n,t){ -return null==n?"":Ui.call(n,t)},On.kebabCase=Cf,On.last=Ge,On.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==F&&(u=Ou(r),u=0>u?Di(e+u,0):Mi(u,e-1)),t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=g(n,b,u,true);return n},On.lowerCase=Df,On.lowerFirst=Mf,On.lt=df,On.lte=yf,On.max=function(n){return n&&n.length?mt(n,Nu,Wt):F},On.maxBy=function(n,t){return n&&n.length?mt(n,je(t,2),Wt):F},On.mean=function(n){return x(n,Nu)},On.meanBy=function(n,t){return x(n,je(t,2))},On.min=function(n){ -return n&&n.length?mt(n,Nu,Jt):F},On.minBy=function(n,t){return n&&n.length?mt(n,je(t,2),Jt):F},On.stubArray=Ku,On.stubFalse=Gu,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return true},On.multiply=uc,On.nth=function(n,t){return n&&n.length?tr(n,Ou(t)):F},On.noConflict=function(){return Zn._===this&&(Zn._=pi),this},On.noop=qu,On.now=Jo,On.pad=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return!t||e>=t?n:(t=(t-e)/2,ee(zi(t),r)+n+ee(Ri(t),r))},On.padEnd=function(n,t,r){ -n=zu(n);var e=(t=Ou(t))?T(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Fi(),Mi(n+r*(t-n+$n("1e-"+((r+"").length-1))),t)):cr(n,t); -},On.reduce=function(n,t,r){var e=af(n)?h:m,u=3>arguments.length;return e(n,je(t,4),r,u,oo)},On.reduceRight=function(n,t,r){var e=af(n)?p:m,u=3>arguments.length;return e(n,je(t,4),r,u,fo)},On.repeat=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),ar(zu(n),t)},On.replace=function(){var n=arguments,t=zu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},On.result=function(n,t,r){t=Rr(t,n);var e=-1,u=t.length;for(u||(u=1,n=F);++en||9007199254740991=i)return n;if(i=r-T(e),1>i)return e; -if(r=o?zr(o,0,i).join(""):n.slice(0,i),u===F)return r+e;if(o&&(i+=r.length-i),_f(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=ti(u.source,zu(dn.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else n.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Mn.prototype[n+"Right"]=function(t){ -return this.reverse()[n](t).reverse()}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Mn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:je(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");Mn.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Mn.prototype[n]=function(){return this.__filtered__?new Mn(this):this[r](1); -}}),Mn.prototype.compact=function(){return this.filter(Nu)},Mn.prototype.find=function(n){return this.filter(n).head()},Mn.prototype.findLast=function(n){return this.reverse().find(n)},Mn.prototype.invokeMap=lr(function(n,t){return typeof n=="function"?new Mn(this):this.map(function(r){return Dt(r,n,t)})}),Mn.prototype.reject=function(n){return this.filter(su(je(n)))},Mn.prototype.slice=function(n,t){n=Ou(n);var r=this;return r.__filtered__&&(0t)?new Mn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)), -t!==F&&(t=Ou(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Mn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Mn.prototype.toArray=function(){return this.take(4294967295)},Et(Mn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=On[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(On.prototype[t]=function(){function t(n){return n=u.apply(On,s([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Mn,a=f[0],l=c||af(o); -l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Mn(this),o=n.apply(o,f),o.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(o,h)):a&&c?n.apply(this,f):(o=this.thru(t),a?e?o.value()[0]:o.value():o)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=ui[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);On.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){ -var u=this.value();return t.apply(af(u)?u:[],n)}return this[r](function(r){return t.apply(af(r)?r:[],n)})}}),Et(Mn.prototype,function(n,t){var r=On[t];if(r){var e=r.name+"";(Ji[e]||(Ji[e]=[])).push({name:t,func:r})}}),Ji[Xr(F,2).name]=[{name:"wrapper",func:F}],Mn.prototype.clone=function(){var n=new Mn(this.__wrapped__);return n.__actions__=Mr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Mr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Mr(this.__views__), -n},Mn.prototype.reverse=function(){if(this.__filtered__){var n=new Mn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Mn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=af(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?F:this.__values__[this.__index__++]}},On.prototype.plant=function(n){for(var t,r=this;r instanceof Sn;){var e=Pe(r);e.__index__=0,e.__values__=F,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},On.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Mn?(this.__actions__.length&&(n=new Mn(this)),n=n.reverse(),n.__actions__.push({func:nu,args:[Je],thisArg:F}),new zn(n,this.__chain__)):this.thru(Je); -},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return kr(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Ai&&(On.prototype[Ai]=tu),On}(); true?(Zn._=it, !(__WEBPACK_AMD_DEFINE_RESULT__ = function(){return it}.call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))):Vn?((Vn.exports=it)._=it,qn._=it):Zn._=it}).call(this); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("./node_modules/webpack/buildin/global.js"), __webpack_require__("./node_modules/webpack/buildin/module.js")(module))) - -/***/ }), - -/***/ "./node_modules/webpack/buildin/global.js": -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), - -/***/ "./node_modules/webpack/buildin/module.js": -/***/ (function(module, exports) { - -module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if(!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - return module; -}; - - -/***/ }), - -/***/ "./src/web/index.js": -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _fp = __webpack_require__("./node_modules/lodash/fp.js"); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/* eslint-disable no-underscore-dangle */ -// Accept the huron.js module for Huron development -if (false) { - module.hot.accept(); -} - -/** Class for inserting HTML snippets at particular insertion points. - * Uses require() to grab html partials, then inserts that html - * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section, - * and [huron-type] corresponding with the required KSS field - */ - -var InsertNodes = function () { - function InsertNodes(modules, store) { - _classCallCheck(this, InsertNodes); - - /** webpack module list in which keys are relative require paths and values are the module contents */ - this._modules = modules; - /** array of module keys */ - this._moduleIds = Object.keys(modules); - /** reference to the huron config */ - this._config = null; - /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */ - this._sections = null; - /** Key/value pairs of partner data and template files */ - this._templates = null; - /** array of prototypes */ - this._prototypes = null; - /** array of valid huron placeholder types */ - this._types = null; - /** array of CSS modules classnames */ - this._classNames = null; - - /** Cache for module metadata */ - this.meta = {}; - - /** Reference to entire memory store */ - this.store = store; - - // Inits - this.cycleModules(); - this.cycleStyleguide(); - } - - /** - * Apply a modifier if one exists - * - * @param {object} data - data with which to render template - * @param {string} modifier - target modifier - * - * @return {string} data - subset of data object for supplied modifier - */ - - - _createClass(InsertNodes, [{ - key: 'cycleModules', - - - /** - * Replace all template markers with the actual template markup. - * - * @param {string} context - The within which to replace markup - * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs - */ - value: function cycleModules() { - var _this = this; - - var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var moduleList = {}; - var elementList = context; - - // We're replacing top-level elements - if (!elementList) { - this.regenCache(); - - // Find all top-level huron placeholders - elementList = [].concat(_toConsumableArray(document.querySelectorAll('[data-huron-id][data-huron-type]'))); - } - - moduleList = this.getModuleListFromTags(elementList); - - // Loop through modules array - Object.keys(moduleList).forEach(function (key) { - var module = _this._modules[key]; - var replaceElements = moduleList[key]; - - _this.loadModule(key, module, replaceElements, true, filter); - }); - } - - /** - * Helper for reloading sections only - */ - - }, { - key: 'cycleSections', - value: function cycleSections() { - this.cycleModules(false, { - property: 'type', - values: ['section'], - include: true - }); - } - - /** - * Reload styleguide sections and menu helpers - */ - - }, { - key: 'cycleStyleguide', - value: function cycleStyleguide() { - var sectionsQuery = document.querySelector('[huron-sections]'); - var menuQuery = document.querySelector('[huron-menu]'); - - // Sections - if (sectionsQuery) { - sectionsQuery.innerHTML = ''; - this.outputSections(null, sectionsQuery); - this.cycleSections(); - } - - // Menu - if (menuQuery) { - menuQuery.innerHTML = ''; - - if (null === document.querySelector('.section-menu__expand')) { - var menuTrigger = document.createElement('button'); - - menuTrigger.classList.add('section-menu__expand'); - menuTrigger.innerHTML = 'Sections Menu'; - document.body.insertBefore(menuQuery.appendChild(menuTrigger), document.body.childNodes[0]); - - // Add menu trigger handler - menuTrigger.addEventListener('click', function () { - document.body.classList.toggle('section-menu-open'); - }); - } - - // Create menu - this.outputMenu(null, menuQuery); - } - } - - /** - * Generate a unique key for targeting markup replacement - * - * @param {string} key - module key (webpack require path) to convert into a replacement key - * @return {string} key - generated replacement key - */ - - }, { - key: 'generateModuleReplaceKey', - value: function generateModuleReplaceKey(key) { - var currentKey = key; - - // If this is section data, use the section template path - if (key.includes('-section.json')) { - currentKey = this._sectionTemplatePath; - // If updated module is a json file, use template key instead - } else if (key.includes('.json')) { - currentKey = this._templates[key]; - } - - return '_' + currentKey.replace(/[/.]/g, '_'); - } - - /** - * Get module metadata from a module require path - * - * @param {string} key - Module require path - * @return {object} containing module id, module type, key and the module contents - */ - - }, { - key: 'getMetaFromPath', - value: function getMetaFromPath(key, module) { - var _this2 = this; - - var sections = this._sections.sectionsByPath; - var templateTypes = this._types.filter(function (type) { - return 'prototype' !== type; - }); - var id = false; - var type = false; - - /* eslint-disable space-unary-ops */ - if (-1 !== key.indexOf('./prototypes')) { - /* eslint-enable space-unary-ops */ - var prototype = Object.keys(this._prototypes).filter(function (name) { - return _this2._prototypes[name] === key; - }); - - if (prototype.length) { - id = prototype[0]; - type = 'prototype'; - } - } else if (key === this._sectionTemplatePath) { - id = 'sections-template'; - type = 'sections-template'; - } else { - var testTypes = []; - var testSections = Object.keys(sections).filter(function (section) { - var tempTypes = templateTypes.filter(function (currentType) { - return sections[section][currentType + 'Path'] === key; - }); - - if (tempTypes.length) { - testTypes = tempTypes; - return true; - } - - return false; - }); - - if (testSections && testSections.length && testTypes && testTypes.length) { - id = sections[testSections[0]].referenceURI; - type = testTypes[0]; - } - } - - if (id && type) { - var renderData = this.getModuleRender(type, key, module); - var replaceKey = this.generateModuleReplaceKey(key); - - if (renderData) { - return Object.assign({ id: id, type: type, key: key, replaceKey: replaceKey, module: module }, renderData); - } - } - - console.warn( // eslint-disable-line no-console - 'Module \'' + key + '\' does not exist on the page\n or is no longer in use'); - return false; - } - - /** - * Check if a tag is a huron placeholder and, if so, - * return its associated module key - * - * @param {object} tag - tag to check - * @return {bool} associated module key - */ - - }, { - key: 'getModuleKeyFromTag', - value: function getModuleKeyFromTag(tag) { - // Safari/webkit has some trouble parsing dataset in certain cases. - // This is a fallback method of accessing the same data. - var type = InsertNodes.getDataAttribute(tag, 'huron-type'); - var id = InsertNodes.getDataAttribute(tag, 'huron-id'); - var section = this._sections.sectionsByURI[id]; - - if (id && type) { - if (section) { - return section[type + 'Path']; - } else if ('prototype' === type) { - return this._prototypes[id]; - } - } - - return false; - } - - /** - * Check if an array of elements contains a Huron placeholder - * - * @param {array} tags - array of DOM nodes - * @param {bool} recurse - should we recurse this function with a new array - * @return {object} moduleList - Huron placeholder DOM node - */ - - }, { - key: 'getModuleListFromTags', - value: function getModuleListFromTags(elements) { - var _this3 = this; - - var recurse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - var moduleList = {}; - var newList = {}; - - if (elements && elements.length) { - elements.forEach(function (element) { - var moduleKey = _this3.getModuleKeyFromTag(element); - - if (moduleKey) { - if (!moduleList[moduleKey]) { - moduleList[moduleKey] = []; - } - moduleList[moduleKey].push(element); - } else if (recurse) { - newList = _this3.getModuleListFromTags([].concat(_toConsumableArray(element.querySelectorAll('[data-huron-id][data-huron-type]'))), false); - - Object.keys(newList).forEach(function (key) { - moduleList[key] = moduleList[key] ? moduleList[key].concat(newList[key]) : newList[key]; - }); - } - }); - } - - return moduleList; - } - - /** - * Transform every module into a predictable object - * - * @param {object} type - Module metadata - * @param {mixed} module - Module contents - * @return {object} containing render function, render data and module id - */ - - }, { - key: 'getModuleRender', - value: function getModuleRender(type, key, module) { - var render = false; - var data = false; - - if ('template' === type && 'function' === typeof module) { - // It's a render function for a template - render = module; - data = this._modules[this._templates[key]]; - } else if ('sections-template' === type && 'function' === typeof module) { - // It's a kss section template - render = module; - } else if ('section' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { - // It's section data - render = this._modules[this._sectionTemplatePath]; - data = module; - } else if (('template' === type || 'description' === type || 'prototype' === type) && 'string' === typeof module) { - // it's straight HTML - render = function render() { - return module; - }; - } else if ('data' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { - // It's a data file (.json) - render = this._modules[this._templates[key]]; - data = module; - } - - // Only need render, as data will be left empty for static HTML - if (render) { - return { render: render, data: data }; - } - - return false; - } - - /** - * Replace all sections. For hot reloading use when the section template has changed. - * - * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace - * @param {string} key - Module require path - * @param {mixed} module - Module contents - * @param {bool} cached - Whether or not to use cached values for module replacement - * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs - */ - - }, { - key: 'loadModule', - value: function loadModule(key, module, replaceElements) { - var cached = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var filter = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - var shouldLoad = true; - var moduleMeta = false; - - // Check if we should load from internal module metadata cache - if (cached) { - moduleMeta = this.meta[key]; - } else { - moduleMeta = this.meta[key] = this.getMetaFromPath(key, module); - } - - if (moduleMeta) { - if (filter) { - shouldLoad = InsertNodes.filterModules(filter, moduleMeta); - } - - if (shouldLoad) { - this.replaceTemplate(moduleMeta, replaceElements); - } - } - } - - /* - * Helper function for inserting styleguide sections. - * - * Recurses over sorted styleguide sections and inserts a
    to be used as a menu for each section - */ - - }, { - key: 'outputMenu', - value: function outputMenu(parent, el) { - var _this4 = this; - - var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; - - var templateId = null; - var newEl = el; - - Object.keys(sections).forEach(function (section) { - var hasSubmenu = Object.keys(sections[section]).length; - var menuTarget = void 0; - var nextMenu = void 0; - - if (parent) { - templateId = parent + '-' + section; - } else { - templateId = section; - } - - if (newEl) { - var title = _this4._sections.sectionsByURI[templateId] ? _this4._sections.sectionsByURI[templateId].header : templateId; - var sectionMenu = document.createElement('ul'); - var menuItem = document.createElement('li'); - var link = '' + title + ''; - - sectionMenu.classList.add('section-menu'); - menuItem.classList.add('section-menu__item'); - menuItem.innerHTML = link; - - // Check if this is a UL and, if not, create one - if ('UL' !== newEl.tagName) { - menuTarget = sectionMenu.cloneNode(); - newEl.appendChild(menuTarget); - newEl = menuTarget; - } - - // Has subsections - if (hasSubmenu) { - nextMenu = sectionMenu.cloneNode(); - nextMenu.classList.add('section-menu--submenu'); - menuItem.classList.add('section-menu__item--has-submenu'); - menuItem.appendChild(nextMenu); - } - - newEl.appendChild(menuItem); - - if (hasSubmenu) { - _this4.outputMenu(templateId, nextMenu, sections[section]); - } - } - }); - } - - /** - * Helper function for inserting styleguide sections. - * - * Recurses over sorted styleguide sections and inserts a
    tag with [huron-id] equal to the section template name. - */ - - }, { - key: 'outputSections', - value: function outputSections(parent, el) { - var _this5 = this; - - var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; - - var templateId = null; - var placeholder = null; - - Object.keys(sections).forEach(function (section) { - var istopLevel = false; - var topLevelWrapper = null; - var topLevelSection = null; - var insertionEl = el; - - // Generate section ID and check if it is top-level - if (parent) { - templateId = parent + '-' + section; - } else { - templateId = section; - istopLevel = true; - } - - if (el) { - // Generate huron placeholder for this section - placeholder = document.createElement('div'); - placeholder.dataset.huronId = templateId; - placeholder.dataset.huronType = 'section'; - - if (istopLevel) { - // Generate wrapper to contain top-level section and all subsections underneath it - topLevelWrapper = document.createElement('div'); - topLevelWrapper.classList.add('section--top-level__wrapper'); - - // Generate wrapper for top-level section - topLevelSection = document.createElement('div'); - topLevelSection.classList.add('section', 'section--top-level'); - - // Append wrappers to huron-sections element - topLevelSection.appendChild(placeholder); - topLevelWrapper.appendChild(topLevelSection); - el.appendChild(topLevelWrapper); - insertionEl = topLevelWrapper; - } else { - // If this is not top-level, append placeholder - el.appendChild(placeholder); - } - } - - // Recursively call this function to insert other sections - if (Object.keys(sections[section]).length && placeholder) { - _this5.outputSections(templateId, insertionEl, sections[section]); - } - }); - } - - /** - * Apply a modifier and merge classnames into template data, if it exists - * - * @param {object} data - data with which to render template - * @param {string} modifier - target modifier - * - * @return {string} rendered - the modified HTML module - */ - - }, { - key: 'provideClassnames', - value: function provideClassnames(data) { - if (this._classNames) { - return Object.assign({}, data, { classNames: this._classNames }); - } - - return data; - } - - /** - * Regenerate module meta cache - */ - - }, { - key: 'regenCache', - value: function regenCache() { - var _this6 = this; - - Object.keys(this._modules).forEach(function (moduleKey) { - _this6.meta[moduleKey] = _this6.getMetaFromPath(moduleKey, _this6._modules[moduleKey]); - }); - } - - /** - * Recursively remove old tags - * - * @param {string} replaceKey - key of module for which we need to remove old tags - * @param {object} tag - tag to start our search with - * (usually the tag immediately preceding the current placeholder) - */ - - }, { - key: 'removeOldTags', - value: function removeOldTags(replaceKey, tag) { - if (tag) { - var parentModule = InsertNodes.getDataAttribute(tag, 'parent-module'); - var selfModule = InsertNodes.getDataAttribute(tag, 'self-module'); - - if (parentModule === replaceKey && selfModule !== replaceKey) { - // This is a child of the current module, - // so remove it and its children (if applicable) - var childrenModule = selfModule; - var nextTag = tag.previousSibling; - - if (childrenModule) { - this.removeOldTags(childrenModule, nextTag); - // Reset nextTag if we removed a child - nextTag = tag.previousSibling; - } - - tag.parentNode.removeChild(tag); - this.removeOldTags(replaceKey, nextTag); - } - } - } - - /** - * Replace a single template marker with template content. - * - * @param {object} replaceElements - Array of elements to check for Huron placeholders - * @param {object} meta - Module metadata - */ - - }, { - key: 'replaceTemplate', - value: function replaceTemplate(meta, replaceElements) { - var _this7 = this; - - var type = this.validateType(meta.type); - var tags = []; - var replace = replaceElements; - var hasStyleguideHelpers = false; - - if (!replace) { - replace = document.querySelectorAll('[data-huron-id][data-huron-type]'); - } - - if (type) { - replace.forEach(function (tag) { - var tagType = InsertNodes.getDataAttribute(tag, 'huron-type'); - var tagId = InsertNodes.getDataAttribute(tag, 'huron-id'); - - if (tagId === meta.id && tagType === type) { - tags.push(tag); - } - }); - - if (tags && tags.length && meta.render) { - tags.forEach(function (currentTag) { - var modifiedPlaceholder = currentTag; - var modifier = InsertNodes.getDataAttribute(modifiedPlaceholder, 'huron-modifier'); - var parent = modifiedPlaceholder.parentNode; - var data = (0, _fp.compose)(_this7.provideClassnames.bind(_this7), InsertNodes.applyModifier)(meta.data, modifier); - var rendered = meta.render(data); - var renderedTemplate = InsertNodes.convertToElement(rendered).querySelector('template'); - var renderedContents = null; - - // Remove existing module tags - _this7.removeOldTags(meta.replaceKey, modifiedPlaceholder.previousSibling); - - // Get the contents of the rendered template - renderedContents = [].concat(_toConsumableArray(renderedTemplate.content.children)); - - // Insert each tag of the template contents before placeholder - renderedContents.forEach(function (element) { - var newEl = element; - - if (1 === newEl.nodeType) { - newEl.dataset.parentModule = meta.replaceKey; - hasStyleguideHelpers = !hasStyleguideHelpers ? InsertNodes.isSectionHelper(newEl, meta) : hasStyleguideHelpers; - - parent.insertBefore(newEl, modifiedPlaceholder); - } - }); - - // Add module replacement key to this placeholder - modifiedPlaceholder.dataset.selfModule = meta.replaceKey; - - // Hide the placeholder - modifiedPlaceholder.style.display = 'none'; - - // Recursively load modules, excluding the current one - _this7.cycleModules(renderedContents, { - property: 'key', - values: [meta.key, _this7._sectionTemplatePath], - include: false - }); - - if (hasStyleguideHelpers) { - _this7.cycleStyleguide(); - } - }); - } - } else { - console.warn( // eslint-disable-line no-console - 'Could not render module\n section: ' + meta.id + '\n type: ' + meta.type); - } - } - - /** - * Verify specified element is using an acceptable huron type - * - * @param {string} type - type of partial (template, data, description, section or prototype ) - * @return {string} type - huron type or 'template' if invalid - */ - - }, { - key: 'validateType', - value: function validateType(type) { - if ('data' === type) { - return 'template'; - } - - if (!this._types.includes(type)) { - return false; - } - - return type; - } - - /* - * Set new modules object - */ - - }, { - key: 'modules', - set: function set(modules) { - this._modules = modules; - this._moduleIds = Object.keys(modules); - } - - /* - * Set store - */ - - }, { - key: 'store', - set: function set(store) { - this._store = store; - this._config = store.config; - this._sections = store.sections; - this._templates = store.templates; - this._prototypes = store.prototypes; - this._types = store.types; - this._sectionTemplatePath = store.sectionTemplatePath; - - // Completely rerender prototype if any CSS modules classnames change - if (!(0, _fp.isEqual)(this._classNames, store.classNames)) { - var isInitialRender = !this._classNames; - this._classNames = store.classNames; - - // Only rerender after initial render (when classnames is not falsy) - if (!isInitialRender) { - this.cycleModules(); - } - } - } - }], [{ - key: 'applyModifier', - value: function applyModifier(data, modifier) { - // If we have a modifier, use it, otherwise use the entire data set - if (modifier && data && data[modifier]) { - return Object.assign({}, data[modifier], { modifier: modifier }); - } - - return data; - } - - /** - * Get markup from any type of module (html, json or template) - * - * @param {string} content - String corresponding to markup - * @return {object} el.firstElementChild - HTML module - */ - - }, { - key: 'convertToElement', - value: function convertToElement(content) { - var el = document.createElement('div'); - - el.innerHTML = content; - return el.firstElementChild; - } - - /** - * Filter module object by module key or module type - * - * @param {object} filter - Filter for modules. Options: - * @param {string} filter.property - Which property to filter ('key' or 'type') - * @param {array} filter.values - Values for property - * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude) - * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs - * @return {bool} match - determine if modules need to be filtered - */ - - }, { - key: 'filterModules', - value: function filterModules(filter, moduleMeta) { - var match = true; - - // Check if we should filter out any modules - if ('object' === (typeof filter === 'undefined' ? 'undefined' : _typeof(filter)) && {}.hasOwnProperty.call(filter, 'property') && {}.hasOwnProperty.call(filter, 'values') && {}.hasOwnProperty.call(filter, 'include')) { - match = filter.values.filter(function (value) { - return moduleMeta[filter.property] === value; - }); - return Boolean(match.length) === filter.include; - } - - console.log(' // eslint-disable-line no-console\n filter ' + filter + ' is not in a valid format.\n module filters must include \'property\', \'values\', and \'include\' properties\n '); - - return match; - } - - /** - * Retrieve a data attribute from a tag using one of two methods - * - * @param {HTMLElement} tag - DOM node on which to check for a data attribute - * @param {string} attr - attribute to check for - * @returns {string} data - contents of data attribute - */ - - }, { - key: 'getDataAttribute', - value: function getDataAttribute(tag, attr) { - var data = false; - - // Check if element has dataset and, if so, use it - if (tag.dataset) { - data = tag.dataset[attr]; - } - - // Fallback to getAttribute for ugly old Safari - if (!data && tag.getAttribute) { - data = tag.getAttribute('data-' + attr); - } - - return data; - } - - /** - * Check if this tag is a styleguide helper - * - * @param {object} tag - tag to check - * @param {object} meta - module metadata - * @return {bool} - */ - - }, { - key: 'isSectionHelper', - value: function isSectionHelper(tag, meta) { - if ('prototype' === meta.type) { - return tag.hasAttribute('huron-sections') || tag.hasAttribute('huron-menu'); - } - - return false; - } - }]); - - return InsertNodes; -}(); - -exports.default = InsertNodes; - -/***/ }), - -/***/ 0: -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__("./src/web/index.js"); - - -/***/ }) - -/******/ }); + */(function(){function i(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function o(t,n,e,r){for(var u=-1,i=null==t?0:t.length;++u"']/g,G=RegExp(V.source),J=RegExp(H.source),Y=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,X=/<%=([\s\S]+?)%>/g,tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nt=/^\w*$/,et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rt=/[\\^$.*+?()[\]{}|]/g,ut=RegExp(rt.source),it=/^\s+|\s+$/g,ot=/^\s+/,at=/\s+$/,ct=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ft=/\{\n\/\* \[wrapped with (.+)\] \*/,lt=/,? & /,st=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,pt=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dt=/\w*$/,gt=/^[-+]0x[0-9a-f]+$/i,yt=/^0b[01]+$/i,_t=/^\[object .+?Constructor\]$/,vt=/^0o[0-7]+$/i,bt=/^(?:0|[1-9]\d*)$/,mt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xt=/($^)/,jt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",wt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,kt=RegExp("['’]","g"),Ot=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),It=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+At,"g"),Et=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",wt].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,St="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Mt={};Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=!0,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=!1;var Bt={};Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object DataView]"]=Bt["[object Boolean]"]=Bt["[object Date]"]=Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object Symbol]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object WeakMap]"]=!1;var Lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ct=parseFloat,Tt=parseInt,zt="object"==typeof t&&t&&t.Object===Object&&t,Ft="object"==typeof self&&self&&self.Object===Object&&self,Dt=zt||Ft||Function("return this")(),Pt="object"==typeof n&&n&&!n.nodeType&&n,Ut=Pt&&"object"==typeof r&&r&&!r.nodeType&&r,Nt=Ut&&Ut.exports===Pt,qt=Nt&&zt.process,$t=function(){try{var t=Ut&&Ut.f&&Ut.f("util").types;return t||qt&&qt.binding&&qt.binding("util")}catch(t){}}(),Kt=$t&&$t.isArrayBuffer,Zt=$t&&$t.isDate,Vt=$t&&$t.isMap,Ht=$t&&$t.isRegExp,Gt=$t&&$t.isSet,Jt=$t&&$t.isTypedArray,Yt=A("length"),Qt=w({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Xt=w({"&":"&","<":"<",">":">",'"':""","'":"'"}),tn=w({"&":"&","<":"<",">":">",""":'"',"'":"'"}),nn=function t(n){function e(t){if(Nr(t)&&!Ro(t)&&!(t instanceof w)){if(t instanceof u)return t;if(Ru.call(t,"__wrapped__"))return dr(t)}return new u(t)}function r(){}function u(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=P}function w(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function At(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function an(t,n,e,r,u,i){var o,c=1&n,f=2&n,l=4&n;if(e&&(o=u?e(t,r,u,i):e(t)),o!==P)return o;if(!Ur(t))return t;if(r=Ro(t)){if(o=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&Ru.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!c)return ge(t,o)}else{var s=Di(t),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(Mo(t))return fe(t,c);if("[object Object]"==s||"[object Arguments]"==s||p&&!u){if(o=f||p?{}:Xe(t),!c)return f?function(t,n){return ye(t,Fi(t),n)}(t,function(t,n){return t&&ye(n,ru(n),t)}(o,t)):function(t,n){return ye(t,zi(t),n)}(t,en(o,t))}else{if(!Bt[s])return u?t:{};o=function(t,n,e){var r=t.constructor;switch(n){case"[object ArrayBuffer]":return le(t);case"[object Boolean]":case"[object Date]":return new r(+t);case"[object DataView]":return n=e?le(t.buffer):t.buffer,new t.constructor(n,t.byteOffset,t.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return se(t,e);case"[object Map]":return new r;case"[object Number]":case"[object String]":return new r(t);case"[object RegExp]":return(n=new t.constructor(t.source,dt.exec(t))).lastIndex=t.lastIndex,n;case"[object Set]":return new r;case"[object Symbol]":return ki?ju(ki.call(t)):{}}}(t,s,c)}}if(i||(i=new zt),u=i.get(t))return u;if(i.set(t,o),To(t))return t.forEach(function(r){o.add(an(r,n,e,r,t,i))}),o;if(Lo(t))return t.forEach(function(r,u){o.set(u,an(r,n,e,u,t,i))}),o;f=l?f?Ke:$e:f?ru:eu;var h=r?P:f(t);return a(h||t,function(r,u){h&&(r=t[u=r]),qt(o,u,an(r,n,e,u,t,i))}),o}function cn(t,n,e){var r=e.length;if(null==t)return!r;for(t=ju(t);r--;){var u=e[r],i=n[u],o=t[u];if(o===P&&!(u in t)||!i(o))return!1}return!0}function fn(t,n,e){if("function"!=typeof t)throw new ku("Expected a function");return Ni(function(){t.apply(P,e)},n)}function ln(t,n,e,r){var u=-1,i=l,o=!0,a=t.length,c=[],f=n.length;if(!a)return c;e&&(n=p(n,E(e))),r?(i=s,o=!1):200<=n.length&&(i=R,o=!1,n=new Lt(n));t:for(;++un}function jn(t,n){return null!=t&&Ru.call(t,n)}function An(t,n){return null!=t&&n in ju(t)}function wn(t,n,e){for(var r=e?s:l,u=t[0].length,i=t.length,o=i,a=_u(i),c=1/0,f=[];o--;){var h=t[o];o&&n&&(h=p(h,E(n))),c=oi(h.length,c),a[o]=!e&&(n||120<=u&&120<=h.length)?new Lt(o&&h):P}h=t[0];var d=-1,g=a[0];t:for(;++d(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))?t:t[sr(br(n))])?P:i(n,t,e)}function On(t){return Nr(t)&&"[object Arguments]"==mn(t)}function In(t,n,e,r,u){if(t===n)n=!0;else if(null==t||null==n||!Nr(t)&&!Nr(n))n=t!=t&&n!=n;else t:{var i=Ro(t),o=Ro(n),a=i?"[object Array]":Di(t),c=o?"[object Array]":Di(n),f="[object Object]"==(a="[object Arguments]"==a?"[object Object]":a);o="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c);if((c=a==c)&&Mo(t)){if(!Mo(n)){n=!1;break t}i=!0,f=!1}if(c&&!f)u||(u=new zt),n=i||zo(t)?Ne(t,n,e,r,In,u):function(t,n,e,r,u,i,o){switch(e){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!i(new Du(t),new Du(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Lr(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var a=L;case"[object Set]":if(a||(a=z),t.size!=n.size&&!(1&r))break;return(e=o.get(t))?e==n:(r|=2,o.set(t,n),n=Ne(a(t),a(n),r,u,i,o),o.delete(t),n);case"[object Symbol]":if(ki)return ki.call(t)==ki.call(n)}return!1}(t,n,a,e,r,In,u);else{if(!(1&e)&&(i=f&&Ru.call(t,"__wrapped__"),a=o&&Ru.call(n,"__wrapped__"),i||a)){t=i?t.value():t,n=a?n.value():n,u||(u=new zt),n=In(t,n,e,r,u);break t}if(c)n:if(u||(u=new zt),i=1&e,a=$e(t),o=a.length,c=$e(n).length,o==c||i){for(f=o;f--;){var l=a[f];if(!(i?l in n:Ru.call(n,l))){n=!1;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{c=!0,u.set(t,n),u.set(n,t);for(var s=i;++fn?e:0,e)?t[n]:P}function Fn(t,n,e){var r=-1;return n=p(n.length?n:[lu],E(He())),function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].c;return t}(t=Bn(t,function(t){return{a:p(n,function(n){return n(t)}),b:++r,c:t}}),function(t,n){var r;t:{r=-1;for(var u=t.a,i=n.a,o=u.length,a=e.length;++r=a?c:c*("desc"==e[r]?-1:1);break t}}r=t.b-n.b}return r})}function Dn(t,n,e){for(var r=-1,u=n.length,i={};++rn||9007199254740991n&&(n=-n>u?0:u+n),0>(e=e>u?u:e)&&(e+=u),u=n>e?0:e-n>>>0,n>>>=0,e=_u(u);++r=u){for(;r>>1,o=t[i];null!==o&&!Zr(o)&&(e?o<=n:o(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))||delete t[sr(br(n))]}function ne(t,n,e,r){for(var u=t.length,i=r?u:-1;(r?i--:++ir)return r?Xn(t[0]):[];for(var u=-1,i=_u(r);++u=r?t:Zn(t,n,e)}function fe(t,n){if(n)return t.slice();var e=t.length;e=Pu?Pu(e):new t.constructor(e);return t.copy(e),e}function le(t){var n=new t.constructor(t.byteLength);return new Du(n).set(new Du(t)),n}function se(t,n){return new t.constructor(n?le(t.buffer):t.buffer,t.byteOffset,t.length)}function pe(t,n){if(t!==n){var e=t!==P,r=null===t,u=t==t,i=Zr(t),o=n!==P,a=null===n,c=n==n,f=Zr(n);if(!a&&!f&&!i&&t>n||i&&o&&c&&!a&&!f||r&&o&&c||!e&&c||!u)return 1;if(!r&&!i&&!f&&tu?P:i,u=1),n=ju(n);++ro&&a[0]!==f&&a[o-1]!==f?[]:T(a,f)).length)e?e?qn(n,t):n:(e=qn(n,Qu(t/F(n))),Wt.test(n)?ce(D(e),0,t).join(""):e.slice(0,t))}function Me(t,n,e,r){var u=1&n,o=Ae(t);return function n(){for(var a=-1,c=arguments.length,f=-1,l=r.length,s=_u(l+c),p=this&&this!==Dt&&this instanceof n?o:t;++fn||r)&&(1&t&&(i[2]=p[2],n|=1&e?0:4),(e=p[3])&&(r=i[3],i[3]=r?he(r,e,p[4]):e,i[4]=r?T(i[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=i[5],i[5]=r?de(r,e,p[6]):e,i[6]=r?T(i[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(i[7]=e),128&t&&(i[8]=null==i[8]?p[8]:oi(i[8],p[8])),null==i[9]&&(i[9]=p[9]),i[0]=p[0],i[1]=n),t=i[0],n=i[1],e=i[2],r=i[3],u=i[4],!(a=i[9]=i[9]===P?c?0:t.length:ii(i[9]-f,0))&&24&n&&(n&=-25),cr((p?Mi:Ui)(n&&1!=n?8==n||16==n?we(t,n,a):32!=n&&33!=n||u.length?Ie.apply(P,i):Me(t,n,e,r):function(t,n,e){var r=1&n,u=Ae(t);return function n(){return(this&&this!==Dt&&this instanceof n?u:t).apply(r?e:this,arguments)}}(t,n,e),i),t,n)}function De(t,n,e,r){return t===P||Lr(t,Iu[e])&&!Ru.call(r,e)?n:t}function Pe(t,n,e,r,u,i){return Ur(t)&&Ur(n)&&(i.set(n,t),Tn(t,n,P,Pe,i),i.delete(n)),t}function Ue(t){return $r(t)?P:t}function Ne(t,n,e,r,u,i){var o=1&e,a=t.length;if(a!=(c=n.length)&&!(o&&c>a))return!1;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,f=!0,l=2&e?new Lt:P;for(i.set(t,n),i.set(n,t);++c(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),v(t,He(n,3),e)):-1}function yr(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r-1;return e!==P&&(u=Gr(e),u=0>e?ii(r+u,0):oi(u,r-1)),v(t,He(n,3),u,!0)}function _r(t){return null!=t&&t.length?dn(t,1):[]}function vr(t){return t&&t.length?t[0]:P}function br(t){var n=null==t?0:t.length;return n?t[n-1]:P}function mr(t,n){return t&&t.length&&n&&n.length?Pn(t,n):t}function xr(t){return null==t?t:li.call(t)}function jr(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(Tr(t))return n=ii(t.length,n),!0}),I(n,function(n){return p(t,A(n))})}function Ar(t,n){if(!t||!t.length)return[];var e=jr(t);return null==n?e:p(e,function(t){return i(n,P,t)})}function wr(t){return(t=e(t)).__chain__=!0,t}function kr(t,n){return n(t)}function Or(t,n){return(Ro(t)?a:Ei)(t,He(n,3))}function Ir(t,n){return(Ro(t)?function(t,n){for(var e=null==t?0:t.length;e--&&!1!==n(t[e],e,t););return t}:Wi)(t,He(n,3))}function Er(t,n){return(Ro(t)?p:Bn)(t,He(n,3))}function Wr(t,n,e){return n=e?P:n,n=t&&null==n?t.length:n,Fe(t,128,P,P,P,P,n)}function Rr(t,n){var e;if("function"!=typeof n)throw new ku("Expected a function");return t=Gr(t),function(){return 0<--t&&(e=n.apply(this,arguments)),1>=t&&(n=P),e}}function Sr(t,n,e){function r(n){var e=c,r=f;return c=f=P,d=n,s=t.apply(r,e)}function u(t){var e=t-h;return t-=d,h===P||e>=n||0>e||y&&t>=l}function i(){var t=vo();if(u(t))return o(t);var e,r=Ni;e=t-d,t=n-(t-h),e=y?oi(t,l-e):t,p=r(i,e)}function o(t){return p=P,_&&c?r(t):(c=f=P,s)}function a(){var t=vo(),e=u(t);if(c=arguments,f=this,h=t,e){if(p===P)return d=t=h,p=Ni(i,n),g?r(t):s;if(y)return p=Ni(i,n),r(h)}return p===P&&(p=Ni(i,n)),s}var c,f,l,s,p,h,d=0,g=!1,y=!1,_=!0;if("function"!=typeof t)throw new ku("Expected a function");return n=Yr(n)||0,Ur(e)&&(g=!!e.leading,l=(y="maxWait"in e)?ii(Yr(e.maxWait)||0,n):l,_="trailing"in e?!!e.trailing:_),a.cancel=function(){p!==P&&Li(p),d=0,c=h=f=p=P},a.flush=function(){return p===P?s:o(vo())},a}function Mr(t,n){function e(){var r=arguments,u=n?n.apply(this,r):r[0],i=e.cache;return i.has(u)?i.get(u):(r=t.apply(this,r),e.cache=i.set(u,r)||i,r)}if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new ku("Expected a function");return e.cache=new(Mr.Cache||It),e}function Br(t){if("function"!=typeof t)throw new ku("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Lr(t,n){return t===n||t!=t&&n!=n}function Cr(t){return null!=t&&Pr(t.length)&&!Fr(t)}function Tr(t){return Nr(t)&&Cr(t)}function zr(t){if(!Nr(t))return!1;var n=mn(t);return"[object Error]"==n||"[object DOMException]"==n||"string"==typeof t.message&&"string"==typeof t.name&&!$r(t)}function Fr(t){return!!Ur(t)&&("[object Function]"==(t=mn(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function Dr(t){return"number"==typeof t&&t==Gr(t)}function Pr(t){return"number"==typeof t&&-1=t}function Ur(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}function Nr(t){return null!=t&&"object"==typeof t}function qr(t){return"number"==typeof t||Nr(t)&&"[object Number]"==mn(t)}function $r(t){return!(!Nr(t)||"[object Object]"!=mn(t))&&(null===(t=Uu(t))||"function"==typeof(t=Ru.call(t,"constructor")&&t.constructor)&&t instanceof t&&Wu.call(t)==Lu)}function Kr(t){return"string"==typeof t||!Ro(t)&&Nr(t)&&"[object String]"==mn(t)}function Zr(t){return"symbol"==typeof t||Nr(t)&&"[object Symbol]"==mn(t)}function Vr(t){if(!t)return[];if(Cr(t))return Kr(t)?D(t):ge(t);if(Zu&&t[Zu]){t=t[Zu]();for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}return("[object Map]"==(n=Di(t))?L:"[object Set]"==n?z:iu)(t)}function Hr(t){return t?(t=Yr(t))===U||t===-U?1.7976931348623157e308*(0>t?-1:1):t==t?t:0:0===t?t:0}function Gr(t){var n=(t=Hr(t))%1;return t==t?n?t-n:t:0}function Jr(t){return t?on(Gr(t),0,4294967295):0}function Yr(t){if("number"==typeof t)return t;if(Zr(t))return N;if(Ur(t)&&(t=Ur(t="function"==typeof t.valueOf?t.valueOf():t)?t+"":t),"string"!=typeof t)return 0===t?t:+t;t=t.replace(it,"");var n=yt.test(t);return n||vt.test(t)?Tt(t.slice(2),n?2:8):gt.test(t)?N:+t}function Qr(t){return ye(t,ru(t))}function Xr(t){return null==t?"":Qn(t)}function tu(t,n,e){return(t=null==t?P:vn(t,n))===P?e:t}function nu(t,n){return null!=t&&Qe(t,n,An)}function eu(t){return Cr(t)?Ft(t):Sn(t)}function ru(t){if(Cr(t))t=Ft(t,!0);else if(Ur(t)){var n,e=ir(t),r=[];for(n in t)("constructor"!=n||!e&&Ru.call(t,n))&&r.push(n);t=r}else{if(n=[],null!=t)for(e in ju(t))n.push(e);t=n}return t}function uu(t,n){if(null==t)return{};var e=p(Ke(t),function(t){return[t]});return n=He(n),Dn(t,e,function(t,e){return n(t,e[0])})}function iu(t){return null==t?[]:W(t,eu(t))}function ou(t){return fa(Xr(t).toLowerCase())}function au(t){return(t=Xr(t))&&t.replace(mt,Qt).replace(Ot,"")}function cu(t,n,e){return t=Xr(t),(n=e?P:n)===P?Rt.test(t)?t.match(Et)||[]:t.match(st)||[]:t.match(n)||[]}function fu(t){return function(){return t}}function lu(t){return t}function su(t){return Rn("function"==typeof t?t:an(t,1))}function pu(t,n,e){var r=eu(n),u=_n(n,r);null!=e||Ur(n)&&(u.length||!r.length)||(e=n,n=t,t=this,u=_n(n,eu(n)));var i=!(Ur(e)&&"chain"in e&&!e.chain),o=Fr(t);return a(u,function(e){var r=n[e];t[e]=r,o&&(t.prototype[e]=function(){var n=this.__chain__;if(i||n){var e=t(this.__wrapped__);return(e.__actions__=ge(this.__actions__)).push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,h([this.value()],arguments))})}),t}function hu(){}function du(t){return rr(t)?A(sr(t)):function(t){return function(n){return vn(n,t)}}(t)}function gu(){return[]}function yu(){return!1}var _u=(n=null==n?Dt:nn.defaults(Dt.Object(),n,nn.pick(Dt,St))).Array,vu=n.Date,bu=n.Error,mu=n.Function,xu=n.Math,ju=n.Object,Au=n.RegExp,wu=n.String,ku=n.TypeError,Ou=_u.prototype,Iu=ju.prototype,Eu=n["__core-js_shared__"],Wu=mu.prototype.toString,Ru=Iu.hasOwnProperty,Su=0,Mu=function(){var t=/[^.]+$/.exec(Eu&&Eu.keys&&Eu.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Bu=Iu.toString,Lu=Wu.call(ju),Cu=Dt._,Tu=Au("^"+Wu.call(Ru).replace(rt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zu=Nt?n.Buffer:P,Fu=n.Symbol,Du=n.Uint8Array,Pu=zu?zu.g:P,Uu=C(ju.getPrototypeOf,ju),Nu=ju.create,qu=Iu.propertyIsEnumerable,$u=Ou.splice,Ku=Fu?Fu.isConcatSpreadable:P,Zu=Fu?Fu.iterator:P,Vu=Fu?Fu.toStringTag:P,Hu=function(){try{var t=Ye(ju,"defineProperty");return t({},"",{}),t}catch(t){}}(),Gu=n.clearTimeout!==Dt.clearTimeout&&n.clearTimeout,Ju=vu&&vu.now!==Dt.Date.now&&vu.now,Yu=n.setTimeout!==Dt.setTimeout&&n.setTimeout,Qu=xu.ceil,Xu=xu.floor,ti=ju.getOwnPropertySymbols,ni=zu?zu.isBuffer:P,ei=n.isFinite,ri=Ou.join,ui=C(ju.keys,ju),ii=xu.max,oi=xu.min,ai=vu.now,ci=n.parseInt,fi=xu.random,li=Ou.reverse,si=Ye(n,"DataView"),pi=Ye(n,"Map"),hi=Ye(n,"Promise"),di=Ye(n,"Set"),gi=Ye(n,"WeakMap"),yi=Ye(ju,"create"),_i=gi&&new gi,vi={},bi=pr(si),mi=pr(pi),xi=pr(hi),ji=pr(di),Ai=pr(gi),wi=Fu?Fu.prototype:P,ki=wi?wi.valueOf:P,Oi=wi?wi.toString:P,Ii=function(){function t(){}return function(n){return Ur(n)?Nu?Nu(n):(t.prototype=n,n=new t,t.prototype=P,n):{}}}();e.templateSettings={escape:Y,evaluate:Q,interpolate:X,variable:"",imports:{_:e}},e.prototype=r.prototype,e.prototype.constructor=e,u.prototype=Ii(r.prototype),u.prototype.constructor=u,w.prototype=Ii(r.prototype),w.prototype.constructor=w,At.prototype.clear=function(){this.__data__=yi?yi(null):{},this.size=0},At.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},At.prototype.get=function(t){var n=this.__data__;return yi?"__lodash_hash_undefined__"===(t=n[t])?P:t:Ru.call(n,t)?n[t]:P},At.prototype.has=function(t){var n=this.__data__;return yi?n[t]!==P:Ru.call(n,t)},At.prototype.set=function(t,n){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=yi&&n===P?"__lodash_hash_undefined__":n,this},wt.prototype.clear=function(){this.__data__=[],this.size=0},wt.prototype.delete=function(t){var n=this.__data__;return!(0>(t=$t(n,t))||(t==n.length-1?n.pop():$u.call(n,t,1),--this.size,0))},wt.prototype.get=function(t){var n=this.__data__;return 0>(t=$t(n,t))?P:n[t][1]},wt.prototype.has=function(t){return-1<$t(this.__data__,t)},wt.prototype.set=function(t,n){var e=this.__data__,r=$t(e,t);return 0>r?(++this.size,e.push([t,n])):e[r][1]=n,this},It.prototype.clear=function(){this.size=0,this.__data__={hash:new At,map:new(pi||wt),string:new At}},It.prototype.delete=function(t){return t=Ge(this,t).delete(t),this.size-=t?1:0,t},It.prototype.get=function(t){return Ge(this,t).get(t)},It.prototype.has=function(t){return Ge(this,t).has(t)},It.prototype.set=function(t,n){var e=Ge(this,t),r=e.size;return e.set(t,n),this.size+=e.size==r?0:1,this},Lt.prototype.add=Lt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Lt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.clear=function(){this.__data__=new wt,this.size=0},zt.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},zt.prototype.get=function(t){return this.__data__.get(t)},zt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.set=function(t,n){var e=this.__data__;if(e instanceof wt){var r=e.__data__;if(!pi||199>r.length)return r.push([t,n]),this.size=++e.size,this;e=this.__data__=new It(r)}return e.set(t,n),this.size=e.size,this};var Ei=be(gn),Wi=be(yn,!0),Ri=me(),Si=me(!0),Mi=_i?function(t,n){return _i.set(t,n),t}:lu,Bi=Hu?function(t,n){return Hu(t,"toString",{configurable:!0,enumerable:!1,value:fu(n),writable:!0})}:lu,Li=Gu||function(t){return Dt.clearTimeout(t)},Ci=di&&1/z(new di([,-0]))[1]==U?function(t){return new di(t)}:hu,Ti=_i?function(t){return _i.get(t)}:hu,zi=ti?function(t){return null==t?[]:(t=ju(t),f(ti(t),function(n){return qu.call(t,n)}))}:gu,Fi=ti?function(t){for(var n=[];t;)h(n,zi(t)),t=Uu(t);return n}:gu,Di=mn;(si&&"[object DataView]"!=Di(new si(new ArrayBuffer(1)))||pi&&"[object Map]"!=Di(new pi)||hi&&"[object Promise]"!=Di(hi.resolve())||di&&"[object Set]"!=Di(new di)||gi&&"[object WeakMap]"!=Di(new gi))&&(Di=function(t){var n=mn(t);if(t=(t="[object Object]"==n?t.constructor:P)?pr(t):"")switch(t){case bi:return"[object DataView]";case mi:return"[object Map]";case xi:return"[object Promise]";case ji:return"[object Set]";case Ai:return"[object WeakMap]"}return n});var Pi=Eu?Fr:yu,Ui=fr(Mi),Ni=Yu||function(t,n){return Dt.setTimeout(t,n)},qi=fr(Bi),$i=function(t){var n=(t=Mr(t,function(t){return 500===n.size&&n.clear(),t})).cache;return t}(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(et,function(t,e,r,u){n.push(r?u.replace(pt,"$1"):e||t)}),n}),Ki=$n(function(t,n){return Tr(t)?ln(t,dn(n,1,Tr,!0)):[]}),Zi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),He(e,2)):[]}),Vi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),P,e):[]}),Hi=$n(function(t){var n=p(t,ie);return n.length&&n[0]===t[0]?wn(n):[]}),Gi=$n(function(t){var n=br(t),e=p(t,ie);return n===br(e)?n=P:e.pop(),e.length&&e[0]===t[0]?wn(e,He(n,2)):[]}),Ji=$n(function(t){var n=br(t),e=p(t,ie);return(n="function"==typeof n?n:P)&&e.pop(),e.length&&e[0]===t[0]?wn(e,P,n):[]}),Yi=$n(mr),Qi=qe(function(t,n){var e=null==t?0:t.length,r=un(t,n);return Un(t,p(n,function(t){return nr(t,e)?+t:t}).sort(pe)),r}),Xi=$n(function(t){return Xn(dn(t,1,Tr,!0))}),to=$n(function(t){var n=br(t);return Tr(n)&&(n=P),Xn(dn(t,1,Tr,!0),He(n,2))}),no=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return Xn(dn(t,1,Tr,!0),P,n)}),eo=$n(function(t,n){return Tr(t)?ln(t,n):[]}),ro=$n(function(t){return re(f(t,Tr))}),uo=$n(function(t){var n=br(t);return Tr(n)&&(n=P),re(f(t,Tr),He(n,2))}),io=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return re(f(t,Tr),P,n)}),oo=$n(jr),ao=$n(function(t){var n;return Ar(t,n="function"==typeof(n=1<(n=t.length)?t[n-1]:P)?(t.pop(),n):P)}),co=qe(function(t){function n(n){return un(n,t)}var e=t.length,r=e?t[0]:0,i=this.__wrapped__;return!(1=n}),Wo=On(function(){return arguments}())?On:function(t){return Nr(t)&&Ru.call(t,"callee")&&!qu.call(t,"callee")},Ro=_u.isArray,So=Kt?E(Kt):function(t){return Nr(t)&&"[object ArrayBuffer]"==mn(t)},Mo=ni||yu,Bo=Zt?E(Zt):function(t){return Nr(t)&&"[object Date]"==mn(t)},Lo=Vt?E(Vt):function(t){return Nr(t)&&"[object Map]"==Di(t)},Co=Ht?E(Ht):function(t){return Nr(t)&&"[object RegExp]"==mn(t)},To=Gt?E(Gt):function(t){return Nr(t)&&"[object Set]"==Di(t)},zo=Jt?E(Jt):function(t){return Nr(t)&&Pr(t.length)&&!!Mt[mn(t)]},Fo=Le(Mn),Do=Le(function(t,n){return t<=n}),Po=ve(function(t,n){if(ir(n)||Cr(n))ye(n,eu(n),t);else for(var e in n)Ru.call(n,e)&&qt(t,e,n[e])}),Uo=ve(function(t,n){ye(n,ru(n),t)}),No=ve(function(t,n,e,r){ye(n,ru(n),t,r)}),qo=ve(function(t,n,e,r){ye(n,eu(n),t,r)}),$o=qe(un),Ko=$n(function(t,n){t=ju(t);var e=-1,r=n.length;for((u=2--t)return n.apply(this,arguments)}},e.ary=Wr,e.assign=Po,e.assignIn=Uo,e.assignInWith=No,e.assignWith=qo,e.at=$o,e.before=Rr,e.bind=bo,e.bindAll=sa,e.bindKey=mo,e.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ro(t)?t:[t]},e.chain=wr,e.chunk=function(t,n,e){if(n=(e?er(t,n,e):n===P)?1:ii(Gr(n),0),!(e=null==t?0:t.length)||1>n)return[];for(var r=0,u=0,i=_u(Qu(e/n));r(n=e||n===P?1:Gr(n))?0:n,r):[]},e.dropRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n):[]},e.dropRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0,!0):[]},e.dropWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0):[]},e.fill=function(t,n,e,r){var u=null==t?0:t.length;if(!u)return[];for(e&&"number"!=typeof e&&er(t,n,e)&&(e=0,r=u),u=t.length,0>(e=Gr(e))&&(e=-e>u?0:u+e),0>(r=r===P||r>u?u:Gr(r))&&(r+=u),r=e>r?0:Jr(r);e>>0)?(t=Xr(t))&&("string"==typeof n||null!=n&&!Co(n))&&(!(n=Qn(n))&&Wt.test(t))?ce(D(t),0,e):t.split(n,e):[]},e.spread=function(t,n){if("function"!=typeof t)throw new ku("Expected a function");return n=null==n?0:ii(Gr(n),0),$n(function(e){var r=e[n];return e=ce(e,0,n),r&&h(e,r),i(t,this,e)})},e.tail=function(t){var n=null==t?0:t.length;return n?Zn(t,1,n):[]},e.take=function(t,n,e){return t&&t.length?Zn(t,0,0>(n=e||n===P?1:Gr(n))?0:n):[]},e.takeRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n,r):[]},e.takeRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!1,!0):[]},e.takeWhile=function(t,n){return t&&t.length?ne(t,He(n,3)):[]},e.tap=function(t,n){return n(t),t},e.throttle=function(t,n,e){var r=!0,u=!0;if("function"!=typeof t)throw new ku("Expected a function");return Ur(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),Sr(t,n,{leading:r,maxWait:n,trailing:u})},e.thru=kr,e.toArray=Vr,e.toPairs=ta,e.toPairsIn=na,e.toPath=function(t){return Ro(t)?p(t,sr):Zr(t)?[t]:ge($i(Xr(t)))},e.toPlainObject=Qr,e.transform=function(t,n,e){var r=Ro(t),u=r||Mo(t)||zo(t);if(n=He(n,4),null==e){var i=t&&t.constructor;e=u?r?new i:[]:Ur(t)&&Fr(i)?Ii(Uu(t)):{}}return(u?a:gn)(t,function(t,r,u){return n(e,t,r,u)}),e},e.unary=function(t){return Wr(t,1)},e.union=Xi,e.unionBy=to,e.unionWith=no,e.uniq=function(t){return t&&t.length?Xn(t):[]},e.uniqBy=function(t,n){return t&&t.length?Xn(t,He(n,2)):[]},e.uniqWith=function(t,n){return n="function"==typeof n?n:P,t&&t.length?Xn(t,P,n):[]},e.unset=function(t,n){return null==t||te(t,n)},e.unzip=jr,e.unzipWith=Ar,e.update=function(t,n,e){return null==t?t:Kn(t,n,oe(e)(vn(t,n)),void 0)},e.updateWith=function(t,n,e,r){return r="function"==typeof r?r:P,null!=t&&(t=Kn(t,n,oe(e)(vn(t,n)),r)),t},e.values=iu,e.valuesIn=function(t){return null==t?[]:W(t,ru(t))},e.without=eo,e.words=cu,e.wrap=function(t,n){return wo(oe(n),t)},e.xor=ro,e.xorBy=uo,e.xorWith=io,e.zip=oo,e.zipObject=function(t,n){return ue(t||[],n||[],qt)},e.zipObjectDeep=function(t,n){return ue(t||[],n||[],Kn)},e.zipWith=ao,e.entries=ta,e.entriesIn=na,e.extend=Uo,e.extendWith=No,pu(e,e),e.add=xa,e.attempt=la,e.camelCase=ea,e.capitalize=ou,e.ceil=ja,e.clamp=function(t,n,e){return e===P&&(e=n,n=P),e!==P&&(e=(e=Yr(e))==e?e:0),n!==P&&(n=(n=Yr(n))==n?n:0),on(Yr(t),n,e)},e.clone=function(t){return an(t,4)},e.cloneDeep=function(t){return an(t,5)},e.cloneDeepWith=function(t,n){return an(t,5,n="function"==typeof n?n:P)},e.cloneWith=function(t,n){return an(t,4,n="function"==typeof n?n:P)},e.conformsTo=function(t,n){return null==n||cn(t,n,eu(n))},e.deburr=au,e.defaultTo=function(t,n){return null==t||t!=t?n:t},e.divide=Aa,e.endsWith=function(t,n,e){t=Xr(t),n=Qn(n);var r=t.length;r=e=e===P?r:on(Gr(e),0,r);return 0<=(e-=n.length)&&t.slice(e,r)==n},e.eq=Lr,e.escape=function(t){return(t=Xr(t))&&J.test(t)?t.replace(H,Xt):t},e.escapeRegExp=function(t){return(t=Xr(t))&&ut.test(t)?t.replace(rt,"\\$&"):t},e.every=function(t,n,e){var r=Ro(t)?c:sn;return e&&er(t,n,e)&&(n=P),r(t,He(n,3))},e.find=lo,e.findIndex=gr,e.findKey=function(t,n){return _(t,He(n,3),gn)},e.findLast=so,e.findLastIndex=yr,e.findLastKey=function(t,n){return _(t,He(n,3),yn)},e.floor=wa,e.forEach=Or,e.forEachRight=Ir,e.forIn=function(t,n){return null==t?t:Ri(t,He(n,3),ru)},e.forInRight=function(t,n){return null==t?t:Si(t,He(n,3),ru)},e.forOwn=function(t,n){return t&&gn(t,He(n,3))},e.forOwnRight=function(t,n){return t&&yn(t,He(n,3))},e.get=tu,e.gt=Io,e.gte=Eo,e.has=function(t,n){return null!=t&&Qe(t,n,jn)},e.hasIn=nu,e.head=vr,e.identity=lu,e.includes=function(t,n,e,r){return t=Cr(t)?t:iu(t),e=e&&!r?Gr(e):0,r=t.length,0>e&&(e=ii(r+e,0)),Kr(t)?e<=r&&-1(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),b(t,n,e)):-1},e.inRange=function(t,n,e){return n=Hr(n),e===P?(e=n,n=0):e=Hr(e),(t=Yr(t))>=oi(n,e)&&t=t},e.isSet=To,e.isString=Kr,e.isSymbol=Zr,e.isTypedArray=zo,e.isUndefined=function(t){return t===P},e.isWeakMap=function(t){return Nr(t)&&"[object WeakMap]"==Di(t)},e.isWeakSet=function(t){return Nr(t)&&"[object WeakSet]"==mn(t)},e.join=function(t,n){return null==t?"":ri.call(t,n)},e.kebabCase=ra,e.last=br,e.lastIndexOf=function(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r;if(e!==P&&(u=0>(u=Gr(e))?ii(r+u,0):oi(u,r-1)),n==n){for(e=u+1;e--&&t[e]!==n;);t=e}else t=v(t,x,u,!0);return t},e.lowerCase=ua,e.lowerFirst=ia,e.lt=Fo,e.lte=Do,e.max=function(t){return t&&t.length?pn(t,lu,xn):P},e.maxBy=function(t,n){return t&&t.length?pn(t,He(n,2),xn):P},e.mean=function(t){return j(t,lu)},e.meanBy=function(t,n){return j(t,He(n,2))},e.min=function(t){return t&&t.length?pn(t,lu,Mn):P},e.minBy=function(t,n){return t&&t.length?pn(t,He(n,2),Mn):P},e.stubArray=gu,e.stubFalse=yu,e.stubObject=function(){return{}},e.stubString=function(){return""},e.stubTrue=function(){return!0},e.multiply=ka,e.nth=function(t,n){return t&&t.length?zn(t,Gr(n)):P},e.noConflict=function(){return Dt._===this&&(Dt._=Cu),this},e.noop=hu,e.now=vo,e.pad=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return!n||r>=n?t:Se(Xu(n=(n-r)/2),e)+t+Se(Qu(n),e)},e.padEnd=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return n&&rn){var r=t;t=n,n=r}return e||t%1||n%1?(e=fi(),oi(t+e*(n-t+Ct("1e-"+((e+"").length-1))),n)):Nn(t,n)},e.reduce=function(t,n,e){var r=Ro(t)?d:k,u=3>arguments.length;return r(t,He(n,4),e,u,Ei)},e.reduceRight=function(t,n,e){var r=Ro(t)?g:k,u=3>arguments.length;return r(t,He(n,4),e,u,Wi)},e.repeat=function(t,n,e){return n=(e?er(t,n,e):n===P)?1:Gr(n),qn(Xr(t),n)},e.replace=function(){var t=arguments,n=Xr(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},e.result=function(t,n,e){var r=-1,u=(n=ae(n,t)).length;for(u||(u=1,t=P);++r(t=Gr(t))||9007199254740991=i)return t;if(1>(i=e-F(r)))return r;if(e=o?ce(o,0,i).join(""):t.slice(0,i),u===P)return e+r;if(o&&(i+=e.length-i),Co(u)){if(t.slice(i).search(u)){var a=e;for(u.global||(u=Au(u.source,Xr(dt.exec(u))+"g")),u.lastIndex=0;o=u.exec(a);)var c=o.index;e=e.slice(0,c===P?i:c)}}else t.indexOf(Qn(u),i)!=i&&(-1<(u=e.lastIndexOf(u))&&(e=e.slice(0,u)));return e+r},e.unescape=function(t){return(t=Xr(t))&&G.test(t)?t.replace(V,tn):t},e.uniqueId=function(t){var n=++Su;return Xr(t)+n},e.upperCase=ca,e.upperFirst=fa,e.each=Or,e.eachRight=Ir,e.first=vr,pu(e,function(){var t={};return gn(e,function(n,r){Ru.call(e.prototype,r)||(t[r]=n)}),t}(),{chain:!1}),e.VERSION="4.17.10",a("bind bindKey curry curryRight partial partialRight".split(" "),function(t){e[t].placeholder=e}),a(["drop","take"],function(t,n){w.prototype[t]=function(e){e=e===P?1:ii(Gr(e),0);var r=this.__filtered__&&!n?new w(this):this.clone();return r.__filtered__?r.__takeCount__=oi(e,r.__takeCount__):r.__views__.push({size:oi(e,4294967295),type:t+(0>r.__dir__?"Right":"")}),r},w.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),a(["filter","map","takeWhile"],function(t,n){var e=n+1,r=1==e||3==e;w.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:He(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),a(["head","last"],function(t,n){var e="take"+(n?"Right":"");w.prototype[t]=function(){return this[e](1).value()[0]}}),a(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");w.prototype[t]=function(){return this.__filtered__?new w(this):this[e](1)}}),w.prototype.compact=function(){return this.filter(lu)},w.prototype.find=function(t){return this.filter(t).head()},w.prototype.findLast=function(t){return this.reverse().find(t)},w.prototype.invokeMap=$n(function(t,n){return"function"==typeof t?new w(this):this.map(function(e){return kn(e,t,n)})}),w.prototype.reject=function(t){return this.filter(Br(He(t)))},w.prototype.slice=function(t,n){t=Gr(t);var e=this;return e.__filtered__&&(0n)?new w(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==P&&(e=0>(n=Gr(n))?e.dropRight(-n):e.take(n-t)),e)},w.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},w.prototype.toArray=function(){return this.take(4294967295)},gn(w.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),o=e[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);o&&(e.prototype[n]=function(){function n(t){return t=o.apply(e,h([t],f)),i&&d?t[0]:t}var c=this.__wrapped__,f=i?[1]:arguments,l=c instanceof w,s=f[0],p=l||Ro(c);p&&r&&"function"==typeof s&&1!=s.length&&(l=p=!1);var d=this.__chain__,g=!!this.__actions__.length;s=a&&!d,l=l&&!g;return!a&&p?(c=l?c:new w(this),(c=t.apply(c,f)).__actions__.push({func:kr,args:[n],thisArg:P}),new u(c,d)):s&&l?t.apply(this,f):(c=this.thru(n),s?i?c.value()[0]:c.value():c)})}),a("pop push shift sort splice unshift".split(" "),function(t){var n=Ou[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",u=/^(?:pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;if(u&&!this.__chain__){var e=this.value();return n.apply(Ro(e)?e:[],t)}return this[r](function(e){return n.apply(Ro(e)?e:[],t)})}}),gn(w.prototype,function(t,n){var r=e[n];if(r){var u=r.name+"";(vi[u]||(vi[u]=[])).push({name:n,func:r})}}),vi[Ie(P,2).name]=[{name:"wrapper",func:P}],w.prototype.clone=function(){var t=new w(this.__wrapped__);return t.__actions__=ge(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ge(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ge(this.__views__),t},w.prototype.reverse=function(){if(this.__filtered__){var t=new w(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},w.prototype.value=function(){var t,n=this.__wrapped__.value(),e=this.__dir__,r=Ro(n),u=0>e,i=r?n.length:0;t=i;for(var o=this.__views__,a=0,c=-1,f=o.length;++c=this.__values__.length;return{done:t,value:t?P:this.__values__[this.__index__++]}},e.prototype.plant=function(t){for(var n,e=this;e instanceof r;){var u=dr(e);u.__index__=0,u.__values__=P,n?i.__wrapped__=u:n=u;var i=u;e=e.__wrapped__}return i.__wrapped__=t,n},e.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof w?(this.__actions__.length&&(t=new w(this)),(t=t.reverse()).__actions__.push({func:kr,args:[xr],thisArg:P}),new u(t,this.__chain__)):this.thru(xr)},e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=function(){return ee(this.__wrapped__,this.__actions__)},e.prototype.first=e.prototype.head,Zu&&(e.prototype[Zu]=function(){return this}),e}();Dt._=nn,void 0===(u=function(){return nn}.call(n,e,n,r))||(r.exports=u)}).call(this)}).call(this,e("./node_modules/webpack/buildin/global.js"),e("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/webpack/buildin/global.js":function(t,n){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(e=window)}t.exports=e},"./node_modules/webpack/buildin/module.js":function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./src/web/index.js":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,n){var e=[],r=!0,u=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){u=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(u)throw i}}return e}(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,n){for(var e=0;e0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=e;u||(this.regenCache(),u=[].concat(a(document.querySelectorAll("[data-huron-id][data-huron-type]")))),t=this.getModuleListFromTags(u),Object.keys(t).forEach(function(e){var u=n._modules[e],i=t[e];n.loadModule(e,u,i,!0,r)})}},{key:"cycleSections",value:function(){this.cycleModules(!1,{property:"type",values:["section"],include:!0})}},{key:"cycleStyleguide",value:function(){var t=document.querySelector("[huron-sections]"),n=document.querySelector("[huron-menu]");if(t&&(t.innerHTML="",this.outputSections(null,t),this.cycleSections()),n){if(n.innerHTML="",null===document.querySelector(".section-menu__expand")){var e=document.createElement("button");e.classList.add("section-menu__expand"),e.innerHTML="Sections Menu",document.body.insertBefore(n.appendChild(e),document.body.childNodes[0]),e.addEventListener("click",function(){document.body.classList.toggle("section-menu-open")})}this.outputMenu(null,n)}}},{key:"generateModuleReplaceKey",value:function(t){var n=t;return t.includes("-section.json")?n=this._sectionTemplatePath:t.includes(".json")&&(n=this._templates[t]),"_"+n.replace(/[/.]/g,"_")}},{key:"getMetaFromPath",value:function(t,n){var e=this,r=this._sections.sectionsByPath,i=this._types.filter(function(t){return"prototype"!==t}),o=!1,a=!1;if(-1!==t.indexOf("./prototypes")){var c=Object.keys(this._prototypes).filter(function(n){return e._prototypes[n]===t});if(c.length)o=u(c,1)[0],a="prototype"}else if(t===this._sectionTemplatePath)o="sections-template",a="sections-template";else{var f=[],l=Object.keys(r).filter(function(n){var e=i.filter(function(e){return r[n][e+"Path"]===t});return!!e.length&&(f=e,!0)});if(l&&l.length&&f&&f.length)o=r[l[0]].referenceURI,a=u(f,1)[0]}if(o&&a){var s=this.getModuleRender(a,t,n),p=this.generateModuleReplaceKey(t);if(s)return Object.assign({id:o,type:a,key:t,replaceKey:p,module:n},s)}return console.warn("Module '"+t+"' does not exist on the page\n or is no longer in use"),!1}},{key:"getModuleKeyFromTag",value:function(n){var e=t.getDataAttribute(n,"huron-type"),r=t.getDataAttribute(n,"huron-id"),u=this._sections.sectionsByURI[r];if(r&&e){if(u)return u[e+"Path"];if("prototype"===e)return this._prototypes[r]}return!1}},{key:"getModuleListFromTags",value:function(t){var n=this,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r={},u={};return t&&t.length&&t.forEach(function(t){var i=n.getModuleKeyFromTag(t);i?(r[i]||(r[i]=[]),r[i].push(t)):e&&(u=n.getModuleListFromTags([].concat(a(t.querySelectorAll("[data-huron-id][data-huron-type]"))),!1),Object.keys(u).forEach(function(t){r[t]=r[t]?r[t].concat(u[t]):u[t]}))}),r}},{key:"getModuleRender",value:function(t,n,e){var u=!1,i=!1;return"template"===t&&"function"==typeof e?(u=e,i=this._modules[this._templates[n]]):"sections-template"===t&&"function"==typeof e?u=e:"section"===t&&"object"===(void 0===e?"undefined":r(e))?(u=this._modules[this._sectionTemplatePath],i=e):"template"!==t&&"description"!==t&&"prototype"!==t||"string"!=typeof e?"data"===t&&"object"===(void 0===e?"undefined":r(e))&&(u=this._modules[this._templates[n]],i=e):u=function(){return e},!!u&&{render:u,data:i}}},{key:"loadModule",value:function(n,e,r){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=!0,a=!1;u?a=this.meta[n]:(this.meta[n]=this.getMetaFromPath(n,e),a=this.meta[n]),a&&(i&&(o=t.filterModules(i,a)),o&&this.replaceTemplate(a,r))}},{key:"outputMenu",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=n;Object.keys(r).forEach(function(n){var o=Object.keys(r[n]).length,a=void 0,c=void 0;if(u=t?t+"-"+n:n,i){var f=e._sections.sectionsByURI[u]?e._sections.sectionsByURI[u].header:u,l=document.createElement("ul"),s=document.createElement("li"),p=''+f+"";l.classList.add("section-menu"),s.classList.add("section-menu__item"),s.innerHTML=p,"UL"!==i.tagName&&(a=l.cloneNode(),i.appendChild(a),i=a),o&&((c=l.cloneNode()).classList.add("section-menu--submenu"),s.classList.add("section-menu__item--has-submenu"),s.appendChild(c)),i.appendChild(s),o&&e.outputMenu(u,c,r[n])}})}},{key:"outputSections",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=null;Object.keys(r).forEach(function(o){var a=!1,c=null,f=null,l=n;t?u=t+"-"+o:(u=o,a=!0),n&&((i=document.createElement("div")).dataset.huronId=u,i.dataset.huronType="section",a?((c=document.createElement("div")).classList.add("section--top-level__wrapper"),(f=document.createElement("div")).classList.add("section","section--top-level"),f.appendChild(i),c.appendChild(f),n.appendChild(c),l=c):n.appendChild(i)),Object.keys(r[o]).length&&i&&e.outputSections(u,l,r[o])})}},{key:"provideClassnames",value:function(t){return this._classNames?Object.assign({},t,{classNames:this._classNames}):t}},{key:"regenCache",value:function(){var t=this;Object.keys(this._modules).forEach(function(n){t.meta[n]=t.getMetaFromPath(n,t._modules[n])})}},{key:"removeOldTags",value:function(n,e){if(e){var r=t.getDataAttribute(e,"parent-module"),u=t.getDataAttribute(e,"self-module");if(r===n&&u!==n){var i=u,o=e.previousSibling;i&&(this.removeOldTags(i,o),o=e.previousSibling),e.parentNode.removeChild(e),this.removeOldTags(n,o)}}}},{key:"replaceTemplate",value:function(n,e){var r=this,u=this.validateType(n.type),i=[],c=e,f=!1;c||(c=document.querySelectorAll("[data-huron-id][data-huron-type]")),u?(c.forEach(function(e){var r=t.getDataAttribute(e,"huron-type");t.getDataAttribute(e,"huron-id")===n.id&&r===u&&i.push(e)}),i&&i.length&&n.render&&i.forEach(function(e){var u=e,i=t.getDataAttribute(u,"huron-modifier"),c=u.parentNode,l=(0,o.compose)(r.provideClassnames.bind(r),t.applyModifier)(n.data,i),s=n.render(l),p=t.convertToElement(s).querySelector("template"),h=null;r.removeOldTags(n.replaceKey,u.previousSibling),(h=[].concat(a(p.content.children))).forEach(function(e){var r=e;1===r.nodeType&&(r.dataset.parentModule=n.replaceKey,f=f||t.isSectionHelper(r,n),c.insertBefore(r,u))}),u.dataset.selfModule=n.replaceKey,u.style.display="none",r.cycleModules(h,{property:"key",values:[n.key,r._sectionTemplatePath],include:!1}),f&&r.cycleStyleguide()})):console.warn("Could not render module\n section: "+n.id+"\n type: "+n.type)}},{key:"validateType",value:function(t){return"data"===t?"template":!!this._types.includes(t)&&t}},{key:"modules",set:function(t){this._modules=t,this._moduleIds=Object.keys(t)}},{key:"store",set:function(t){if(this._store=t,this._config=t.config,this._sections=t.sections,this._templates=t.templates,this._prototypes=t.prototypes,this._types=t.types,this._sectionTemplatePath=t.sectionTemplatePath,!(0,o.isEqual)(this._classNames,t.classNames)){var n=!this._classNames;this._classNames=t.classNames,n||this.cycleModules()}}}],[{key:"applyModifier",value:function(t,n){return n&&t&&t[n]?Object.assign({},t[n],{modifier:n}):t}},{key:"convertToElement",value:function(t){var n=document.createElement("div");return n.innerHTML=t,n.firstElementChild}},{key:"filterModules",value:function(t,n){var e=!0;return"object"===(void 0===t?"undefined":r(t))&&{}.hasOwnProperty.call(t,"property")&&{}.hasOwnProperty.call(t,"values")&&{}.hasOwnProperty.call(t,"include")?(e=t.values.filter(function(e){return n[t.property]===e}),Boolean(e.length)===t.include):(console.log(" // eslint-disable-line no-console\n filter "+t+" is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n "),e)}},{key:"getDataAttribute",value:function(t,n){var e=!1;return t.dataset&&(e=t.dataset[n]),!e&&t.getAttribute&&(e=t.getAttribute("data-"+n)),e}},{key:"isSectionHelper",value:function(t,n){return"prototype"===n.type&&(t.hasAttribute("huron-sections")||t.hasAttribute("huron-menu"))}}]),t}();n.default=c},0:function(t,n,e){t.exports=e("./src/web/index.js")}}); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js.map b/dist/web/index.js.map index e2e62fa..b17a1e6 100644 --- a/dist/web/index.js.map +++ b/dist/web/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap ddca787f470c51c97333","webpack:///./~/lodash/fp.js","webpack:///./~/lodash/fp/_baseConvert.js","webpack:///./~/lodash/fp/_mapping.js","webpack:///./~/lodash/fp/placeholder.js","webpack:///./~/lodash/lodash.min.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///src/web/index.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ddca787f470c51c97333","var _ = require('./lodash.min').runInContext();\nmodule.exports = require('./fp/_baseConvert')(_, _);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/fp.js\n// module id = ./node_modules/lodash/fp.js\n// module chunks = 0","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var setPlaceholder,\n isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n placeholder = isLib ? func : fallbackHolder,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isFunction': util.isFunction,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isFunction = helpers.isFunction,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null) {\n nested[path[index]] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n if (mapping.placeholder[realName]) {\n setPlaceholder = true;\n result.placeholder = func.placeholder = placeholder;\n }\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n if (setPlaceholder) {\n _.placeholder = placeholder;\n }\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/fp/_baseConvert.js\n// module id = ./node_modules/lodash/fp/_baseConvert.js\n// module chunks = 0","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to track methods with placeholder support */\nexports.placeholder = {\n 'bind': true,\n 'bindKey': true,\n 'curry': true,\n 'curryRight': true,\n 'partial': true,\n 'partialRight': true\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/fp/_mapping.js\n// module id = ./node_modules/lodash/fp/_mapping.js\n// module chunks = 0","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/fp/placeholder.js\n// module id = ./node_modules/lodash/fp/placeholder.js\n// module chunks = 0","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\\s\\S]+?)%>/g,X=/<%([\\s\\S]+?)%>/g,nn=/<%=([\\s\\S]+?)%>/g,tn=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,rn=/^\\w*$/,en=/^\\./,un=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,on=/[\\\\^$.*+?()[\\]{}|]/g,fn=RegExp(on.source),cn=/^\\s+|\\s+$/g,an=/^\\s+/,ln=/\\s+$/,sn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,hn=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,pn=/,? & /,_n=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,vn=/\\\\(\\\\)?/g,gn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,dn=/\\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\\[object .+?Constructor\\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\\d*)$/,mn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,An=/($^)/,kn=/['\\n\\r\\u2028\\u2029\\\\]/g,En=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",On=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+En,Sn=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",In=RegExp(\"['\\u2019]\",\"g\"),Rn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),zn=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+Sn+En,\"g\"),Wn=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:(?:1ST|2ND|3RD|(?![123])\\\\dTH)\\\\b)|\\\\d*(?:(?:1st|2nd|3rd|(?![123])\\\\dth)\\\\b)|\\\\d+\",On].join(\"|\"),\"g\"),Bn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Cn={};\nCn[\"[object Float32Array]\"]=Cn[\"[object Float64Array]\"]=Cn[\"[object Int8Array]\"]=Cn[\"[object Int16Array]\"]=Cn[\"[object Int32Array]\"]=Cn[\"[object Uint8Array]\"]=Cn[\"[object Uint8ClampedArray]\"]=Cn[\"[object Uint16Array]\"]=Cn[\"[object Uint32Array]\"]=true,Cn[\"[object Arguments]\"]=Cn[\"[object Array]\"]=Cn[\"[object ArrayBuffer]\"]=Cn[\"[object Boolean]\"]=Cn[\"[object DataView]\"]=Cn[\"[object Date]\"]=Cn[\"[object Error]\"]=Cn[\"[object Function]\"]=Cn[\"[object Map]\"]=Cn[\"[object Number]\"]=Cn[\"[object Object]\"]=Cn[\"[object RegExp]\"]=Cn[\"[object Set]\"]=Cn[\"[object String]\"]=Cn[\"[object WeakMap]\"]=false;\nvar Dn={};Dn[\"[object Arguments]\"]=Dn[\"[object Array]\"]=Dn[\"[object ArrayBuffer]\"]=Dn[\"[object DataView]\"]=Dn[\"[object Boolean]\"]=Dn[\"[object Date]\"]=Dn[\"[object Float32Array]\"]=Dn[\"[object Float64Array]\"]=Dn[\"[object Int8Array]\"]=Dn[\"[object Int16Array]\"]=Dn[\"[object Int32Array]\"]=Dn[\"[object Map]\"]=Dn[\"[object Number]\"]=Dn[\"[object Object]\"]=Dn[\"[object RegExp]\"]=Dn[\"[object Set]\"]=Dn[\"[object String]\"]=Dn[\"[object Symbol]\"]=Dn[\"[object Uint8Array]\"]=Dn[\"[object Uint8ClampedArray]\"]=Dn[\"[object Uint16Array]\"]=Dn[\"[object Uint32Array]\"]=true,\nDn[\"[object Error]\"]=Dn[\"[object Function]\"]=Dn[\"[object WeakMap]\"]=false;var Mn,Tn={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},$n=parseFloat,Fn=parseInt,Nn=typeof global==\"object\"&&global&&global.Object===Object&&global,Pn=typeof self==\"object\"&&self&&self.Object===Object&&self,Zn=Nn||Pn||Function(\"return this\")(),qn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Vn=qn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Kn=Vn&&Vn.exports===qn,Gn=Kn&&Nn.process;\nn:{try{Mn=Gn&&Gn.binding&&Gn.binding(\"util\");break n}catch(n){}Mn=void 0}var Hn=Mn&&Mn.isArrayBuffer,Jn=Mn&&Mn.isDate,Yn=Mn&&Mn.isMap,Qn=Mn&&Mn.isRegExp,Xn=Mn&&Mn.isSet,nt=Mn&&Mn.isTypedArray,tt=j(\"length\"),rt=w({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\"\\xcd\":\"I\",\"\\xce\":\"I\",\n\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\"\\u0108\":\"C\",\"\\u010a\":\"C\",\n\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\"\\u012b\":\"i\",\"\\u012d\":\"i\",\n\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\"\\u015a\":\"S\",\"\\u015c\":\"S\",\n\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\n\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),et=w({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),ut=w({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),it=function w(En){function On(n){if(xu(n)&&!af(n)&&!(n instanceof Mn)){if(n instanceof zn)return n;if(ci.call(n,\"__wrapped__\"))return Pe(n)}return new zn(n)}function Sn(){}function zn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=F}function Mn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,\nthis.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function dt(n,t,r,e,i,o){var f,c=1&t,a=2&t,l=4&t;if(r&&(f=i?r(n,e,i,o):r(n)),f!==F)return f;if(!bu(n))return n;if(e=af(n)){if(f=Ee(n),!c)return Mr(n,f)}else{var s=yo(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(sf(n))return Wr(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Oe(n),!c)return a?Fr(n,pt(f,n)):$r(n,ht(f,n))}else{if(!Dn[s])return i?n:{};f=Se(n,s,dt,c)}}if(o||(o=new Vn),\ni=o.get(n))return i;o.set(n,f);var a=l?a?ye:de:a?Uu:Lu,p=e?F:a(n);return u(p||n,function(e,u){p&&(u=e,e=n[u]),at(f,u,dt(e,t,r,u,n,o))}),f}function yt(n){var t=Lu(n);return function(r){return bt(r,n,t)}}function bt(n,t,r){var e=r.length;if(null==n)return!e;for(n=ni(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===F&&!(u in n)||!i(o))return false}return true}function xt(n,t,r){if(typeof n!=\"function\")throw new ei(\"Expected a function\");return jo(function(){n.apply(F,r)},t)}function jt(n,t,r,e){var u=-1,i=c,o=true,f=n.length,s=[],h=t.length;\nif(!f)return s;r&&(t=l(t,S(r))),e?(i=a,o=false):200<=t.length&&(i=R,o=false,t=new qn(t));n:for(;++ut}function Bt(n,t){return null!=n&&ci.call(n,t)}function Lt(n,t){return null!=n&&t in ni(n)}function Ut(n,t,r){for(var e=r?a:c,u=n[0].length,i=n.length,o=i,f=Hu(i),s=1/0,h=[];o--;){var p=n[o];o&&t&&(p=l(p,S(t))),s=Mi(p.length,s),f[o]=!r&&(t||120<=u&&120<=p.length)?new qn(o&&p):F}var p=n[0],_=-1,v=f[0];n:for(;++_t.length?n:It(n,vr(t,0,-1)),t=null==n?n:n[$e(Ge(t))],null==t?F:r(t,n,e)}function Mt(n){return xu(n)&&\"[object Arguments]\"==zt(n)}function Tt(n){return xu(n)&&\"[object ArrayBuffer]\"==zt(n)}function $t(n){return xu(n)&&\"[object Date]\"==zt(n)}function Ft(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!xu(n)&&!xu(t))t=n!==n&&t!==t;else n:{\nvar i=af(n),o=af(t),f=i?\"[object Array]\":yo(n),c=o?\"[object Array]\":yo(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&sf(n)){if(!sf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Vn),t=i||gf(n)?_e(n,t,r,e,Ft,u):ve(n,t,f,r,e,Ft,u);else{if(!(1&r)&&(i=a&&ci.call(n,\"__wrapped__\"),f=o&&ci.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Vn),t=Ft(n,t,r,e,u);break n}if(c)t:if(u||(u=new Vn),\ni=1&r,f=de(n),o=f.length,c=de(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ci.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Re(t,r)?n[t]:F}function rr(n,t,r){var e=-1;return t=l(t.length?t:[Nu],S(je())),n=Yt(n,function(n){return{a:l(t,function(t){return t(n)}),b:++e,c:n}}),A(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);\nbreak n}}e=n.b-t.b}return e})}function er(n,t){return ur(n,t,function(t,r){return Bu(n,r)})}function ur(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Hu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!Au(o)&&(r?o<=t:ot.length?n:It(n,vr(t,0,-1)),\nnull==n||delete n[$e(Ge(t))]}function Ar(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?wr(n[0]):[];for(var u=-1,i=Hu(e);++u=e?n:vr(n,t,r)}function Wr(n,t){if(t)return n.slice();var r=n.length,r=yi?yi(r):new n.constructor(r);return n.copy(r),r}function Br(n){var t=new n.constructor(n.byteLength);return new di(t).set(new di(n)),t}function Lr(n,t){return new n.constructor(t?Br(n.buffer):n.buffer,n.byteOffset,n.length)}function Ur(n,t){\nif(n!==t){var r=n!==F,e=null===n,u=n===n,i=Au(n),o=t!==F,f=null===t,c=t===t,a=Au(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?F:i,u=1),t=ni(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,or?r?ar(t,n):t:(r=ar(t,Ri(n/T(t))),Bn.test(t)?zr($(r),0,n).join(\"\"):r.slice(0,n))}function ue(n,t,e,u){function i(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Hu(l+c),h=this&&this!==Zn&&this instanceof i?f:n;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Cr(e,r,h[4]):r,i[4]=e?C(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Dr(e,r,h[6]):r,i[6]=e?C(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Mi(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===F?c?0:n.length:Di(i[9]-a,0),!f&&24&t&&(t&=-25),De((h?lo:xo)(t&&1!=t?8==t||16==t?Jr(n,t,f):32!=t&&33!=t||u.length?Xr.apply(F,i):ue(n,t,r,e):Vr(n,t,r),i),n,t)}function se(n,t,r,e){return n===F||hu(n,ii[r])&&!ci.call(e,r)?t:n}function he(n,t,r,e,u,i){return bu(n)&&bu(t)&&(i.set(t,n),nr(n,t,F,he,i),i.delete(t)),n}function pe(n){return wu(n)?F:n}function _e(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new qn:F;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Di(e+r,0)),g(n,je(t,3),r)):-1}function qe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==F&&(u=Ou(r),u=0>r?Di(e+u,0):Mi(u,e-1)),\ng(n,je(t,3),u,true)}function Ve(n){return(null==n?0:n.length)?kt(n,1):[]}function Ke(n){return n&&n.length?n[0]:F}function Ge(n){var t=null==n?0:n.length;return t?n[t-1]:F}function He(n,t){return n&&n.length&&t&&t.length?or(n,t):n}function Je(n){return null==n?n:Ni.call(n)}function Ye(n){if(!n||!n.length)return[];var t=0;return n=f(n,function(n){if(_u(n))return t=Di(n.length,t),true}),E(t,function(t){return l(n,j(t))})}function Qe(n,t){if(!n||!n.length)return[];var e=Ye(n);return null==t?e:l(e,function(n){\nreturn r(t,F,n)})}function Xe(n){return n=On(n),n.__chain__=true,n}function nu(n,t){return t(n)}function tu(){return this}function ru(n,t){return(af(n)?u:oo)(n,je(t,3))}function eu(n,t){return(af(n)?i:fo)(n,je(t,3))}function uu(n,t){return(af(n)?l:Yt)(n,je(t,3))}function iu(n,t,r){return t=r?F:t,t=n&&null==t?n.length:t,le(n,128,F,F,F,F,t)}function ou(n,t){var r;if(typeof t!=\"function\")throw new ei(\"Expected a function\");return n=Ou(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=F),\nr}}function fu(n,t,r){return t=r?F:t,n=le(n,8,F,F,F,F,F,t),n.placeholder=fu.placeholder,n}function cu(n,t,r){return t=r?F:t,n=le(n,16,F,F,F,F,F,t),n.placeholder=cu.placeholder,n}function au(n,t,r){function e(t){var r=c,e=a;return c=a=F,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===F||r>=t||0>r||g&&n>=l}function i(){var n=Jo();if(u(n))return o(n);var r,e=jo;r=n-_,n=t-(n-p),r=g?Mi(n,l-r):n,h=e(i,r)}function o(n){return h=F,d&&c?e(n):(c=a=F,s)}function f(){var n=Jo(),r=u(n);if(c=arguments,\na=this,p=n,r){if(h===F)return _=n=p,h=jo(i,t),v?e(n):s;if(g)return h=jo(i,t),e(p)}return h===F&&(h=jo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ei(\"Expected a function\");return t=Iu(t)||0,bu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Di(Iu(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==F&&ho(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Jo())},f}function lu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),\nr.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ei(\"Expected a function\");return r.cache=new(lu.Cache||Pn),r}function su(n){if(typeof n!=\"function\")throw new ei(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function hu(n,t){return n===t||n!==n&&t!==t}function pu(n){return null!=n&&yu(n.length)&&!gu(n);\n}function _u(n){return xu(n)&&pu(n)}function vu(n){if(!xu(n))return false;var t=zt(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!wu(n)}function gu(n){return!!bu(n)&&(n=zt(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function du(n){return typeof n==\"number\"&&n==Ou(n)}function yu(n){return typeof n==\"number\"&&-1=n}function bu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t);\n}function xu(n){return null!=n&&typeof n==\"object\"}function ju(n){return typeof n==\"number\"||xu(n)&&\"[object Number]\"==zt(n)}function wu(n){return!(!xu(n)||\"[object Object]\"!=zt(n))&&(n=bi(n),null===n||(n=ci.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&fi.call(n)==hi))}function mu(n){return typeof n==\"string\"||!af(n)&&xu(n)&&\"[object String]\"==zt(n)}function Au(n){return typeof n==\"symbol\"||xu(n)&&\"[object Symbol]\"==zt(n)}function ku(n){if(!n)return[];if(pu(n))return mu(n)?$(n):Mr(n);\nif(Ai&&n[Ai]){n=n[Ai]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=yo(n),(\"[object Map]\"==t?L:\"[object Set]\"==t?D:Du)(n)}function Eu(n){return n?(n=Iu(n),n===N||n===-N?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Ou(n){n=Eu(n);var t=n%1;return n===n?t?n-t:n:0}function Su(n){return n?gt(Ou(n),0,4294967295):0}function Iu(n){if(typeof n==\"number\")return n;if(Au(n))return P;if(bu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=bu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;\nn=n.replace(cn,\"\");var t=bn.test(n);return t||jn.test(n)?Fn(n.slice(2),t?2:8):yn.test(n)?P:+n}function Ru(n){return Tr(n,Uu(n))}function zu(n){return null==n?\"\":jr(n)}function Wu(n,t,r){return n=null==n?F:It(n,t),n===F?r:n}function Bu(n,t){return null!=n&&ke(n,t,Lt)}function Lu(n){return pu(n)?Gn(n):Ht(n)}function Uu(n){if(pu(n))n=Gn(n,true);else if(bu(n)){var t,r=Le(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ci.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in ni(n))t.push(r);n=t}return n}function Cu(n,t){\nif(null==n)return{};var r=l(ye(n),function(n){return[n]});return t=je(t),ur(n,r,function(n,r){return t(n,r[0])})}function Du(n){return null==n?[]:I(n,Lu(n))}function Mu(n){return Nf(zu(n).toLowerCase())}function Tu(n){return(n=zu(n))&&n.replace(mn,rt).replace(Rn,\"\")}function $u(n,t,r){return n=zu(n),t=r?F:t,t===F?Ln.test(n)?n.match(Wn)||[]:n.match(_n)||[]:n.match(t)||[]}function Fu(n){return function(){return n}}function Nu(n){return n}function Pu(n){return Gt(typeof n==\"function\"?n:dt(n,1))}function Zu(n,t,r){\nvar e=Lu(t),i=St(t,e);null!=r||bu(t)&&(i.length||!e.length)||(r=t,t=n,n=this,i=St(t,Lu(t)));var o=!(bu(r)&&\"chain\"in r&&!r.chain),f=gu(n);return u(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Mr(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,s([this.value()],arguments))})}),n}function qu(){}function Vu(n){return We(n)?j($e(n)):ir(n)}function Ku(){return[]}function Gu(){\nreturn false}En=null==En?Zn:it.defaults(Zn.Object(),En,it.pick(Zn,Un));var Hu=En.Array,Ju=En.Date,Yu=En.Error,Qu=En.Function,Xu=En.Math,ni=En.Object,ti=En.RegExp,ri=En.String,ei=En.TypeError,ui=Hu.prototype,ii=ni.prototype,oi=En[\"__core-js_shared__\"],fi=Qu.prototype.toString,ci=ii.hasOwnProperty,ai=0,li=function(){var n=/[^.]+$/.exec(oi&&oi.keys&&oi.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),si=ii.toString,hi=fi.call(ni),pi=Zn._,_i=ti(\"^\"+fi.call(ci).replace(on,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),vi=Kn?En.Buffer:F,gi=En.Symbol,di=En.Uint8Array,yi=vi?vi.f:F,bi=U(ni.getPrototypeOf,ni),xi=ni.create,ji=ii.propertyIsEnumerable,wi=ui.splice,mi=gi?gi.isConcatSpreadable:F,Ai=gi?gi.iterator:F,ki=gi?gi.toStringTag:F,Ei=function(){\ntry{var n=Ae(ni,\"defineProperty\");return n({},\"\",{}),n}catch(n){}}(),Oi=En.clearTimeout!==Zn.clearTimeout&&En.clearTimeout,Si=Ju&&Ju.now!==Zn.Date.now&&Ju.now,Ii=En.setTimeout!==Zn.setTimeout&&En.setTimeout,Ri=Xu.ceil,zi=Xu.floor,Wi=ni.getOwnPropertySymbols,Bi=vi?vi.isBuffer:F,Li=En.isFinite,Ui=ui.join,Ci=U(ni.keys,ni),Di=Xu.max,Mi=Xu.min,Ti=Ju.now,$i=En.parseInt,Fi=Xu.random,Ni=ui.reverse,Pi=Ae(En,\"DataView\"),Zi=Ae(En,\"Map\"),qi=Ae(En,\"Promise\"),Vi=Ae(En,\"Set\"),Ki=Ae(En,\"WeakMap\"),Gi=Ae(ni,\"create\"),Hi=Ki&&new Ki,Ji={},Yi=Fe(Pi),Qi=Fe(Zi),Xi=Fe(qi),no=Fe(Vi),to=Fe(Ki),ro=gi?gi.prototype:F,eo=ro?ro.valueOf:F,uo=ro?ro.toString:F,io=function(){\nfunction n(){}return function(t){return bu(t)?xi?xi(t):(n.prototype=t,t=new n,n.prototype=F,t):{}}}();On.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:\"\",imports:{_:On}},On.prototype=Sn.prototype,On.prototype.constructor=On,zn.prototype=io(Sn.prototype),zn.prototype.constructor=zn,Mn.prototype=io(Sn.prototype),Mn.prototype.constructor=Mn,Tn.prototype.clear=function(){this.__data__=Gi?Gi(null):{},this.size=0},Tn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Tn.prototype.get=function(n){var t=this.__data__;return Gi?(n=t[n],\"__lodash_hash_undefined__\"===n?F:n):ci.call(t,n)?t[n]:F},Tn.prototype.has=function(n){var t=this.__data__;return Gi?t[n]!==F:ci.call(t,n)},Tn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Gi&&t===F?\"__lodash_hash_undefined__\":t,this},Nn.prototype.clear=function(){this.__data__=[],this.size=0},Nn.prototype.delete=function(n){var t=this.__data__;return n=lt(t,n),!(0>n)&&(n==t.length-1?t.pop():wi.call(t,n,1),\n--this.size,true)},Nn.prototype.get=function(n){var t=this.__data__;return n=lt(t,n),0>n?F:t[n][1]},Nn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Pn.prototype.clear=function(){this.size=0,this.__data__={hash:new Tn,map:new(Zi||Nn),string:new Tn}},Pn.prototype.delete=function(n){return n=we(this,n).delete(n),this.size-=n?1:0,n},Pn.prototype.get=function(n){return we(this,n).get(n);\n},Pn.prototype.has=function(n){return we(this,n).has(n)},Pn.prototype.set=function(n,t){var r=we(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},qn.prototype.add=qn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},qn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.clear=function(){this.__data__=new Nn,this.size=0},Vn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Vn.prototype.get=function(n){\nreturn this.__data__.get(n)},Vn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Nn){var e=r.__data__;if(!Zi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Pn(e)}return r.set(n,t),this.size=r.size,this};var oo=Zr(Et),fo=Zr(Ot,true),co=qr(),ao=qr(true),lo=Hi?function(n,t){return Hi.set(n,t),n}:Nu,so=Ei?function(n,t){return Ei(n,\"toString\",{configurable:true,enumerable:false,value:Fu(t),writable:true})}:Nu,ho=Oi||function(n){\nreturn Zn.clearTimeout(n)},po=Vi&&1/D(new Vi([,-0]))[1]==N?function(n){return new Vi(n)}:qu,_o=Hi?function(n){return Hi.get(n)}:qu,vo=Wi?function(n){return null==n?[]:(n=ni(n),f(Wi(n),function(t){return ji.call(n,t)}))}:Ku,go=Wi?function(n){for(var t=[];n;)s(t,vo(n)),n=bi(n);return t}:Ku,yo=zt;(Pi&&\"[object DataView]\"!=yo(new Pi(new ArrayBuffer(1)))||Zi&&\"[object Map]\"!=yo(new Zi)||qi&&\"[object Promise]\"!=yo(qi.resolve())||Vi&&\"[object Set]\"!=yo(new Vi)||Ki&&\"[object WeakMap]\"!=yo(new Ki))&&(yo=function(n){\nvar t=zt(n);if(n=(n=\"[object Object]\"==t?n.constructor:F)?Fe(n):\"\")switch(n){case Yi:return\"[object DataView]\";case Qi:return\"[object Map]\";case Xi:return\"[object Promise]\";case no:return\"[object Set]\";case to:return\"[object WeakMap]\"}return t});var bo=oi?gu:Gu,xo=Me(lo),jo=Ii||function(n,t){return Zn.setTimeout(n,t)},wo=Me(so),mo=function(n){n=lu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return en.test(n)&&t.push(\"\"),n.replace(un,function(n,r,e,u){\nt.push(e?u.replace(vn,\"$1\"):r||n)}),t}),Ao=lr(function(n,t){return _u(n)?jt(n,kt(t,1,_u,true)):[]}),ko=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),je(r,2)):[]}),Eo=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),F,r):[]}),Oo=lr(function(n){var t=l(n,Sr);return t.length&&t[0]===n[0]?Ut(t):[]}),So=lr(function(n){var t=Ge(n),r=l(n,Sr);return t===Ge(r)?t=F:r.pop(),r.length&&r[0]===n[0]?Ut(r,je(t,2)):[]}),Io=lr(function(n){var t=Ge(n),r=l(n,Sr);return(t=typeof t==\"function\"?t:F)&&r.pop(),\nr.length&&r[0]===n[0]?Ut(r,F,t):[]}),Ro=lr(He),zo=ge(function(n,t){var r=null==n?0:n.length,e=vt(n,t);return fr(n,l(t,function(n){return Re(n,r)?+n:n}).sort(Ur)),e}),Wo=lr(function(n){return wr(kt(n,1,_u,true))}),Bo=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),wr(kt(n,1,_u,true),je(t,2))}),Lo=lr(function(n){var t=Ge(n),t=typeof t==\"function\"?t:F;return wr(kt(n,1,_u,true),F,t)}),Uo=lr(function(n,t){return _u(n)?jt(n,t):[]}),Co=lr(function(n){return Er(f(n,_u))}),Do=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),\nEr(f(n,_u),je(t,2))}),Mo=lr(function(n){var t=Ge(n),t=typeof t==\"function\"?t:F;return Er(f(n,_u),F,t)}),To=lr(Ye),$o=lr(function(n){var t=n.length,t=1=t}),cf=Mt(function(){return arguments}())?Mt:function(n){return xu(n)&&ci.call(n,\"callee\")&&!ji.call(n,\"callee\")},af=Hu.isArray,lf=Hn?S(Hn):Tt,sf=Bi||Gu,hf=Jn?S(Jn):$t,pf=Yn?S(Yn):Nt,_f=Qn?S(Qn):qt,vf=Xn?S(Xn):Vt,gf=nt?S(nt):Kt,df=oe(Jt),yf=oe(function(n,t){return n<=t}),bf=Pr(function(n,t){\nif(Le(t)||pu(t))Tr(t,Lu(t),n);else for(var r in t)ci.call(t,r)&&at(n,r,t[r])}),xf=Pr(function(n,t){Tr(t,Uu(t),n)}),jf=Pr(function(n,t,r,e){Tr(t,Uu(t),n,e)}),wf=Pr(function(n,t,r,e){Tr(t,Lu(t),n,e)}),mf=ge(vt),Af=lr(function(n){return n.push(F,se),r(jf,F,n)}),kf=lr(function(n){return n.push(F,he),r(Rf,F,n)}),Ef=ne(function(n,t,r){n[t]=r},Fu(Nu)),Of=ne(function(n,t,r){ci.call(n,t)?n[t].push(r):n[t]=[r]},je),Sf=lr(Dt),If=Pr(function(n,t,r){nr(n,t,r)}),Rf=Pr(function(n,t,r,e){nr(n,t,r,e)}),zf=ge(function(n,t){\nvar r={};if(null==n)return r;var e=false;t=l(t,function(t){return t=Rr(t,n),e||(e=1--n)return t.apply(this,arguments)}},On.ary=iu,On.assign=bf,On.assignIn=xf,On.assignInWith=jf,On.assignWith=wf,On.at=mf,On.before=ou,On.bind=Yo,On.bindAll=Zf,On.bindKey=Qo,On.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return af(n)?n:[n]},\nOn.chain=Xe,On.chunk=function(n,t,r){if(t=(r?ze(n,t,r):t===F)?1:Di(Ou(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Hu(Ri(r/t));et?0:t,e)):[]},On.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0,0>t?0:t)):[]},On.dropRightWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true,true):[]},On.dropWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true):[]},On.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&ze(n,t,r)&&(r=0,e=u),u=n.length,r=Ou(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:Ou(e),0>e&&(e+=u),e=r>e?0:Su(e);r>>0,r?(n=zu(n))&&(typeof t==\"string\"||null!=t&&!_f(t))&&(t=jr(t),\n!t&&Bn.test(n))?zr($(n),0,r):n.split(t,r):[]},On.spread=function(n,t){if(typeof n!=\"function\")throw new ei(\"Expected a function\");return t=null==t?0:Di(Ou(t),0),lr(function(e){var u=e[t];return e=zr(e,0,t),u&&s(e,u),r(n,this,e)})},On.tail=function(n){var t=null==n?0:n.length;return t?vr(n,1,t):[]},On.take=function(n,t,r){return n&&n.length?(t=r||t===F?1:Ou(t),vr(n,0,0>t?0:t)):[]},On.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0>t?0:t,e)):[]},On.takeRightWhile=function(n,t){\nreturn n&&n.length?Ar(n,je(t,3),false,true):[]},On.takeWhile=function(n,t){return n&&n.length?Ar(n,je(t,3)):[]},On.tap=function(n,t){return t(n),n},On.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ei(\"Expected a function\");return bu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),au(n,t,{leading:e,maxWait:t,trailing:u})},On.thru=nu,On.toArray=ku,On.toPairs=Bf,On.toPairsIn=Lf,On.toPath=function(n){return af(n)?l(n,$e):Au(n)?[n]:Mr(mo(zu(n)))},On.toPlainObject=Ru,\nOn.transform=function(n,t,r){var e=af(n),i=e||sf(n)||gf(n);if(t=je(t,4),null==r){var o=n&&n.constructor;r=i?e?new o:[]:bu(n)&&gu(o)?io(bi(n)):{}}return(i?u:Et)(n,function(n,e,u){return t(r,n,e,u)}),r},On.unary=function(n){return iu(n,1)},On.union=Wo,On.unionBy=Bo,On.unionWith=Lo,On.uniq=function(n){return n&&n.length?wr(n):[]},On.uniqBy=function(n,t){return n&&n.length?wr(n,je(t,2)):[]},On.uniqWith=function(n,t){return t=typeof t==\"function\"?t:F,n&&n.length?wr(n,F,t):[]},On.unset=function(n,t){return null==n||mr(n,t);\n},On.unzip=Ye,On.unzipWith=Qe,On.update=function(n,t,r){return null==n?n:pr(n,t,Ir(r)(It(n,t)),void 0)},On.updateWith=function(n,t,r,e){return e=typeof e==\"function\"?e:F,null!=n&&(n=pr(n,t,Ir(r)(It(n,t)),e)),n},On.values=Du,On.valuesIn=function(n){return null==n?[]:I(n,Uu(n))},On.without=Uo,On.words=$u,On.wrap=function(n,t){return rf(Ir(t),n)},On.xor=Co,On.xorBy=Do,On.xorWith=Mo,On.zip=To,On.zipObject=function(n,t){return Or(n||[],t||[],at)},On.zipObjectDeep=function(n,t){return Or(n||[],t||[],pr);\n},On.zipWith=$o,On.entries=Bf,On.entriesIn=Lf,On.extend=xf,On.extendWith=jf,Zu(On,On),On.add=nc,On.attempt=Pf,On.camelCase=Uf,On.capitalize=Mu,On.ceil=tc,On.clamp=function(n,t,r){return r===F&&(r=t,t=F),r!==F&&(r=Iu(r),r=r===r?r:0),t!==F&&(t=Iu(t),t=t===t?t:0),gt(Iu(n),t,r)},On.clone=function(n){return dt(n,4)},On.cloneDeep=function(n){return dt(n,5)},On.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:F,dt(n,5,t)},On.cloneWith=function(n,t){return t=typeof t==\"function\"?t:F,dt(n,4,t)},\nOn.conformsTo=function(n,t){return null==t||bt(n,t,Lu(t))},On.deburr=Tu,On.defaultTo=function(n,t){return null==n||n!==n?t:n},On.divide=rc,On.endsWith=function(n,t,r){n=zu(n),t=jr(t);var e=n.length,e=r=r===F?e:gt(Ou(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},On.eq=hu,On.escape=function(n){return(n=zu(n))&&Y.test(n)?n.replace(H,et):n},On.escapeRegExp=function(n){return(n=zu(n))&&fn.test(n)?n.replace(on,\"\\\\$&\"):n},On.every=function(n,t,r){var e=af(n)?o:wt;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3));\n},On.find=Po,On.findIndex=Ze,On.findKey=function(n,t){return v(n,je(t,3),Et)},On.findLast=Zo,On.findLastIndex=qe,On.findLastKey=function(n,t){return v(n,je(t,3),Ot)},On.floor=ec,On.forEach=ru,On.forEachRight=eu,On.forIn=function(n,t){return null==n?n:co(n,je(t,3),Uu)},On.forInRight=function(n,t){return null==n?n:ao(n,je(t,3),Uu)},On.forOwn=function(n,t){return n&&Et(n,je(t,3))},On.forOwnRight=function(n,t){return n&&Ot(n,je(t,3))},On.get=Wu,On.gt=of,On.gte=ff,On.has=function(n,t){return null!=n&&ke(n,t,Bt);\n},On.hasIn=Bu,On.head=Ke,On.identity=Nu,On.includes=function(n,t,r,e){return n=pu(n)?n:Du(n),r=r&&!e?Ou(r):0,e=n.length,0>r&&(r=Di(e+r,0)),mu(n)?r<=e&&-1r&&(r=Di(e+r,0)),d(n,t,r)):-1},On.inRange=function(n,t,r){return t=Eu(t),r===F?(r=t,t=0):r=Eu(r),n=Iu(n),n>=Mi(t,r)&&n=n},On.isSet=vf,On.isString=mu,On.isSymbol=Au,On.isTypedArray=gf,On.isUndefined=function(n){return n===F},On.isWeakMap=function(n){return xu(n)&&\"[object WeakMap]\"==yo(n)},On.isWeakSet=function(n){return xu(n)&&\"[object WeakSet]\"==zt(n)},On.join=function(n,t){\nreturn null==n?\"\":Ui.call(n,t)},On.kebabCase=Cf,On.last=Ge,On.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==F&&(u=Ou(r),u=0>u?Di(e+u,0):Mi(u,e-1)),t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=g(n,b,u,true);return n},On.lowerCase=Df,On.lowerFirst=Mf,On.lt=df,On.lte=yf,On.max=function(n){return n&&n.length?mt(n,Nu,Wt):F},On.maxBy=function(n,t){return n&&n.length?mt(n,je(t,2),Wt):F},On.mean=function(n){return x(n,Nu)},On.meanBy=function(n,t){return x(n,je(t,2))},On.min=function(n){\nreturn n&&n.length?mt(n,Nu,Jt):F},On.minBy=function(n,t){return n&&n.length?mt(n,je(t,2),Jt):F},On.stubArray=Ku,On.stubFalse=Gu,On.stubObject=function(){return{}},On.stubString=function(){return\"\"},On.stubTrue=function(){return true},On.multiply=uc,On.nth=function(n,t){return n&&n.length?tr(n,Ou(t)):F},On.noConflict=function(){return Zn._===this&&(Zn._=pi),this},On.noop=qu,On.now=Jo,On.pad=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return!t||e>=t?n:(t=(t-e)/2,ee(zi(t),r)+n+ee(Ri(t),r))},On.padEnd=function(n,t,r){\nn=zu(n);var e=(t=Ou(t))?T(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Fi(),Mi(n+r*(t-n+$n(\"1e-\"+((r+\"\").length-1))),t)):cr(n,t);\n},On.reduce=function(n,t,r){var e=af(n)?h:m,u=3>arguments.length;return e(n,je(t,4),r,u,oo)},On.reduceRight=function(n,t,r){var e=af(n)?p:m,u=3>arguments.length;return e(n,je(t,4),r,u,fo)},On.repeat=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),ar(zu(n),t)},On.replace=function(){var n=arguments,t=zu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},On.result=function(n,t,r){t=Rr(t,n);var e=-1,u=t.length;for(u||(u=1,n=F);++en||9007199254740991=i)return n;if(i=r-T(e),1>i)return e;\nif(r=o?zr(o,0,i).join(\"\"):n.slice(0,i),u===F)return r+e;if(o&&(i+=r.length-i),_f(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=ti(u.source,zu(dn.exec(u))+\"g\")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else n.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Mn.prototype[n+\"Right\"]=function(t){\nreturn this.reverse()[n](t).reverse()}}),u([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Mn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:je(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Mn.prototype[n]=function(){return this[r](1).value()[0]}}),u([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Mn.prototype[n]=function(){return this.__filtered__?new Mn(this):this[r](1);\n}}),Mn.prototype.compact=function(){return this.filter(Nu)},Mn.prototype.find=function(n){return this.filter(n).head()},Mn.prototype.findLast=function(n){return this.reverse().find(n)},Mn.prototype.invokeMap=lr(function(n,t){return typeof n==\"function\"?new Mn(this):this.map(function(r){return Dt(r,n,t)})}),Mn.prototype.reject=function(n){return this.filter(su(je(n)))},Mn.prototype.slice=function(n,t){n=Ou(n);var r=this;return r.__filtered__&&(0t)?new Mn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),\nt!==F&&(t=Ou(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Mn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Mn.prototype.toArray=function(){return this.take(4294967295)},Et(Mn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=On[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(On.prototype[t]=function(){function t(n){return n=u.apply(On,s([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Mn,a=f[0],l=c||af(o);\nl&&r&&typeof a==\"function\"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Mn(this),o=n.apply(o,f),o.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(o,h)):a&&c?n.apply(this,f):(o=this.thru(t),a?e?o.value()[0]:o.value():o)})}),u(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ui[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);On.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){\nvar u=this.value();return t.apply(af(u)?u:[],n)}return this[r](function(r){return t.apply(af(r)?r:[],n)})}}),Et(Mn.prototype,function(n,t){var r=On[t];if(r){var e=r.name+\"\";(Ji[e]||(Ji[e]=[])).push({name:t,func:r})}}),Ji[Xr(F,2).name]=[{name:\"wrapper\",func:F}],Mn.prototype.clone=function(){var n=new Mn(this.__wrapped__);return n.__actions__=Mr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Mr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Mr(this.__views__),\nn},Mn.prototype.reverse=function(){if(this.__filtered__){var n=new Mn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Mn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=af(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?F:this.__values__[this.__index__++]}},On.prototype.plant=function(n){for(var t,r=this;r instanceof Sn;){var e=Pe(r);e.__index__=0,e.__values__=F,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},On.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Mn?(this.__actions__.length&&(n=new Mn(this)),n=n.reverse(),n.__actions__.push({func:nu,args:[Je],thisArg:F}),new zn(n,this.__chain__)):this.thru(Je);\n},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return kr(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Ai&&(On.prototype[Ai]=tu),On}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?(Zn._=it, define(function(){return it})):Vn?((Vn.exports=it)._=it,qn._=it):Zn._=it}).call(this);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/lodash.min.js\n// module id = ./node_modules/lodash/lodash.min.js\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = ./node_modules/webpack/buildin/global.js\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = ./node_modules/webpack/buildin/module.js\n// module chunks = 0","import { compose, isEqual } from 'lodash/fp';\n\n/* eslint-disable no-underscore-dangle */\n// Accept the huron.js module for Huron development\nif (module.hot) {\n module.hot.accept();\n}\n\n/** Class for inserting HTML snippets at particular insertion points.\n * Uses require() to grab html partials, then inserts that html\n * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section,\n * and [huron-type] corresponding with the required KSS field\n */\nexport default class InsertNodes {\n\n constructor(modules, store) {\n /** webpack module list in which keys are relative require paths and values are the module contents */\n this._modules = modules;\n /** array of module keys */\n this._moduleIds = Object.keys(modules);\n /** reference to the huron config */\n this._config = null;\n /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */\n this._sections = null;\n /** Key/value pairs of partner data and template files */\n this._templates = null;\n /** array of prototypes */\n this._prototypes = null;\n /** array of valid huron placeholder types */\n this._types = null;\n /** array of CSS modules classnames */\n this._classNames = null;\n\n /** Cache for module metadata */\n this.meta = {};\n\n /** Reference to entire memory store */\n this.store = store;\n\n // Inits\n this.cycleModules();\n this.cycleStyleguide();\n }\n\n /**\n * Apply a modifier if one exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} data - subset of data object for supplied modifier\n */\n static applyModifier(data, modifier) {\n // If we have a modifier, use it, otherwise use the entire data set\n if (modifier && data && data[modifier]) {\n return Object.assign({}, data[modifier], { modifier });\n }\n\n return data;\n }\n\n /**\n * Get markup from any type of module (html, json or template)\n *\n * @param {string} content - String corresponding to markup\n * @return {object} el.firstElementChild - HTML module\n */\n static convertToElement(content) {\n const el = document.createElement('div');\n\n el.innerHTML = content;\n return el.firstElementChild;\n }\n\n /**\n * Filter module object by module key or module type\n *\n * @param {object} filter - Filter for modules. Options:\n * @param {string} filter.property - Which property to filter ('key' or 'type')\n * @param {array} filter.values - Values for property\n * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude)\n * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs\n * @return {bool} match - determine if modules need to be filtered\n */\n static filterModules(filter, moduleMeta) {\n let match = true;\n\n // Check if we should filter out any modules\n if (\n 'object' === typeof filter &&\n {}.hasOwnProperty.call(filter, 'property') &&\n {}.hasOwnProperty.call(filter, 'values') &&\n {}.hasOwnProperty.call(filter, 'include')\n ) {\n match = filter.values.filter(\n (value) => moduleMeta[filter.property] === value\n );\n return Boolean(match.length) === filter.include;\n }\n\n console.log(` // eslint-disable-line no-console\n filter ${filter} is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n `);\n\n return match;\n }\n\n /**\n * Retrieve a data attribute from a tag using one of two methods\n *\n * @param {HTMLElement} tag - DOM node on which to check for a data attribute\n * @param {string} attr - attribute to check for\n * @returns {string} data - contents of data attribute\n */\n static getDataAttribute(tag, attr) {\n let data = false;\n\n // Check if element has dataset and, if so, use it\n if (tag.dataset) {\n data = tag.dataset[attr];\n }\n\n // Fallback to getAttribute for ugly old Safari\n if (!data && tag.getAttribute) {\n data = tag.getAttribute(`data-${attr}`);\n }\n\n return data;\n }\n\n /**\n * Check if this tag is a styleguide helper\n *\n * @param {object} tag - tag to check\n * @param {object} meta - module metadata\n * @return {bool}\n */\n static isSectionHelper(tag, meta) {\n if ('prototype' === meta.type) {\n return tag.hasAttribute('huron-sections') ||\n tag.hasAttribute('huron-menu');\n }\n\n return false;\n }\n\n /**\n * Replace all template markers with the actual template markup.\n *\n * @param {string} context - The within which to replace markup\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n cycleModules(context = false, filter = false) {\n let moduleList = {};\n let elementList = context;\n\n // We're replacing top-level elements\n if (!elementList) {\n this.regenCache();\n\n // Find all top-level huron placeholders\n elementList = [...document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n )];\n }\n\n moduleList = this.getModuleListFromTags(elementList);\n\n // Loop through modules array\n Object.keys(moduleList).forEach((key) => {\n const module = this._modules[key];\n const replaceElements = moduleList[key];\n\n this.loadModule(key, module, replaceElements, true, filter);\n });\n }\n\n /**\n * Helper for reloading sections only\n */\n cycleSections() {\n this.cycleModules(false, {\n property: 'type',\n values: ['section'],\n include: true,\n });\n }\n\n /**\n * Reload styleguide sections and menu helpers\n */\n cycleStyleguide() {\n const sectionsQuery = document.querySelector('[huron-sections]');\n const menuQuery = document.querySelector('[huron-menu]');\n\n // Sections\n if (sectionsQuery) {\n sectionsQuery.innerHTML = '';\n this.outputSections(null, sectionsQuery);\n this.cycleSections();\n }\n\n // Menu\n if (menuQuery) {\n menuQuery.innerHTML = '';\n\n if (null === document.querySelector('.section-menu__expand')) {\n const menuTrigger = document.createElement('button');\n\n menuTrigger.classList.add('section-menu__expand');\n menuTrigger.innerHTML = 'Sections Menu';\n document.body.insertBefore(\n menuQuery.appendChild(menuTrigger),\n document.body.childNodes[0]\n );\n\n // Add menu trigger handler\n menuTrigger.addEventListener('click', () => {\n document.body.classList.toggle('section-menu-open');\n });\n }\n\n // Create menu\n this.outputMenu(null, menuQuery);\n }\n }\n\n /**\n * Generate a unique key for targeting markup replacement\n *\n * @param {string} key - module key (webpack require path) to convert into a replacement key\n * @return {string} key - generated replacement key\n */\n generateModuleReplaceKey(key) {\n let currentKey = key;\n\n // If this is section data, use the section template path\n if (key.includes('-section.json')) {\n currentKey = this._sectionTemplatePath;\n // If updated module is a json file, use template key instead\n } else if (key.includes('.json')) {\n currentKey = this._templates[key];\n }\n\n return `_${currentKey.replace(/[/.]/g, '_')}`;\n }\n\n /**\n * Get module metadata from a module require path\n *\n * @param {string} key - Module require path\n * @return {object} containing module id, module type, key and the module contents\n */\n getMetaFromPath(key, module) {\n const sections = this._sections.sectionsByPath;\n const templateTypes = this._types.filter((type) => 'prototype' !== type);\n let id = false;\n let type = false;\n\n /* eslint-disable space-unary-ops */\n if (-1 !== key.indexOf('./prototypes')) {\n /* eslint-enable space-unary-ops */\n const prototype = Object.keys(this._prototypes)\n .filter((name) => this._prototypes[name] === key);\n\n if (prototype.length) {\n id = prototype[0];\n type = 'prototype';\n }\n } else if (key === this._sectionTemplatePath) {\n id = 'sections-template';\n type = 'sections-template';\n } else {\n let testTypes = [];\n const testSections = Object.keys(sections).filter((section) => {\n const tempTypes = templateTypes.filter(\n (currentType) => sections[section][`${currentType}Path`] === key\n );\n\n if (tempTypes.length) {\n testTypes = tempTypes;\n return true;\n }\n\n return false;\n });\n\n if (\n testSections &&\n testSections.length &&\n testTypes &&\n testTypes.length\n ) {\n id = sections[testSections[0]].referenceURI;\n type = testTypes[0];\n }\n }\n\n if (id && type) {\n const renderData = this.getModuleRender(type, key, module);\n const replaceKey = this.generateModuleReplaceKey(key);\n\n if (renderData) {\n return Object.assign({ id, type, key, replaceKey, module }, renderData);\n }\n }\n\n console.warn( // eslint-disable-line no-console\n `Module '${key}' does not exist on the page\n or is no longer in use`\n );\n return false;\n }\n\n /**\n * Check if a tag is a huron placeholder and, if so,\n * return its associated module key\n *\n * @param {object} tag - tag to check\n * @return {bool} associated module key\n */\n getModuleKeyFromTag(tag) {\n // Safari/webkit has some trouble parsing dataset in certain cases.\n // This is a fallback method of accessing the same data.\n const type = InsertNodes.getDataAttribute(tag, 'huron-type');\n const id = InsertNodes.getDataAttribute(tag, 'huron-id');\n const section = this._sections.sectionsByURI[id];\n\n if (id && type) {\n if (section) {\n return section[`${type}Path`];\n } else if ('prototype' === type) {\n return this._prototypes[id];\n }\n }\n\n return false;\n }\n\n /**\n * Check if an array of elements contains a Huron placeholder\n *\n * @param {array} tags - array of DOM nodes\n * @param {bool} recurse - should we recurse this function with a new array\n * @return {object} moduleList - Huron placeholder DOM node\n */\n getModuleListFromTags(elements, recurse = true) {\n const moduleList = {};\n let newList = {};\n\n if (elements && elements.length) {\n elements.forEach((element) => {\n const moduleKey = this.getModuleKeyFromTag(element);\n\n if (moduleKey) {\n if (!moduleList[moduleKey]) {\n moduleList[moduleKey] = [];\n }\n moduleList[moduleKey].push(element);\n } else if (recurse) {\n newList = this.getModuleListFromTags(\n [...element.querySelectorAll('[data-huron-id][data-huron-type]')],\n false\n );\n\n Object.keys(newList).forEach((key) => {\n moduleList[key] = moduleList[key] ?\n moduleList[key].concat(newList[key]) :\n newList[key];\n });\n }\n });\n }\n\n return moduleList;\n }\n\n /**\n * Transform every module into a predictable object\n *\n * @param {object} type - Module metadata\n * @param {mixed} module - Module contents\n * @return {object} containing render function, render data and module id\n */\n getModuleRender(type, key, module) {\n let render = false;\n let data = false;\n\n if ('template' === type && 'function' === typeof module) {\n // It's a render function for a template\n render = module;\n data = this._modules[this._templates[key]];\n } else if (\n 'sections-template' === type &&\n 'function' === typeof module\n ) {\n // It's a kss section template\n render = module;\n } else if (\n 'section' === type &&\n 'object' === typeof module\n ) {\n // It's section data\n render = this._modules[this._sectionTemplatePath];\n data = module;\n } else if (\n ('template' === type || 'description' === type || 'prototype' === type) &&\n 'string' === typeof module\n ) {\n // it's straight HTML\n render = () => module;\n } else if ('data' === type && 'object' === typeof module) {\n // It's a data file (.json)\n render = this._modules[this._templates[key]];\n data = module;\n }\n\n // Only need render, as data will be left empty for static HTML\n if (render) {\n return { render, data };\n }\n\n return false;\n }\n\n /**\n * Replace all sections. For hot reloading use when the section template has changed.\n *\n * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace\n * @param {string} key - Module require path\n * @param {mixed} module - Module contents\n * @param {bool} cached - Whether or not to use cached values for module replacement\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n loadModule(key, module, replaceElements, cached = false, filter = false) {\n let shouldLoad = true;\n let moduleMeta = false;\n\n // Check if we should load from internal module metadata cache\n if (cached) {\n moduleMeta = this.meta[key];\n } else {\n moduleMeta = this.meta[key] = this.getMetaFromPath(key, module);\n }\n\n if (moduleMeta) {\n if (filter) {\n shouldLoad = InsertNodes.filterModules(filter, moduleMeta);\n }\n\n if (shouldLoad) {\n this.replaceTemplate(moduleMeta, replaceElements);\n }\n }\n }\n\n /*\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
      to be used as a menu for each section\n */\n outputMenu(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let newEl = el;\n\n Object.keys(sections).forEach((section) => {\n const hasSubmenu = Object.keys(sections[section]).length;\n let menuTarget;\n let nextMenu;\n\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n }\n\n if (newEl) {\n const title = this._sections\n .sectionsByURI[templateId] ?\n this._sections\n .sectionsByURI[templateId]\n .header :\n templateId;\n const sectionMenu = document.createElement('ul');\n const menuItem = document.createElement('li');\n const link = `${title}`;\n\n sectionMenu.classList.add('section-menu');\n menuItem.classList.add('section-menu__item');\n menuItem.innerHTML = link;\n\n // Check if this is a UL and, if not, create one\n if ('UL' !== newEl.tagName) {\n menuTarget = sectionMenu.cloneNode();\n newEl.appendChild(menuTarget);\n newEl = menuTarget;\n }\n\n // Has subsections\n if (hasSubmenu) {\n nextMenu = sectionMenu.cloneNode();\n nextMenu.classList.add('section-menu--submenu');\n menuItem.classList.add('section-menu__item--has-submenu');\n menuItem.appendChild(nextMenu);\n }\n\n newEl.appendChild(menuItem);\n\n if (hasSubmenu) {\n this.outputMenu(\n templateId,\n nextMenu,\n sections[section]\n );\n }\n }\n });\n }\n\n /**\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
      tag with [huron-id] equal to the section template name.\n */\n outputSections(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let placeholder = null;\n\n Object.keys(sections).forEach((section) => {\n let istopLevel = false;\n let topLevelWrapper = null;\n let topLevelSection = null;\n let insertionEl = el;\n\n // Generate section ID and check if it is top-level\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n istopLevel = true;\n }\n\n if (el) {\n // Generate huron placeholder for this section\n placeholder = document.createElement('div');\n placeholder.dataset.huronId = templateId;\n placeholder.dataset.huronType = 'section';\n\n if (istopLevel) {\n // Generate wrapper to contain top-level section and all subsections underneath it\n topLevelWrapper = document.createElement('div');\n topLevelWrapper.classList.add('section--top-level__wrapper');\n\n // Generate wrapper for top-level section\n topLevelSection = document.createElement('div');\n topLevelSection.classList.add('section', 'section--top-level');\n\n // Append wrappers to huron-sections element\n topLevelSection.appendChild(placeholder);\n topLevelWrapper.appendChild(topLevelSection);\n el.appendChild(topLevelWrapper);\n insertionEl = topLevelWrapper;\n } else {\n // If this is not top-level, append placeholder\n el.appendChild(placeholder);\n }\n }\n\n // Recursively call this function to insert other sections\n if (Object.keys(sections[section]).length && placeholder) {\n this.outputSections(\n templateId,\n insertionEl,\n sections[section]\n );\n }\n });\n }\n\n /**\n * Apply a modifier and merge classnames into template data, if it exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} rendered - the modified HTML module\n */\n provideClassnames(data) {\n if (this._classNames) {\n return Object.assign({}, data, { classNames: this._classNames });\n }\n\n return data;\n }\n\n /**\n * Regenerate module meta cache\n */\n regenCache() {\n Object.keys(this._modules).forEach((moduleKey) => {\n this.meta[moduleKey] = this.getMetaFromPath(\n moduleKey, this._modules[moduleKey]\n );\n });\n }\n\n /**\n * Recursively remove old tags\n *\n * @param {string} replaceKey - key of module for which we need to remove old tags\n * @param {object} tag - tag to start our search with\n * (usually the tag immediately preceding the current placeholder)\n */\n removeOldTags(replaceKey, tag) {\n if (tag) {\n const parentModule = InsertNodes.getDataAttribute(tag, 'parent-module');\n const selfModule = InsertNodes.getDataAttribute(tag, 'self-module');\n\n if (parentModule === replaceKey && selfModule !== replaceKey) {\n // This is a child of the current module,\n // so remove it and its children (if applicable)\n const childrenModule = selfModule;\n let nextTag = tag.previousSibling;\n\n if (childrenModule) {\n this.removeOldTags(childrenModule, nextTag);\n // Reset nextTag if we removed a child\n nextTag = tag.previousSibling;\n }\n\n tag.parentNode.removeChild(tag);\n this.removeOldTags(replaceKey, nextTag);\n }\n }\n }\n\n /**\n * Replace a single template marker with template content.\n *\n * @param {object} replaceElements - Array of elements to check for Huron placeholders\n * @param {object} meta - Module metadata\n */\n replaceTemplate(meta, replaceElements) {\n const type = this.validateType(meta.type);\n const tags = [];\n let replace = replaceElements;\n let hasStyleguideHelpers = false;\n\n if (!replace) {\n replace = document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n );\n }\n\n if (type) {\n replace.forEach((tag) => {\n const tagType = InsertNodes.getDataAttribute(tag, 'huron-type');\n const tagId = InsertNodes.getDataAttribute(tag, 'huron-id');\n\n if (tagId === meta.id && tagType === type) {\n tags.push(tag);\n }\n });\n\n if (tags && tags.length && meta.render) {\n tags.forEach((currentTag) => {\n const modifiedPlaceholder = currentTag;\n const modifier = InsertNodes\n .getDataAttribute(modifiedPlaceholder, 'huron-modifier');\n const parent = modifiedPlaceholder.parentNode;\n const data = compose(\n this.provideClassnames.bind(this),\n InsertNodes.applyModifier\n )(meta.data, modifier);\n const rendered = meta.render(data);\n const renderedTemplate = InsertNodes.convertToElement(rendered)\n .querySelector('template');\n let renderedContents = null;\n\n // Remove existing module tags\n this.removeOldTags(\n meta.replaceKey,\n modifiedPlaceholder.previousSibling\n );\n\n // Get the contents of the rendered template\n renderedContents = [\n ...renderedTemplate.content.children,\n ];\n\n // Insert each tag of the template contents before placeholder\n renderedContents.forEach((element) => {\n const newEl = element;\n\n if (1 === newEl.nodeType) {\n newEl.dataset.parentModule = meta.replaceKey;\n hasStyleguideHelpers = !hasStyleguideHelpers ?\n InsertNodes.isSectionHelper(newEl, meta) :\n hasStyleguideHelpers;\n\n parent.insertBefore(newEl, modifiedPlaceholder);\n }\n });\n\n // Add module replacement key to this placeholder\n modifiedPlaceholder.dataset.selfModule = meta.replaceKey;\n\n // Hide the placeholder\n modifiedPlaceholder.style.display = 'none';\n\n // Recursively load modules, excluding the current one\n this.cycleModules(renderedContents, {\n property: 'key',\n values: [meta.key, this._sectionTemplatePath],\n include: false,\n });\n\n if (hasStyleguideHelpers) {\n this.cycleStyleguide();\n }\n });\n }\n } else {\n console.warn( // eslint-disable-line no-console\n `Could not render module\n section: ${meta.id}\n type: ${meta.type}`\n );\n }\n }\n\n /**\n * Verify specified element is using an acceptable huron type\n *\n * @param {string} type - type of partial (template, data, description, section or prototype )\n * @return {string} type - huron type or 'template' if invalid\n */\n validateType(type) {\n if ('data' === type) {\n return 'template';\n }\n\n if (!this._types.includes(type)) {\n return false;\n }\n\n return type;\n }\n\n /*\n * Set new modules object\n */\n set modules(modules) {\n this._modules = modules;\n this._moduleIds = Object.keys(modules);\n }\n\n /*\n * Set store\n */\n set store(store) {\n this._store = store;\n this._config = store.config;\n this._sections = store.sections;\n this._templates = store.templates;\n this._prototypes = store.prototypes;\n this._types = store.types;\n this._sectionTemplatePath = store.sectionTemplatePath;\n\n // Completely rerender prototype if any CSS modules classnames change\n if (!isEqual(this._classNames, store.classNames)) {\n const isInitialRender = !this._classNames;\n this._classNames = store.classNames;\n\n // Only rerender after initial render (when classnames is not falsy)\n if (!isInitialRender) {\n this.cycleModules();\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// src/web/index.js"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChEA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/WA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrBA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAKA;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAuGA;;;;;;AAMA;AAAA;AACA;AADA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AASA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAKA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAxtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAMA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;AApIA;;;;;;;;;;;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap","webpack://huron/./node_modules/lodash/lodash.min.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\\s\\S]+?)%>/g,Y=/<%([\\s\\S]+?)%>/g,Q=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,nn=/^\\w*$/,tn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,rn=/[\\\\^$.*+?()[\\]{}|]/g,en=RegExp(rn.source),un=/^\\s+|\\s+$/g,on=/^\\s+/,fn=/\\s+$/,cn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,an=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ln=/,? & /,sn=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,hn=/\\\\(\\\\)?/g,pn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,_n=/\\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\\[object .+?Constructor\\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\\d*)$/,xn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,jn=/($^)/,wn=/['\\n\\r\\u2028\\u2029\\\\]/g,mn=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",An=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+mn,En=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",kn=RegExp(\"['\\u2019]\",\"g\"),Sn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),On=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+En+mn,\"g\"),In=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])|\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])|\\\\d+\",An].join(\"|\"),\"g\"),Rn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Bn={};\nBn[\"[object Float32Array]\"]=Bn[\"[object Float64Array]\"]=Bn[\"[object Int8Array]\"]=Bn[\"[object Int16Array]\"]=Bn[\"[object Int32Array]\"]=Bn[\"[object Uint8Array]\"]=Bn[\"[object Uint8ClampedArray]\"]=Bn[\"[object Uint16Array]\"]=Bn[\"[object Uint32Array]\"]=true,Bn[\"[object Arguments]\"]=Bn[\"[object Array]\"]=Bn[\"[object ArrayBuffer]\"]=Bn[\"[object Boolean]\"]=Bn[\"[object DataView]\"]=Bn[\"[object Date]\"]=Bn[\"[object Error]\"]=Bn[\"[object Function]\"]=Bn[\"[object Map]\"]=Bn[\"[object Number]\"]=Bn[\"[object Object]\"]=Bn[\"[object RegExp]\"]=Bn[\"[object Set]\"]=Bn[\"[object String]\"]=Bn[\"[object WeakMap]\"]=false;\nvar Ln={};Ln[\"[object Arguments]\"]=Ln[\"[object Array]\"]=Ln[\"[object ArrayBuffer]\"]=Ln[\"[object DataView]\"]=Ln[\"[object Boolean]\"]=Ln[\"[object Date]\"]=Ln[\"[object Float32Array]\"]=Ln[\"[object Float64Array]\"]=Ln[\"[object Int8Array]\"]=Ln[\"[object Int16Array]\"]=Ln[\"[object Int32Array]\"]=Ln[\"[object Map]\"]=Ln[\"[object Number]\"]=Ln[\"[object Object]\"]=Ln[\"[object RegExp]\"]=Ln[\"[object Set]\"]=Ln[\"[object String]\"]=Ln[\"[object Symbol]\"]=Ln[\"[object Uint8Array]\"]=Ln[\"[object Uint8ClampedArray]\"]=Ln[\"[object Uint16Array]\"]=Ln[\"[object Uint32Array]\"]=true,\nLn[\"[object Error]\"]=Ln[\"[object Function]\"]=Ln[\"[object WeakMap]\"]=false;var Un={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Cn=parseFloat,Dn=parseInt,Mn=typeof global==\"object\"&&global&&global.Object===Object&&global,Tn=typeof self==\"object\"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function(\"return this\")(),Fn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){\ntry{var n=Nn&&Nn.f&&Nn.f(\"util\").types;return n?n:Zn&&Zn.binding&&Zn.binding(\"util\")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b(\"length\"),Xn=x({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\n\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\n\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\n\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\n\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\n\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),nt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),tt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,\"__wrapped__\"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,\nthis.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(cf(n))return Ir(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),\ni=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!=\"function\")throw new ni(\"Expected a function\");\nreturn yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),\nl[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&\"[object Arguments]\"==Ot(n)}function Ct(n){\nreturn du(n)&&\"[object ArrayBuffer]\"==Ot(n)}function Dt(n){return du(n)&&\"[object Date]\"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?\"[object Array]\":_o(n),c=o?\"[object Array]\":_o(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{\nif(!(1&r)&&(i=a&&ii.call(n,\"__wrapped__\"),f=o&&ii.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),\nn=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),\nt}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),\no-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(\"\"):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){\nreturn n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){\nreturn t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!=\"function\")throw new ni(\"Expected a function\");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,\nn}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),\ns}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Li(ku(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ni(\"Expected a function\");\nreturn r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!=\"function\")throw new ni(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!bu(n);\n}function pu(n){return!!gu(n)&&(n=Ot(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function _u(n){return typeof n==\"number\"&&n==Au(n)}function vu(n){return typeof n==\"number\"&&-1=n}function gu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function du(n){return null!=n&&typeof n==\"object\"}function yu(n){return typeof n==\"number\"||du(n)&&\"[object Number]\"==Ot(n)}function bu(n){return!(!du(n)||\"[object Object]\"!=Ot(n))&&(n=gi(n),\nnull===n||(n=ii.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n==\"string\"||!of(n)&&du(n)&&\"[object String]\"==Ot(n)}function ju(n){return typeof n==\"symbol\"||du(n)&&\"[object Symbol]\"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),(\"[object Map]\"==t?W:\"[object Set]\"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),\nn===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n==\"number\")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=gu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;n=n.replace(un,\"\");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?\"\":yr(n);\n}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));\n}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,\"\")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n==\"function\"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&\"chain\"in e&&!e.chain),f=pu(n);return r(i,function(r){\nvar e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn[\"__core-js_shared__\"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){\nvar n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu(\"^\"+ui.call(ii).replace(rn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,\"defineProperty\");\nreturn n({},\"\",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,\"DataView\"),Fi=je(mn,\"Map\"),Ni=je(mn,\"Promise\"),Pi=je(mn,\"Set\"),Zi=je(mn,\"WeakMap\"),qi=je(Yu,\"create\"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){\nfunction n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:\"\",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],\"__lodash_hash_undefined__\"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?\"__lodash_hash_undefined__\":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),\n--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);\n},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){\nreturn this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,\"toString\",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){\nreturn $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&\"[object DataView]\"!=_o(new $i(new ArrayBuffer(1)))||Fi&&\"[object Map]\"!=_o(new Fi)||Ni&&\"[object Promise]\"!=_o(Ni.resolve())||Pi&&\"[object Set]\"!=_o(new Pi)||Zi&&\"[object WeakMap]\"!=_o(new Zi))&&(_o=function(n){\nvar t=Ot(n);if(n=(n=\"[object Object]\"==t?n.constructor:T)?Me(n):\"\")switch(n){case Gi:return\"[object DataView]\";case Hi:return\"[object Map]\";case Ji:return\"[object Promise]\";case Yi:return\"[object Set]\";case Qi:return\"[object WeakMap]\"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(tn,function(n,r,e,u){\nt.push(e?u.replace(hn,\"$1\"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t==\"function\"?t:T)&&r.pop(),\nr.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),\nmr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,\"callee\")&&!yi.call(n,\"callee\")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){\nif(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];\n},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t==\"string\"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!=\"function\")throw new ni(\"Expected a function\");return r=null==r?0:Li(Au(r),0),\nfr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),\nn},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return gu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};\n}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t==\"function\"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){\nreturn e=typeof e==\"function\"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,\nAn.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){\nn=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,\"\\\\$&\"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);\n},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&\"[object WeakMap]\"==_o(n)},An.isWeakSet=function(n){return du(n)&&\"[object WeakSet]\"==Ot(n)},An.join=function(n,t){return null==n?\"\":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),\nt===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){\nreturn\"\"},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn(\"1e-\"+((r+\"\").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;\nreturn e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(\"\"):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+\"g\")),\nu.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Un.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({\niteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);\n},Un.prototype.invokeMap=fr(function(n,t){return typeof n==\"function\"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);\n},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l==\"function\"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({\nfunc:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+\"\";\n(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:\"wrapper\",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;\n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){\nvar e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),\nAn}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);\n"],"mappings":"AACA;;;;ACGA","sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3995d35..222faaf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,249 @@ { "name": "huron", - "version": "2.3.2", + "version": "2.3.4", "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", + "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.47" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.47", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.47.tgz", + "integrity": "sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.0.2.tgz", + "integrity": "sha512-vCpf75JDcdomXvUd7Rn6DfYAVqPAFI66FVjxiWGwh85OLdvfo3paBoPJaam5keIYRyUolnS7SleS/ZPCidCvzw==", + "dev": true + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", + "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==", + "requires": { + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "debug": "^3.1.0", + "webassemblyjs": "1.4.3" + }, + "dependencies": { + "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" + } + } + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz", + "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz", + "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==", + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz", + "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==", + "requires": { + "@webassemblyjs/wast-printer": "1.4.3" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz", + "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==" + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz", + "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz", + "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@webassemblyjs/leb128": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz", + "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==", + "requires": { + "leb": "^0.3.0" + } + }, + "@webassemblyjs/validation": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz", + "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==", + "requires": { + "@webassemblyjs/ast": "1.4.3" + } + }, + "@webassemblyjs/wasm-edit": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz", + "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/helper-wasm-section": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-opt": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-printer": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz", + "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz", + "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz", + "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz", + "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/floating-point-hex-parser": "1.4.3", + "@webassemblyjs/helper-code-frame": "1.4.3", + "@webassemblyjs/helper-fsm": "1.4.3", + "long": "^3.2.0", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz", + "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "a-sync-waterfall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.0.tgz", + "integrity": "sha1-OOgxnXk3niRiiEW1O5ZyKyng5Hw=" + }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -11,49 +251,49 @@ "dev": true }, "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.18", "negotiator": "0.6.1" + }, + "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==" + }, + "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" + } + } } }, "acorn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==" + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==" }, "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } + "acorn": "^5.0.0" } }, "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "dev": true, "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "acorn": "^5.0.0" } }, "acorn-jsx": { @@ -62,7 +302,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -74,27 +314,31 @@ } }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -108,9 +352,9 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, "ansi-html": { @@ -124,17 +368,27 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "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.0" + } + }, + "any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "append-transform": { @@ -143,15 +397,38 @@ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz", + "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + } } }, "arr-diff": { @@ -159,7 +436,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -167,6 +444,17 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -188,8 +476,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -197,7 +485,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -216,6 +504,11 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -223,13 +516,13 @@ "dev": true }, "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -246,11 +539,28 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "ast-types": { "version": "0.9.6", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=" }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", @@ -261,23 +571,34 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=" + }, "autoprefixer": { "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000746", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" } }, "aws-sign2": { @@ -287,40 +608,41 @@ "dev": true }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", "dev": true }, + "axobject-query": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", + "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, "babel-cli": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.0.tgz", - "integrity": "sha1-oF/9IQ3KDCiKJtUxnFrIZpomWtA=", - "dev": true, - "requires": { - "babel-core": "6.25.0", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.9.0", - "convert-source-map": "1.5.0", - "fs-readdir-recursive": "1.0.0", - "glob": "7.1.2", - "lodash": "4.17.4", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - } + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" } }, "babel-code-frame": { @@ -328,80 +650,115 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } } }, "babel-core": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.7", - "slash": "1.0.0", - "source-map": "0.5.7" + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" } } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" } } }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -410,10 +767,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -422,18 +779,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - } + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -442,9 +791,21 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -453,11 +814,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -466,8 +827,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -476,8 +837,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -486,8 +847,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -496,17 +857,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - } + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -515,11 +868,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -528,12 +881,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -541,30 +894,29 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-jest": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", - "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.3.tgz", + "integrity": "sha512-BgSjmtl3mW3i+VeVHEr9d2zFSAT66G++pJcHQiUjd00pkW+voYXFctIm/indcqOWWXw5a1nUpR1XWszD9fJ1qg==", "dev": true, "requires": { - "babel-core": "6.25.0", - "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "20.0.3" + "babel-plugin-istanbul": "^4.1.5", + "babel-preset-jest": "^22.4.3" } }, "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", + "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -573,9 +925,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.0.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { @@ -584,7 +936,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "loader-utils": { @@ -593,9 +945,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "pkg-dir": { @@ -604,7 +956,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } } } @@ -614,7 +966,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -623,18 +975,19 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-istanbul": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", - "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.8.0", - "test-exclude": "4.1.1" + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" }, "dependencies": { "find-up": { @@ -643,44 +996,160 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", - "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=", - "dev": true - }, + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz", + "integrity": "sha512-zhvv4f6OTWy2bYevcJftwGCWXMFe7pqoz41IhMi4xna7xNsX5NygdagsrE0y6kkfuXq8UalwvPwKTyAxME2E/g==", + "dev": true + }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", "dev": true }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", "dev": true }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -689,7 +1158,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -698,7 +1167,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -707,19 +1176,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - } + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -728,15 +1189,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -745,8 +1206,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -755,7 +1216,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -764,8 +1225,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -774,7 +1235,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -783,9 +1244,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -794,7 +1255,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -803,21 +1264,21 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -826,9 +1287,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -837,9 +1298,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -848,8 +1309,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -858,12 +1319,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -872,8 +1333,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -882,7 +1343,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -891,9 +1352,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -902,7 +1363,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -911,7 +1372,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -920,9 +1381,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" }, "dependencies": { "regexpu-core": { @@ -931,9 +1392,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } } } @@ -944,9 +1405,39 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -955,7 +1446,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -964,8 +1455,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -974,68 +1465,151 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } } }, "babel-preset-env": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz", - "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.5.1", - "invariant": "2.2.2", - "semver": "5.4.1" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" }, "dependencies": { "browserslist": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.5.1.tgz", - "integrity": "sha512-jAvM2ku7YDJ+leAq3bFH1DE0Ylw+F+EQDq4GkqZfgPEqpWYw9ofQH85uKSB9r3Tv7XDbfqVtE+sdvKJW7IlPJA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz", + "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000746", - "electron-to-chromium": "1.3.26" + "caniuse-lite": "^1.0.30000835", + "electron-to-chromium": "^1.3.45" } + }, + "electron-to-chromium": { + "version": "1.3.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz", + "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=", + "dev": true } } }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, "babel-preset-jest": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", - "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz", + "integrity": "sha512-a+M3LTEXTq3gxv0uBN9Qm6ahUl7a8pj923nFbCUdqFUSsf3YrX8Uc+C3MEwji5Af3LiQjSC7w4ooYewlz8HRTA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "20.0.3" + "babel-plugin-jest-hoist": "^22.4.3", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -1043,13 +1617,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "babel-core": { @@ -1057,25 +1631,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.7", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" } }, "lodash": { @@ -1090,8 +1664,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "regenerator-runtime": { @@ -1106,11 +1680,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" }, "dependencies": { "lodash": { @@ -1125,15 +1699,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "lodash": { @@ -1148,10 +1722,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" }, "dependencies": { "lodash": { @@ -1171,10 +1745,70 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "batch": { "version": "0.6.1", @@ -1188,7 +1822,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -1201,6 +1835,12 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" }, + "binaryextensions": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", + "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==", + "dev": true + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -1217,15 +1857,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" } }, "bonjour": { @@ -1233,19 +1873,12 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.1.1", - "multicast-dns-service-types": "1.1.0" - }, - "dependencies": { - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - } + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, "boolbase": { @@ -1259,7 +1892,7 @@ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } }, "brace-expansion": { @@ -1267,7 +1900,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" }, "dependencies": { @@ -1283,9 +1916,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1293,6 +1926,12 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "dev": true + }, "browser-resolve": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", @@ -1300,47 +1939,39 @@ "dev": true, "requires": { "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } } }, "browserify-aes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.0.tgz", - "integrity": "sha512-W2bIMLYoZ9oow7TyePpMJk9l9LY7O3R61a/68bVCDOtnJynnwe3ZeW2IzzSkrQnPKNdJrxVDn3ALZNisSBwb7g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "requires": { - "browserify-aes": "1.1.0", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", + "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1348,8 +1979,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1357,21 +1988,21 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "pako": "0.2.9" + "pako": "~1.0.5" } }, "browserslist": { @@ -1379,8 +2010,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "requires": { - "caniuse-db": "1.0.30000746", - "electron-to-chromium": "1.3.26" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "bser": { @@ -1389,7 +2020,7 @@ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", "dev": true, "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "buffer": { @@ -1397,11 +2028,17 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, + "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==", + "dev": true + }, "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", @@ -1427,13 +2064,138 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "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.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + }, + "dependencies": { + "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" + } + }, + "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==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -1443,26 +2205,27 @@ "dev": true }, "camel-case": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz", - "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "optional": true }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { @@ -1477,23 +2240,32 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000746", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" } }, "caniuse-db": { - "version": "1.0.30000746", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000746.tgz", - "integrity": "sha1-UBCYxm9fu/Y0wC8lUIsF6ICZEPQ=" + "version": "1.0.30000842", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000842.tgz", + "integrity": "sha1-ioLDd7iz1vJZRHjoQx/0/TA+Fgw=" }, "caniuse-lite": { - "version": "1.0.30000746", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000746.tgz", - "integrity": "sha1-xk+Vo5Jc/TAgejCO12wa6W6gnqA=", + "version": "1.0.30000842", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz", + "integrity": "sha512-juspQHLwQRgptEM03HN66SpM/ggZUB+m49NAgJIaIS11aXVNeRB57sEY1X6tEzeK2THGvYWKZZu1wIbh+W7YTA==", "dev": true }, + "capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "dev": true, + "requires": { + "rsvp": "^3.3.3" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1506,73 +2278,66 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "change-case": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz", - "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=", - "requires": { - "camel-case": "1.2.2", - "constant-case": "1.1.2", - "dot-case": "1.1.2", - "is-lower-case": "1.1.3", - "is-upper-case": "1.1.2", - "lower-case": "1.1.4", - "lower-case-first": "1.0.2", - "param-case": "1.1.2", - "pascal-case": "1.1.2", - "path-case": "1.1.2", - "sentence-case": "1.1.3", - "snake-case": "1.1.2", - "swap-case": "1.1.2", - "title-case": "1.1.2", - "upper-case": "1.1.3", - "upper-case-first": "1.1.2" + "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.3.0" } }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "optional": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, + "chrome-trace-event": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz", + "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==" + }, "ci-info": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", - "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", "dev": true }, "cipher-base": { @@ -1580,8 +2345,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1595,63 +2360,124 @@ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "requires": { - "chalk": "1.1.3" - } - }, - "clean-css": { - "version": "3.4.28", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", - "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", - "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "chalk": "^1.1.3" }, "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "requires": { - "graceful-readlink": "1.0.1" - } + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "amdefine": "1.0.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, - "clean-webpack-plugin": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.15.tgz", - "integrity": "sha1-+swE4MjbqZv0Ua6GWtA2H1GvHfE=", - "dev": true, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "rimraf": "2.5.4" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { - "rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", - "dev": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "glob": "7.1.2" + "is-descriptor": "^0.1.0" } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" } } }, + "clean-css": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", + "requires": { + "source-map": "0.5.x" + } + }, + "clean-webpack-plugin": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz", + "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==", + "dev": true, + "requires": { + "rimraf": "^2.6.1" + } + }, "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + } } }, "cli-width": { @@ -1664,35 +2490,102 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "optional": true } } }, "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-response": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true }, "coa": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "requires": { - "q": "1.5.0" + "q": "^1.1.2" } }, "code-point-at": { @@ -1700,14 +2593,23 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "requires": { - "clone": "1.0.2", - "color-convert": "1.9.0", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -1715,7 +2617,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -1728,7 +2630,7 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -1736,9 +2638,9 @@ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -1747,48 +2649,62 @@ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "1.0.1" - } + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "compare-versions": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.2.1.tgz", + "integrity": "sha512-2y2nHcopMG/NAyk6vWXlLs86XeM9sik4jmx1tKIgzMi9/RQ2eo758RGpxQO3ErihHmg0RlQITPqgz73y6s7quA==", "dev": true }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "compressible": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", - "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", + "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", "requires": { - "mime-db": "1.30.0" + "mime-db": ">= 1.33.0 < 2" + }, + "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==" + } } }, "compression": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", - "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "version": "1.7.2", + "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", + "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "bytes": "3.0.0", - "compressible": "2.0.11", + "compressible": "~2.0.13", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "concat-map": { @@ -1800,52 +2716,49 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } }, "concurrently": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz", - "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz", + "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==", "requires": { "chalk": "0.5.1", "commander": "2.6.0", - "date-fns": "1.29.0", - "lodash": "4.17.4", + "date-fns": "^1.23.0", + "lodash": "^4.5.1", "rx": "2.3.24", - "spawn-command": "0.0.2-1", - "supports-color": "3.2.3", - "tree-kill": "1.2.0" + "spawn-command": "^0.0.2-1", + "supports-color": "^3.2.3", + "tree-kill": "^1.1.0" }, "dependencies": { "ansi-regex": { @@ -1863,11 +2776,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" + "ansi-styles": "^1.1.0", + "escape-string-regexp": "^1.0.0", + "has-ansi": "^0.1.0", + "strip-ansi": "^0.3.0", + "supports-color": "^0.2.0" }, "dependencies": { "supports-color": { @@ -1887,20 +2800,15 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", "requires": { - "ansi-regex": "0.2.1" + "ansi-regex": "^0.2.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, "strip-ansi": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", "requires": { - "ansi-regex": "0.2.1" + "ansi-regex": "^0.2.1" } }, "supports-color": { @@ -1908,31 +2816,22 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "connect-history-api-fallback": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz", - "integrity": "sha1-PbJPlz9LkjsOgvYZzg3wJBHKYj0=" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=" }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "0.1.4" - } - }, - "constant-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz", - "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=", - "requires": { - "snake-case": "1.1.2", - "upper-case": "1.1.3" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -1956,12 +2855,6 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "content-type-parser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", - "integrity": "sha1-w+VpiMU8ZRJ/tG1AMqOpACRv3JQ=", - "dev": true - }, "convert-source-map": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", @@ -1977,6 +2870,24 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "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.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-js": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", @@ -1988,36 +2899,58 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "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.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "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" + } + } } }, "cryptiles": { @@ -2026,7 +2959,7 @@ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "dev": true, "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -2035,26 +2968,27 @@ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "4.x.x" } } } }, "crypto-browserify": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", - "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", - "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5" + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "css-color-names": { @@ -2063,22 +2997,36 @@ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" }, "css-loader": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.26.1.tgz", - "integrity": "sha1-K6fyATG5NZdJaz6btQB4WknNKeo=", - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "loader-utils": "0.2.17", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "source-list-map": "0.1.8" + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } } }, "css-select": { @@ -2086,10 +3034,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-selector-tokenizer": { @@ -2097,9 +3045,9 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" } }, "css-what": { @@ -2117,38 +3065,38 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" } }, "csso": { @@ -2156,8 +3104,8 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" } }, "cssom": { @@ -2172,7 +3120,7 @@ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -2180,16 +3128,20 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, "requires": { - "es5-ext": "0.10.31" + "es5-ext": "^0.10.9" } }, "damerau-levenshtein": { @@ -2198,13 +3150,30 @@ "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", "dev": true }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", + "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", + "dev": true, + "requires": { + "abab": "^1.0.4", + "whatwg-mimetype": "^2.0.0", + "whatwg-url": "^6.4.0" } }, "date-fns": { @@ -2217,6 +3186,12 @@ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2230,6 +3205,31 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "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=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2242,7 +3242,7 @@ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-properties": { @@ -2250,8 +3250,55 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } } }, "defined": { @@ -2265,13 +3312,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -2281,17 +3328,17 @@ "dev": true }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -2299,33 +3346,72 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, "detect-node": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" }, "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } } }, "dns-equal": { @@ -2334,12 +3420,12 @@ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" }, "dns-packet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", - "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -2347,7 +3433,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -2356,8 +3442,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "dom-converter": { @@ -2365,7 +3451,7 @@ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", "requires": { - "utila": "0.3.3" + "utila": "~0.3" }, "dependencies": { "utila": { @@ -2380,20 +3466,7 @@ "resolved": "https://registry.npmjs.org/dom-loader/-/dom-loader-1.0.4.tgz", "integrity": "sha1-9sfglYqHMtTj9hV/ZP7a3YXdeOk=", "requires": { - "loader-utils": "0.2.17" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } - } + "loader-utils": "^0.2.11" } }, "dom-serializer": { @@ -2401,8 +3474,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -2413,21 +3486,30 @@ } }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "domelementtype": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, "domhandler": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -2435,16 +3517,25 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, - "dot-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz", - "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=", + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "sentence-case": "1.1.3" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -2454,52 +3545,92 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, "electron-to-chromium": { - "version": "1.3.26", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.26.tgz", - "integrity": "sha1-mWQnKUhhp02cfIK5Jg6jAejALWY=" + "version": "1.3.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz", + "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=" + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, - "emojis-list": { + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", + "dev": true + }, + "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "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" + } }, "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", + "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, "entities": { @@ -2507,12 +3638,28 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" }, + "envinfo": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-4.4.2.tgz", + "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ==", + "dev": true + }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "requires": { - "prr": "0.0.0" + "prr": "~0.0.0" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" } }, "error-ex": { @@ -2520,19 +3667,19 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", - "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", + "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2540,67 +3687,37 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.31.tgz", "integrity": "sha1-e7k4yVp/G59ygJLcCcQe3MOY7v4=", - "dev": true, "requires": { - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.1", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" } }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-templates": { @@ -2608,20 +3725,8 @@ "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", "requires": { - "recast": "0.11.23", - "through": "2.3.8" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31", - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "recast": "~0.11.12", + "through": "~2.3.6" } }, "escape-html": { @@ -2635,16 +3740,16 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", - "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.5.7" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -2652,195 +3757,399 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true } } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } - }, "eslint": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.11.1.tgz", - "integrity": "sha1-QIvlgQQThcupR82NHNIid4K1Xb8=", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "concat-stream": "1.6.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "escope": "3.6.0", - "espree": "3.5.1", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.5", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.16.1", - "is-resolvable": "1.0.0", - "js-yaml": "3.7.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.7.8", - "strip-bom": "3.0.0", - "strip-json-comments": "1.0.4", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" }, "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "strip-bom": { + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "globals": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", + "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", + "dev": true + }, + "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "os-homedir": "1.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } } } }, "eslint-config-airbnb": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-13.0.0.tgz", - "integrity": "sha1-aI0V08J2wMdTrlOMkqRDl9dq5G4=", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz", + "integrity": "sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw==", "dev": true, "requires": { - "eslint-config-airbnb-base": "10.0.1" + "eslint-config-airbnb-base": "^12.1.0" } }, "eslint-config-airbnb-base": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz", - "integrity": "sha1-8X1OUpksHUXRt3E++81ezQ5+BQY=", - "dev": true + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", + "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", + "dev": true, + "requires": { + "eslint-restricted-globals": "^0.1.1" + } }, "eslint-import-resolver-node": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz", - "integrity": "sha1-Wt2BBujJKNssuiMrzZ76hG49oWw=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "2.6.9", - "object-assign": "4.1.1", - "resolve": "1.4.0" + "debug": "^2.6.9", + "resolve": "^1.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } } }, "eslint-loader": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.6.1.tgz", - "integrity": "sha1-lsR8gSdy7rB346gWgYGOZxosq/U=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.0.0.tgz", + "integrity": "sha512-VxxGDI4bXzLk0+/jMt/0EkGMRKS9ox6Czx+yapMb9WJmcS/ZHhlhqcVUNgUjFBNp02j/2pZLdGOrG7EXyjoz/g==", "dev": true, "requires": { - "find-cache-dir": "0.1.1", - "loader-utils": "0.2.17", - "object-assign": "4.1.1", - "object-hash": "1.2.0" + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } } }, "eslint-module-utils": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", - "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "dev": true, "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" } }, "eslint-plugin-import": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz", - "integrity": "sha1-crowb60wXWfEgWNIpGmaQimsi04=", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz", + "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=", "dev": true, "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.2.3", - "eslint-module-utils": "2.1.1", - "has": "1.0.1", - "lodash.cond": "4.5.2", - "minimatch": "3.0.4", - "pkg-up": "1.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } } }, "eslint-plugin-jest": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-20.0.3.tgz", - "integrity": "sha1-7BXrpqwKtEpn6/bgJnLKnX58uik=", + "version": "21.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.15.1.tgz", + "integrity": "sha512-Op9AFHQXFXD0pWubu2v7K7NydSEBopIYVyZM2CxbiIoVXMa6AnqJt+v+HkBxbwS5aYvPQYoHthZO18A4QVeF1Q==", "dev": true }, "eslint-plugin-jsx-a11y": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.2.3.tgz", - "integrity": "sha1-TjXLcbin23AqxBXIBuuOjZ6mxl0=", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz", + "integrity": "sha1-VFg9GuRCSDFi4EDhPMMYZUZRAOU=", "dev": true, "requires": { - "damerau-levenshtein": "1.0.4", - "jsx-ast-utils": "1.4.1", - "object-assign": "4.1.1" + "aria-query": "^0.7.0", + "array-includes": "^3.0.3", + "ast-types-flow": "0.0.7", + "axobject-query": "^0.1.0", + "damerau-levenshtein": "^1.0.0", + "emoji-regex": "^6.1.0", + "jsx-ast-utils": "^2.0.0" + }, + "dependencies": { + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "^3.0.3" + } + } } }, "eslint-plugin-react": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.8.0.tgz", - "integrity": "sha1-dBq1Q4oJRTLlzhu7k11oMjVvSS0=", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.8.2.tgz", + "integrity": "sha512-H3ne8ob4Bn6NXSN9N9twsn7t8dyHT5bF/ibQepxIHi6JiPIdC2gXlfYvZYucbdrWio4FxBq7Z4mSauQP+qmMkQ==", "dev": true, "requires": { - "doctrine": "1.5.0", - "jsx-ast-utils": "1.4.1" + "doctrine": "^2.0.2", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, "espree": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", - "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.1.2", - "acorn-jsx": "3.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", - "dev": true - } + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2848,21 +4157,28 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, "esrecurse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { "version": "2.0.2", @@ -2874,20 +4190,10 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.31" - } - }, "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" }, "events": { "version": "1.1.1", @@ -2899,7 +4205,7 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "requires": { - "original": "1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -2907,8 +4213,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exec-sh": { @@ -2917,9 +4223,29 @@ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", "dev": true, "requires": { - "merge": "1.2.0" + "merge": "^1.1.3" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, "exit-hook": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", @@ -2931,7 +4257,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2939,85 +4265,73 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", + "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "jest-diff": "^22.4.3", + "jest-get-type": "^22.4.3", + "jest-matcher-utils": "^22.4.3", + "jest-message-util": "^22.4.3", + "jest-regex-util": "^22.4.3" } }, "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.0", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", + "send": "0.16.2", + "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - } } } }, @@ -3027,12 +4341,42 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "is-extglob": "1.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -3042,11 +4386,342 @@ "dev": true }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "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=" + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -3063,7 +4738,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fb-watchman": { @@ -3072,17 +4747,39 @@ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "dev": true, "requires": { - "bser": "2.0.0" + "bser": "^2.0.0" + } + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "dev": true, + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } } }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -3091,8 +4788,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -3106,34 +4803,34 @@ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true, "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" } }, "find-cache-dir": { @@ -3142,9 +4839,9 @@ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -3152,8 +4849,17 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" } }, "flat-cache": { @@ -3162,10 +4868,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatten": { @@ -3173,6 +4879,39 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" }, + "flow-parser": { + "version": "0.72.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.72.0.tgz", + "integrity": "sha512-kFaDtviKlD/rHi6NRp42KTbnPgz/nKcWUJQhqDnLDeKA8uGcRVSy0YlQjaf9M3pFo5PgC3SNFnCPpQGLtHjH2w==", + "dev": true + }, + "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.1", + "readable-stream": "^2.0.4" + } + }, + "follow-redirects": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", + "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "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" + } + } + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3183,7 +4922,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -3203,14 +4942,14 @@ "dev": true }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -3218,22 +4957,55 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "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.1", + "readable-stream": "^2.0.0" + } + }, "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-readdir-recursive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", - "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true }, + "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.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3245,8 +5017,8 @@ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", "optional": true, "requires": { - "nan": "2.7.0", - "node-pre-gyp": "0.6.36" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.36" }, "dependencies": { "abbrev": { @@ -3259,8 +5031,8 @@ "bundled": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -3277,8 +5049,8 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -3315,28 +5087,28 @@ "bundled": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { "version": "0.0.9", "bundled": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { "version": "2.10.1", "bundled": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { "version": "1.1.7", "bundled": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -3362,7 +5134,7 @@ "version": "1.0.5", "bundled": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -3382,7 +5154,7 @@ "bundled": true, "optional": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -3390,7 +5162,7 @@ "bundled": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -3427,7 +5199,7 @@ "bundled": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -3449,9 +5221,9 @@ "bundled": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -3462,10 +5234,10 @@ "version": "1.0.11", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -3473,9 +5245,9 @@ "bundled": true, "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -3483,14 +5255,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.1.1", - "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" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { @@ -3498,7 +5270,7 @@ "bundled": true, "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -3512,12 +5284,12 @@ "version": "7.1.2", "bundled": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -3534,8 +5306,8 @@ "bundled": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -3548,10 +5320,10 @@ "bundled": true, "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -3563,17 +5335,17 @@ "bundled": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3589,7 +5361,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -3611,7 +5383,7 @@ "bundled": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -3629,7 +5401,7 @@ "bundled": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -3668,14 +5440,14 @@ "version": "2.1.15", "bundled": true, "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3699,15 +5471,15 @@ "bundled": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "request": "^2.81.0", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -3715,8 +5487,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -3724,10 +5496,10 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -3748,7 +5520,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3766,8 +5538,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -3798,10 +5570,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -3815,13 +5587,13 @@ "version": "2.2.9", "bundled": true, "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -3829,35 +5601,35 @@ "bundled": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "rimraf": { "version": "2.6.1", "bundled": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3884,7 +5656,7 @@ "bundled": true, "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -3892,15 +5664,15 @@ "bundled": true, "optional": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -3914,16 +5686,16 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { "version": "1.0.1", "bundled": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -3935,7 +5707,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3947,9 +5719,9 @@ "version": "2.2.1", "bundled": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -3957,14 +5729,14 @@ "bundled": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -3972,7 +5744,7 @@ "bundled": true, "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -3980,7 +5752,7 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -4015,7 +5787,7 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -4029,27 +5801,18 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "requires": { - "globule": "0.1.0" - } - }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", "requires": { - "is-property": "1.0.2" + "globule": "^1.0.0" } }, "get-caller-file": { @@ -4062,13 +5825,90 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "dev": true, + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "dev": true, + "requires": { + "gh-got": "^6.0.0" } }, "glob": { @@ -4076,21 +5916,48 @@ "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "dev": true, + "requires": { + "glob": "^7.0.5", + "yargs": "~1.2.6" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", + "dev": true, + "requires": { + "minimist": "^0.1.0" + } + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -4098,7 +5965,37 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globals": { @@ -4112,57 +6009,54 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.4", + "minimatch": "~3.0.2" + } + }, + "got": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.1.tgz", + "integrity": "sha512-tiLX+bnYm5A56T5N/n9Xo89vMaO1mrS9qoDqj3u/anVooqGozvY/HbXzEpDfbNeKsHCBpK40gSbz8wGYSp3i1w==", + "dev": true, "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" - } + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true } } }, @@ -4171,10 +6065,14 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "dev": true, + "requires": { + "lodash": "^4.17.2" + } }, "growly": { "version": "1.3.0", @@ -4188,14 +6086,14 @@ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" }, "handlebars": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.6.tgz", - "integrity": "sha1-LORISFBTf5yXqAJtU5m5NcTtTtc=", - "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -4203,20 +6101,20 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "handlebars-loader": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/handlebars-loader/-/handlebars-loader-1.6.0.tgz", - "integrity": "sha512-FsM1ALql8+RNJuTgD1qPrVT8GpB209hPUKml/uIoR6aJIoeoLB+l/jt8xBnpfzN74aaQ9kMXaZajhIE6PNHusg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/handlebars-loader/-/handlebars-loader-1.7.0.tgz", + "integrity": "sha512-tfS3n+PrDB2gnDnrx0/DGvdb4wF4JqV7CEiVof3RymOIWYrcmD+ZiaXTlZ/f7fZ7+aQPEv6JRG0HS7nTlyvGlQ==", "requires": { - "async": "0.2.10", - "fastparse": "1.1.1", - "loader-utils": "1.0.4", - "object-assign": "4.1.1" + "async": "~0.2.10", + "fastparse": "^1.0.0", + "loader-utils": "1.0.x", + "object-assign": "^4.1.0" }, "dependencies": { "async": { @@ -4229,9 +6127,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.0.4.tgz", "integrity": "sha1-E/Vhl/FSOjBYkSSLTHJEVAhIQmw=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } @@ -4248,22 +6146,8 @@ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "5.2.3", - "har-schema": "2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", - "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" - } - } + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -4271,7 +6155,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -4279,20 +6163,101 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, "has-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -4300,8 +6265,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hawk": { @@ -4310,31 +6275,31 @@ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.0.2" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "he": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.0.0.tgz", - "integrity": "sha1-baWyZdfyw7XkgHSRaODhWdBXKNo=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", "dev": true }, "home-or-tmp": { @@ -4342,8 +6307,17 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -4356,10 +6330,10 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.0.6", - "wbuf": "1.7.2" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html-comment-regex": { @@ -4368,12 +6342,12 @@ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" }, "html-encoding-sniffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", - "integrity": "sha1-eb96eF6klf5mFl5zQVPzY/9UN9o=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "whatwg-encoding": "1.0.1" + "whatwg-encoding": "^1.0.1" } }, "html-entities": { @@ -4382,71 +6356,71 @@ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" }, "html-loader": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.3.tgz", - "integrity": "sha1-7hF4awSBiWfNbGecoFXjj52XIec=", - "requires": { - "es6-templates": "0.2.3", - "fastparse": "1.1.1", - "html-minifier": "1.5.0", - "loader-utils": "0.2.17", - "object-assign": "4.1.1" + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", + "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", + "requires": { + "es6-templates": "^0.2.3", + "fastparse": "^1.1.1", + "html-minifier": "^3.5.8", + "loader-utils": "^1.1.0", + "object-assign": "^4.1.1" + }, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } } }, "html-minifier": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz", - "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=", - "requires": { - "change-case": "2.3.1", - "clean-css": "3.4.28", - "commander": "2.9.0", - "concat-stream": "1.5.2", - "he": "1.0.0", - "ncname": "1.0.0", - "relateurl": "0.2.7", - "uglify-js": "2.6.4" + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz", + "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.15.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.3.x" }, "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "uglify-js": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", - "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "version": "3.3.25", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz", + "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==", "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "commander": "~2.15.0", + "source-map": "~0.6.1" } } } }, "html-webpack-plugin": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", - "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", - "requires": { - "bluebird": "3.5.1", - "html-minifier": "3.5.5", - "loader-utils": "0.2.17", - "lodash": "4.17.4", - "pretty-error": "2.1.1", - "toposort": "1.0.6" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" }, "dependencies": { "camel-case": { @@ -4454,22 +6428,22 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "clean-css": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", - "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "requires": { - "source-map": "0.5.7" + "source-map": "0.5.x" } }, "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "he": { "version": "1.1.1", @@ -4477,18 +6451,17 @@ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" }, "html-minifier": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.5.tgz", - "integrity": "sha512-g+1+NBycQI0fGnggd52JM8TRUweG7+9W2wrtjGitMAqc4G7maweAHvVAAjz9veHseIH3tYKE2lk2USGSoewIrQ==", + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz", + "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==", "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.9", - "commander": "2.11.0", - "he": "1.1.1", - "ncname": "1.0.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.1.3" + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.15.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.3.x" } }, "param-case": { @@ -4496,16 +6469,23 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "uglify-js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.3.tgz", - "integrity": "sha512-5ZUOgufCHjN2mBBLfz63UtWTP6va2sSzBpNCM+/iqI6RnPzEhANmB0EKiKBYdQbc3v7KeomXJ2DJx0Xq9gvUvA==", + "version": "3.3.25", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz", + "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==", "requires": { - "commander": "2.11.0", - "source-map": "0.5.7" + "commander": "~2.15.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } } } @@ -4515,10 +6495,10 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" }, "dependencies": { "domutils": { @@ -4526,7 +6506,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "isarray": { @@ -4539,92 +6519,340 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } } } }, + "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==", + "dev": true + }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.1", + "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - }, - "dependencies": { - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=" + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz", + "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=" }, "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" }, "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } }, "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "iconv-lite": { "version": "0.4.19", @@ -4636,34 +6864,121 @@ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "^6.0.1" + }, + "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.0" + } + }, + "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.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", + "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz", - "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", "dev": true }, "immutable": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", - "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=" + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -4681,8 +6996,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4690,32 +7005,105 @@ "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==", + "dev": true + }, "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.4", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -4724,20 +7112,31 @@ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "interpret": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", - "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } }, "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4751,15 +7150,23 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4770,7 +7177,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4783,7 +7190,7 @@ "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" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -4792,12 +7199,20 @@ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" }, "is-ci": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", - "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.1" + "ci-info": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -4805,6 +7220,23 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -4815,7 +7247,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4833,7 +7265,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4841,43 +7273,67 @@ "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" + "number-is-nan": "^1.0.0" } }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "dev": true + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "lower-case": "1.1.4" + "kind-of": "^3.0.2" } }, - "is-my-json-valid": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", - "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "symbol-observable": "^0.2.2" + }, + "dependencies": { + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + } } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "requires": { - "kind-of": "3.2.2" + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } } }, "is-path-cwd": { @@ -4890,7 +7346,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -4898,7 +7354,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -4906,6 +7362,21 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -4916,10 +7387,10 @@ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, "is-regex": { @@ -4927,24 +7398,41 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-scoped": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "dev": true, "requires": { - "tryit": "1.0.3" + "scoped-regex": "^1.0.0" } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "is-svg": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -4958,19 +7446,16 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "1.1.3" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -4981,11 +7466,16 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "2.1.0", @@ -4993,13 +7483,16 @@ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -5009,81 +7502,98 @@ "dev": true }, "istanbul-api": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz", - "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", + "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", "dev": true, "requires": { - "async": "2.5.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.0.7", - "istanbul-lib-instrument": "1.8.0", - "istanbul-lib-report": "1.1.1", - "istanbul-lib-source-maps": "1.2.1", - "istanbul-reports": "1.1.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "once": "1.4.0" + "async": "^2.1.4", + "compare-versions": "^3.1.0", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-report": "^1.1.4", + "istanbul-lib-source-maps": "^1.2.4", + "istanbul-reports": "^1.3.0", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" }, "dependencies": { "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz", + "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } } } }, "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-hook": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", - "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz", + "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz", - "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", + "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -5092,332 +7602,521 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", - "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { - "debug": "2.6.9", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", + "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "dev": true, + "requires": { + "binaryextensions": "2", + "editions": "^1.3.3", + "textextensions": "2" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "handlebars": "4.0.6" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", - "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-22.4.3.tgz", + "integrity": "sha512-FFCdU/pXOEASfHxFDOWUysI/+FFoqiXJADEIXgDKuZyqSmBD3tZ4BEGH7+M79v7czj7bbkhwtd2LaEDcJiM/GQ==", "dev": true, "requires": { - "jest-cli": "20.0.4" + "import-local": "^1.0.0", + "jest-cli": "^22.4.3" }, "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "locate-path": "^2.0.0" } }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "jest-cli": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", - "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", - "dev": true, - "requires": { - "ansi-escapes": "1.4.0", - "callsites": "2.0.0", - "chalk": "1.1.3", - "graceful-fs": "4.1.11", - "is-ci": "1.0.10", - "istanbul-api": "1.1.14", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-instrument": "1.8.0", - "istanbul-lib-source-maps": "1.2.1", - "jest-changed-files": "20.0.3", - "jest-config": "20.0.4", - "jest-docblock": "20.0.3", - "jest-environment-jsdom": "20.0.3", - "jest-haste-map": "20.0.5", - "jest-jasmine2": "20.0.4", - "jest-message-util": "20.0.3", - "jest-regex-util": "20.0.3", - "jest-resolve-dependencies": "20.0.3", - "jest-runtime": "20.0.4", - "jest-snapshot": "20.0.3", - "jest-util": "20.0.3", - "micromatch": "2.3.11", - "node-notifier": "5.1.2", - "pify": "2.3.0", - "slash": "1.0.0", - "string-length": "1.0.1", - "throat": "3.2.0", - "which": "1.3.0", - "worker-farm": "1.5.0", - "yargs": "7.1.0" + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.3.tgz", + "integrity": "sha512-IiHybF0DJNqZPsbjn4Cy4vcqcmImpoFwNFnkehzVw8lTUSl4axZh5DHewu5bdpZF2Y5gUqFKYzH0FH4Qx2k+UA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "import-local": "^1.0.0", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.14", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-instrument": "^1.8.0", + "istanbul-lib-source-maps": "^1.2.1", + "jest-changed-files": "^22.4.3", + "jest-config": "^22.4.3", + "jest-environment-jsdom": "^22.4.3", + "jest-get-type": "^22.4.3", + "jest-haste-map": "^22.4.3", + "jest-message-util": "^22.4.3", + "jest-regex-util": "^22.4.3", + "jest-resolve-dependencies": "^22.4.3", + "jest-runner": "^22.4.3", + "jest-runtime": "^22.4.3", + "jest-snapshot": "^22.4.3", + "jest-util": "^22.4.3", + "jest-validate": "^22.4.3", + "jest-worker": "^22.4.3", + "micromatch": "^2.3.11", + "node-notifier": "^5.2.1", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "yargs": "^10.0.3" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" } }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^4.1.0" } } } }, "jest-changed-files": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", - "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=", - "dev": true + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz", + "integrity": "sha512-83Dh0w1aSkUNFhy5d2dvqWxi/y6weDwVVLU6vmK0cV9VpRxPzhTeGimbsbRDSnEoszhF937M4sDLLeS7Cu/Tmw==", + "dev": true, + "requires": { + "throat": "^4.0.0" + } }, "jest-config": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", - "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.3.tgz", + "integrity": "sha512-KSg3EOToCgkX+lIvenKY7J8s426h6ahXxaUFJxvGoEk0562Z6inWj1TnKoGycTASwiLD+6kSYFALcjdosq9KIQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "glob": "7.1.2", - "jest-environment-jsdom": "20.0.3", - "jest-environment-node": "20.0.3", - "jest-jasmine2": "20.0.4", - "jest-matcher-utils": "20.0.3", - "jest-regex-util": "20.0.3", - "jest-resolve": "20.0.4", - "jest-validate": "20.0.3", - "pretty-format": "20.0.3" + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^22.4.3", + "jest-environment-node": "^22.4.3", + "jest-get-type": "^22.4.3", + "jest-jasmine2": "^22.4.3", + "jest-regex-util": "^22.4.3", + "jest-resolve": "^22.4.3", + "jest-util": "^22.4.3", + "jest-validate": "^22.4.3", + "pretty-format": "^22.4.3" } }, "jest-diff": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", - "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz", + "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==", "dev": true, "requires": { - "chalk": "1.1.3", - "diff": "3.4.0", - "jest-matcher-utils": "20.0.3", - "pretty-format": "20.0.3" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.4.3", + "pretty-format": "^22.4.3" } }, "jest-docblock": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", - "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=", - "dev": true + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz", + "integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==", + "dev": true, + "requires": { + "detect-newline": "^2.1.0" + } }, "jest-environment-jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", - "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz", + "integrity": "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==", "dev": true, "requires": { - "jest-mock": "20.0.3", - "jest-util": "20.0.3", - "jsdom": "9.12.0" + "jest-mock": "^22.4.3", + "jest-util": "^22.4.3", + "jsdom": "^11.5.1" } }, "jest-environment-node": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", - "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz", + "integrity": "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==", "dev": true, "requires": { - "jest-mock": "20.0.3", - "jest-util": "20.0.3" + "jest-mock": "^22.4.3", + "jest-util": "^22.4.3" } }, + "jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", + "dev": true + }, "jest-haste-map": { - "version": "20.0.5", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", - "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz", + "integrity": "sha512-4Q9fjzuPVwnaqGKDpIsCSoTSnG3cteyk2oNVjBX12HHOaF1oxql+uUiqZb5Ndu7g/vTZfdNwwy4WwYogLh29DQ==", "dev": true, "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "20.0.3", - "micromatch": "2.3.11", - "sane": "1.6.0", - "worker-farm": "1.5.0" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^22.4.3", + "jest-serializer": "^22.4.3", + "jest-worker": "^22.4.3", + "micromatch": "^2.3.11", + "sane": "^2.0.0" } }, "jest-jasmine2": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", - "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz", + "integrity": "sha512-yZCPCJUcEY6R5KJB/VReo1AYI2b+5Ky+C+JA1v34jndJsRcLpU4IZX4rFJn7yDTtdNbO/nNqg+3SDIPNH2ecnw==", "dev": true, "requires": { - "chalk": "1.1.3", - "graceful-fs": "4.1.11", - "jest-diff": "20.0.3", - "jest-matcher-utils": "20.0.3", - "jest-matchers": "20.0.3", - "jest-message-util": "20.0.3", - "jest-snapshot": "20.0.3", - "once": "1.4.0", - "p-map": "1.2.0" + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^22.4.3", + "graceful-fs": "^4.1.11", + "is-generator-fn": "^1.0.0", + "jest-diff": "^22.4.3", + "jest-matcher-utils": "^22.4.3", + "jest-message-util": "^22.4.3", + "jest-snapshot": "^22.4.3", + "jest-util": "^22.4.3", + "source-map-support": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } } }, - "jest-matcher-utils": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", - "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", + "jest-leak-detector": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz", + "integrity": "sha512-NZpR/Ls7+ndO57LuXROdgCGz2RmUdC541tTImL9bdUtU3WadgFGm0yV+Ok4Fuia/1rLAn5KaJ+i76L6e3zGJYQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "pretty-format": "20.0.3" + "pretty-format": "^22.4.3" } }, - "jest-matchers": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", - "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", + "jest-matcher-utils": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz", + "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", "dev": true, "requires": { - "jest-diff": "20.0.3", - "jest-matcher-utils": "20.0.3", - "jest-message-util": "20.0.3", - "jest-regex-util": "20.0.3" + "chalk": "^2.0.1", + "jest-get-type": "^22.4.3", + "pretty-format": "^22.4.3" } }, "jest-message-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", - "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz", + "integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==", "dev": true, "requires": { - "chalk": "1.1.3", - "micromatch": "2.3.11", - "slash": "1.0.0" + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" } }, "jest-mock": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", - "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz", + "integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==", "dev": true }, "jest-regex-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", - "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz", + "integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==", "dev": true }, "jest-resolve": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", - "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz", + "integrity": "sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw==", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "is-builtin-module": "1.0.0", - "resolve": "1.4.0" + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1" } }, "jest-resolve-dependencies": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", - "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz", + "integrity": "sha512-06czCMVToSN8F2U4EvgSB1Bv/56gc7MpCftZ9z9fBgUQM7dzHGCMBsyfVA6dZTx8v0FDcnALf7hupeQxaBCvpA==", + "dev": true, + "requires": { + "jest-regex-util": "^22.4.3" + } + }, + "jest-runner": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.3.tgz", + "integrity": "sha512-U7PLlQPRlWNbvOHWOrrVay9sqhBJmiKeAdKIkvX4n1G2tsvzLlf77nBD28GL1N6tGv4RmuTfI8R8JrkvCa+IBg==", "dev": true, "requires": { - "jest-regex-util": "20.0.3" + "exit": "^0.1.2", + "jest-config": "^22.4.3", + "jest-docblock": "^22.4.3", + "jest-haste-map": "^22.4.3", + "jest-jasmine2": "^22.4.3", + "jest-leak-detector": "^22.4.3", + "jest-message-util": "^22.4.3", + "jest-runtime": "^22.4.3", + "jest-util": "^22.4.3", + "jest-worker": "^22.4.3", + "throat": "^4.0.0" } }, "jest-runtime": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", - "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", - "dev": true, - "requires": { - "babel-core": "6.25.0", - "babel-jest": "20.0.3", - "babel-plugin-istanbul": "4.1.5", - "chalk": "1.1.3", - "convert-source-map": "1.5.0", - "graceful-fs": "4.1.11", - "jest-config": "20.0.4", - "jest-haste-map": "20.0.5", - "jest-regex-util": "20.0.3", - "jest-resolve": "20.0.4", - "jest-util": "20.0.3", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.3.tgz", + "integrity": "sha512-Eat/esQjevhx9BgJEC8udye+FfoJ2qvxAZfOAWshYGS22HydHn5BgsvPdTtt9cp0fSl5LxYOFA1Pja9Iz2Zt8g==", + "dev": true, + "requires": { + "babel-core": "^6.0.0", + "babel-jest": "^22.4.3", + "babel-plugin-istanbul": "^4.1.5", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "graceful-fs": "^4.1.11", + "jest-config": "^22.4.3", + "jest-haste-map": "^22.4.3", + "jest-regex-util": "^22.4.3", + "jest-resolve": "^22.4.3", + "jest-util": "^22.4.3", + "jest-validate": "^22.4.3", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "realpath-native": "^1.0.0", + "slash": "^1.0.0", "strip-bom": "3.0.0", - "yargs": "7.1.0" + "write-file-atomic": "^2.1.0", + "yargs": "^10.0.3" }, "dependencies": { - "camelcase": { + "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -5427,82 +8126,111 @@ "dev": true }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^4.1.0" } } } }, + "jest-serializer": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", + "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==", + "dev": true + }, "jest-snapshot": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", - "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz", + "integrity": "sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "jest-diff": "20.0.3", - "jest-matcher-utils": "20.0.3", - "jest-util": "20.0.3", - "natural-compare": "1.4.0", - "pretty-format": "20.0.3" + "chalk": "^2.0.1", + "jest-diff": "^22.4.3", + "jest-matcher-utils": "^22.4.3", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^22.4.3" } }, "jest-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", - "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz", + "integrity": "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "graceful-fs": "4.1.11", - "jest-message-util": "20.0.3", - "jest-mock": "20.0.3", - "jest-validate": "20.0.3", - "leven": "2.1.0", - "mkdirp": "0.5.1" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "jest-message-util": "^22.4.3", + "mkdirp": "^0.5.1", + "source-map": "^0.6.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "jest-validate": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", - "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.3.tgz", + "integrity": "sha512-CfFM18W3GSP/xgmA4UouIx0ljdtfD2mjeBC6c89Gg17E44D4tQhAcTrZmf9djvipwU30kSTnk6CzcxdCCeSXfA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-config": "^22.4.3", + "jest-get-type": "^22.4.3", + "leven": "^2.1.0", + "pretty-format": "^22.4.3" + } + }, + "jest-worker": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz", + "integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==", "dev": true, "requires": { - "chalk": "1.1.3", - "jest-matcher-utils": "20.0.3", - "leven": "2.1.0", - "pretty-format": "20.0.3" + "merge-stream": "^1.0.1" } }, "js-base64": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", - "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==" + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==" }, "js-tokens": { "version": "3.0.2", @@ -5514,15 +8242,18 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } }, "js2xmlparser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-1.0.0.tgz", - "integrity": "sha1-WhcPLo1kds5FQF4EgjJCUTeC/jA=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "requires": { + "xmlcreate": "^1.0.1" + } }, "jsbn": { "version": "0.1.1", @@ -5531,100 +8262,161 @@ "dev": true, "optional": true }, - "jsdoc": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.4.3.tgz", - "integrity": "sha1-5XQNYUXGgfZnnmwXeDqI292XzNM=", - "dev": true, - "requires": { - "bluebird": "3.4.7", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "espree": "3.1.7", - "js2xmlparser": "1.0.0", - "klaw": "1.3.1", - "marked": "0.3.6", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", - "taffydb": "2.6.2", - "underscore": "1.8.3" + "jscodeshift": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.5.0.tgz", + "integrity": "sha512-JAcQINNMFpdzzpKJN8k5xXjF3XDuckB1/48uScSzcnNyK199iWEc9AxKL9OoX5144M2w5zEx9Qs4/E/eBZZUlw==", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^7.0.0-beta.30", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "neo-async": "^2.5.0", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.14.1", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" }, "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "ast-types": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "dev": true + }, + "babylon": { + "version": "7.0.0-beta.47", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", + "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", "dev": true }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", "dev": true }, - "espree": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.7.tgz", - "integrity": "sha1-/V3ux2qXpRIKnNOnyxF3oJI7EdI=", + "recast": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", + "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", "dev": true, "requires": { - "acorn": "3.3.0", - "acorn-jsx": "3.0.1" + "ast-types": "0.11.3", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" } }, - "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=", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } } } }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "dev": true, - "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.1", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.1", - "nwmatcher": "1.4.3", - "parse5": "1.5.1", - "request": "2.83.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.1", - "whatwg-url": "4.8.0", - "xml-name-validator": "2.0.1" + "jsdoc": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", + "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "dev": true, + "requires": { + "babylon": "7.0.0-beta.19", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", + "taffydb": "2.6.2", + "underscore": "~1.8.3" }, "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "babylon": { + "version": "7.0.0-beta.19", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", "dev": true } } }, + "jsdom": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz", + "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==", + "dev": true, + "requires": { + "abab": "^1.0.4", + "acorn": "^5.3.0", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.0", + "escodegen": "^1.9.0", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.2.0", + "nwmatcher": "^1.4.3", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.83.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.3", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.0", + "ws": "^4.0.0", + "xml-name-validator": "^3.0.0" + } + }, "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-loader": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "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==", + "dev": true }, "json-schema": { "version": "0.2.3", @@ -5635,17 +8427,23 @@ "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=", - "dev": true + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -5667,18 +8465,13 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, "jsprim": { @@ -5694,92 +8487,157 @@ } }, "jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "^3.0.3" + } + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=" }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } }, "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "kss": { - "version": "3.0.0-beta.18", - "resolved": "https://registry.npmjs.org/kss/-/kss-3.0.0-beta.18.tgz", - "integrity": "sha1-gyojvaTKvs9UJrk4ksG2GNt+ok4=", - "requires": { - "bluebird": "3.5.1", - "fs-extra": "2.1.2", - "glob": "7.1.2", - "handlebars": "4.0.6", - "marked": "0.3.6", - "twig": "0.10.3", - "yargs": "6.6.0" + "version": "3.0.0-beta.20", + "resolved": "https://registry.npmjs.org/kss/-/kss-3.0.0-beta.20.tgz", + "integrity": "sha1-e38i6wVy6AJDJgQ50g657byOTbw=", + "requires": { + "bluebird": "^3.3.3", + "fs-extra": "^6.0.0", + "glob": "^7.0.3", + "handlebars": "^4.0.0", + "marked": "^0.3.19", + "nunjucks": "^3.0.1", + "resolve": "^1.6.0", + "twig": "^1.10.4", + "twig-drupal-filters": "^1.0.0", + "yargs": "^11.0.0" }, "dependencies": { - "camelcase": { + "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "locate-path": "^2.0.0" } }, "fs-extra": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", - "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "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=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "graceful-fs": "4.1.11" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, + "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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" } } } @@ -5787,16 +8645,28 @@ "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "optional": true }, "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" + "invert-kv": "^1.0.0" } }, + "leb": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", + "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=" + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -5809,8 +8679,227 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, "load-json-file": { @@ -5818,11 +8907,21 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", + "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" } }, "loader-runner": { @@ -5835,27 +8934,25 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -5865,35 +8962,133 @@ "integrity": "sha1-4mWvHoX9GRc+dDhjc4iFYHg6Avw=" }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", - "dev": true - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + }, + "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.0" + } + }, + "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.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "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" + } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, "loglevel": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.5.1.tgz", - "integrity": "sha1-GJB4yUq5BT7iFaCs2/JCROoPZQI=" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" + }, + "loglevelnext": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", + "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", + "requires": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" }, "longest": { "version": "1.0.1", @@ -5905,7 +9100,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -5913,8 +9108,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -5922,18 +9117,11 @@ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "requires": { - "lower-case": "1.1.4" - } - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true }, "macaddress": { "version": "0.2.8", @@ -5944,9 +9132,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", - "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" } }, "makeerror": { @@ -5955,42 +9142,49 @@ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { - "tmpl": "1.0.4" + "tmpl": "1.0.x" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" + }, "md5.js": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - } + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "media-typer": { @@ -5998,50 +9192,158 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "errno": "0.1.4", - "readable-stream": "2.0.6" + "mimic-fn": "^1.0.0" } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" } }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "mem-fs-editor": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-4.0.2.tgz", + "integrity": "sha512-QHvdXLLNmwJXxKdf7x27aNUren6IoPxwcM8Sfd+S6/ddQQMcYdEtVKsh6ilpqMrU18VQuKZEaH0aCGt3JDbA0g==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.5.1", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.0", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -6052,19 +9354,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -6072,10 +9374,15 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, "mime-db": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", @@ -6086,9 +9393,20 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, + "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==" + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -6104,7 +9422,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6112,6 +9430,42 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "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.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -6121,23 +9475,36 @@ } }, "mock-fs": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.4.1.tgz", - "integrity": "sha512-C8aapOvl77Bs18WCkejdLuX2kX8DaqaJ7ZmqUmX9U6HD2g31Pd0tZfNBAEVulmJWKyzUIyutrtxiIoNdXLAYsw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.5.0.tgz", + "integrity": "sha512-qqudNfOX7ZmX9vm1WIAU+gWlmxVNAnwY6UG3RkFutNywmRCUGP83tujP6IxX2DS1TmcaEZBOhYwDuYEmJYE+3w==", "dev": true }, + "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.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", - "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "requires": { - "dns-packet": "1.2.2", - "thunky": "0.1.0" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -6145,10 +9512,22 @@ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "nan": { @@ -6157,37 +9536,92 @@ "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", "optional": true }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ncname": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", - "requires": { - "xml-char-classes": "1.0.0" - } - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==" + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" + } + }, + "node-dir": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz", + "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=", + "dev": true + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", - "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=" + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" }, "node-int64": { "version": "0.4.0", @@ -6196,45 +9630,115 @@ "dev": true }, "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.11.1", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.0.6", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.4", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "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.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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.0" + } + } } }, "node-notifier": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", - "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", + "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "semver": "^5.4.1", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", "dev": true, "requires": { - "growly": "1.3.0", - "semver": "5.4.1", - "shellwords": "0.1.1", - "which": "1.3.0" + "chalk": "~0.4.0", + "underscore": "~1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } } }, "normalize-package-data": { @@ -6242,10 +9746,10 @@ "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.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -6253,7 +9757,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -6266,10 +9770,18 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "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.0" } }, "nth-check": { @@ -6277,7 +9789,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -6290,10 +9802,58 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "nunjucks": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.1.2.tgz", + "integrity": "sha512-pJXncV07mmiuIDL9OqdNkcpvifuDMzMq9qBQT9SHasAS7AEwzNp/r/jHNl+9O0+zsldcdWG9ZtXo/nwu2cTqXA==", + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "chokidar": "^1.6.0", + "postinstall-build": "^5.0.1", + "yargs": "^3.32.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + } + } + }, "nwmatcher": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", "dev": true }, "oauth-sign": { @@ -6307,10 +9867,30 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "object-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz", - "integrity": "sha512-smRWXzkvxw72VquyZ0wggySl7PFUtoDhvhpdwgESXxUrH7vVhhp9asfup1+rVLrhsl7L45Ee1Q/l5R2Ul4MwUg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", + "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", "dev": true }, "object-keys": { @@ -6318,19 +9898,69 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "obuf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "on-finished": { "version": "2.3.0", @@ -6350,21 +9980,24 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } }, "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -6372,8 +10005,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optionator": { @@ -6382,12 +10015,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -6398,31 +10031,84 @@ } } }, - "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, "requires": { - "url-parse": "1.0.5" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" }, "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } - } - } - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=" - }, - "os-homedir": { + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "original": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", + "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", + "requires": { + "url-parse": "~1.4.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" @@ -6432,7 +10118,7 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -6446,24 +10132,54 @@ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-lazy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=", + "dev": true + }, "p-limit": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -6471,29 +10187,83 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "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.1.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "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.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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.0" + } + } + } }, "param-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz", - "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "sentence-case": "1.1.3" + "no-case": "^2.2.0" } }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "requires": { - "asn1.js": "4.9.1", - "browserify-aes": "1.1.0", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -6501,10 +10271,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -6512,13 +10282,19 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, "parseurl": { @@ -6526,34 +10302,27 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, - "pascal-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz", - "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=", - "requires": { - "camel-case": "1.2.2", - "upper-case-first": "1.1.2" - } + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, - "path-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz", - "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=", - "requires": { - "sentence-case": "1.1.3" - } + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -6566,11 +10335,15 @@ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" }, "path-to-regexp": { "version": "0.1.7", @@ -6582,21 +10355,21 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -6620,7 +10393,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -6629,22 +10402,19 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" - } - }, - "pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", - "dev": true, - "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, "portfinder": { @@ -6652,28 +10422,57 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "requires": { - "chalk": "1.1.3", - "js-base64": "2.3.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6683,9 +10482,9 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" } }, "postcss-colormin": { @@ -6693,9 +10492,9 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" } }, "postcss-convert-values": { @@ -6703,8 +10502,8 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" } }, "postcss-discard-comments": { @@ -6712,7 +10511,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" } }, "postcss-discard-duplicates": { @@ -6720,7 +10519,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-discard-empty": { @@ -6728,7 +10527,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" } }, "postcss-discard-overridden": { @@ -6736,7 +10535,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" } }, "postcss-discard-unused": { @@ -6744,8 +10543,8 @@ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" } }, "postcss-filter-plugins": { @@ -6753,8 +10552,8 @@ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "^5.0.4", + "uniqid": "^4.0.0" } }, "postcss-merge-idents": { @@ -6762,9 +10561,9 @@ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" } }, "postcss-merge-longhand": { @@ -6772,7 +10571,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-merge-rules": { @@ -6780,11 +10579,11 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" } }, "postcss-message-helpers": { @@ -6797,9 +10596,9 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" } }, "postcss-minify-gradients": { @@ -6807,8 +10606,8 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" } }, "postcss-minify-params": { @@ -6816,10 +10615,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" } }, "postcss-minify-selectors": { @@ -6827,51 +10626,51 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" } }, "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", + "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "requires": { - "postcss": "6.0.13" + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "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.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "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.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", - "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "requires": { - "chalk": "2.1.0", - "source-map": "0.6.1", - "supports-color": "4.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -6880,11 +10679,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "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": "2.0.0" + "has-flag": "^3.0.0" } } } @@ -6894,41 +10693,41 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.13" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "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.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "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.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", - "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "requires": { - "chalk": "2.1.0", - "source-map": "0.6.1", - "supports-color": "4.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -6937,11 +10736,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "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": "2.0.0" + "has-flag": "^3.0.0" } } } @@ -6951,41 +10750,41 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.13" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "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.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "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.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", - "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "requires": { - "chalk": "2.1.0", - "source-map": "0.6.1", - "supports-color": "4.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -6994,11 +10793,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "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": "2.0.0" + "has-flag": "^3.0.0" } } } @@ -7008,41 +10807,41 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.13" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "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.0" + "color-convert": "^1.9.0" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "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.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "postcss": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", - "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "requires": { - "chalk": "2.1.0", - "source-map": "0.6.1", - "supports-color": "4.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -7051,11 +10850,11 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "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": "2.0.0" + "has-flag": "^3.0.0" } } } @@ -7065,7 +10864,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" } }, "postcss-normalize-url": { @@ -7073,10 +10872,10 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" } }, "postcss-ordered-values": { @@ -7084,8 +10883,8 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" } }, "postcss-reduce-idents": { @@ -7093,8 +10892,8 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" } }, "postcss-reduce-initial": { @@ -7102,7 +10901,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" } }, "postcss-reduce-transforms": { @@ -7110,9 +10909,9 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" } }, "postcss-selector-parser": { @@ -7120,9 +10919,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -7130,10 +10929,10 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" } }, "postcss-unique-selectors": { @@ -7141,9 +10940,9 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, "postcss-value-parser": { @@ -7156,11 +10955,16 @@ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, + "postinstall-build": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postinstall-build/-/postinstall-build-5.0.1.tgz", + "integrity": "sha1-uRepB5smF42aJK9aXNjLSpkdEbk=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -7177,33 +10981,42 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "prettier": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "pretty-format": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", - "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz", + "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", "dev": true, "requires": { - "ansi-regex": "2.1.1", - "ansi-styles": "3.2.0" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true } } }, @@ -7223,18 +11036,43 @@ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prop-types": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", + "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", + "dev": true, + "requires": { + "fbjs": "^0.8.16", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" + "forwarded": "~0.1.2", + "ipaddr.js": "1.6.0" } }, "prr": { @@ -7242,16 +11080,40 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "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.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -7260,9 +11122,9 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "qs": { "version": "6.5.1", @@ -7274,8 +11136,8 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -7289,55 +11151,54 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==" }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.5" - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" }, "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.5" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", @@ -7347,6 +11208,29 @@ "http-errors": "1.6.2", "iconv-lite": "0.4.19", "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } } }, "raw-loader": { @@ -7355,14 +11239,32 @@ "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, + "read-chunk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", + "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", + "dev": true, + "requires": { + "pify": "^3.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -7370,8 +11272,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -7379,12 +11281,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -7392,21 +11294,19 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.0.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "realpath-native": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", + "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "mute-stream": "0.0.5" + "util.promisify": "^1.0.0" } }, "recast": { @@ -7415,9 +11315,9 @@ "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", "requires": { "ast-types": "0.9.6", - "esprima": "3.1.3", - "private": "0.1.7", - "source-map": "0.5.7" + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" }, "dependencies": { "esprima": { @@ -7433,7 +11333,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.4.0" + "resolve": "^1.1.6" } }, "redent": { @@ -7441,8 +11341,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-css-calc": { @@ -7450,9 +11350,9 @@ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" } }, "reduce-function-call": { @@ -7460,7 +11360,7 @@ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" } }, "regenerate": { @@ -7469,9 +11369,9 @@ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" }, "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regenerator-transform": { @@ -7480,9 +11380,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.7" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -7490,17 +11390,32 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, "regexpu-core": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -7513,7 +11428,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "relateurl": { @@ -7531,11 +11446,11 @@ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", "requires": { - "css-select": "1.2.0", - "dom-converter": "0.1.4", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.3.3" + "css-select": "^1.1.0", + "dom-converter": "~0.1", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "~0.3" }, "dependencies": { "utila": { @@ -7560,45 +11475,62 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.1", - "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.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true - } + "version": "2.86.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", + "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "^4.13.1" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -7617,8 +11549,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -7632,7 +11564,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -7644,12 +11576,34 @@ } }, "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { - "path-parse": "1.0.5" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, "resolve-from": { @@ -7658,22 +11612,42 @@ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -7681,25 +11655,39 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + }, "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "once": "1.4.0" + "is-promise": "^2.1.0" + } + }, + "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.1.1" } }, "rx": { @@ -7708,292 +11696,1297 @@ "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=" }, "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "sane": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", - "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", "dev": true, "requires": { - "anymatch": "1.3.2", - "exec-sh": "0.2.1", - "fb-watchman": "1.9.2", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.10.0" + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" }, "dependencies": { - "bser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", - "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "node-int64": "0.4.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "fb-watchman": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", - "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", - "dev": true, - "requires": { - "bser": "1.0.2" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", - "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", - "requires": { - "node-forge": "0.6.33" - } - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - }, - "sentence-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz", - "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=", - "requires": { - "lower-case": "1.1.4" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" - } - }, - "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", - "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" - }, - "dependencies": { - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } }, - "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { - "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } - } - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true, - "requires": { - "glob": "7.1.2", - "interpret": "1.0.4", - "rechoir": "0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "snake-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz", - "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=", - "requires": { - "sentence-case": "1.1.3" - } - }, - "sntp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", - "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", - "dev": true, - "requires": { - "hoek": "4.2.0" - } - }, - "sockjs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", - "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", - "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.1.9" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "websocket-driver": "0.7.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz", + "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + } + } + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==" + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", + "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.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=", + "dev": true + } + } + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "slugg": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/slugg/-/slugg-1.2.1.tgz", + "integrity": "sha1-51KvIkGvPycURjxd4iXOpHYIdAo=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.x.x" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", @@ -8004,7 +12997,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -8022,145 +13015,249 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" } }, "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "requires": { + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "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": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "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.1" + "safe-buffer": "~5.1.0" } } } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "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.1" + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", + "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" }, "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "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": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "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.1" + "safe-buffer": "~5.1.0" } } } }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "requires": { + "any-observable": "^0.2.0" + } + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "strip-ansi": "3.0.1" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.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=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, "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" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -8168,18 +13265,12 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "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" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -8187,58 +13278,93 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "dev": true, + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "style-loader": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz", - "integrity": "sha1-RoKA77wEcwI806bNVuM7Wh1/w6k=", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", + "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + }, + "dependencies": { + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "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=" + } + } }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "1.1.4", - "upper-case": "1.1.3" - } + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true }, "symbol-tree": { "version": "3.2.2", @@ -8247,17 +13373,17 @@ "dev": true }, "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.4", - "slice-ansi": "0.0.4", - "string-width": "2.1.1" + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -8266,73 +13392,402 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==" + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "kind-of": "^6.0.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" - }, - "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "textextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==", + "dev": true + }, "throat": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", - "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, "through": { @@ -8340,31 +13795,70 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "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.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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.0" + } + } + } + }, "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" }, - "time-stamp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=" + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true }, "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, - "title-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz", - "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" + "os-tmpdir": "~1.0.2" } }, "tmpl": { @@ -8383,25 +13877,74 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, "toposort": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", - "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + } + } }, "tree-kill": { "version": "1.2.0", @@ -8418,12 +13961,6 @@ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, - "tryit": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", - "dev": true - }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -8435,7 +13972,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -8446,13 +13983,22 @@ "optional": true }, "twig": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/twig/-/twig-0.10.3.tgz", - "integrity": "sha1-Z2BOCOGSDr8vr4CpAeJWGJyKPGc=", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/twig/-/twig-1.11.0.tgz", + "integrity": "sha1-bJLyYWLESZKXqoSLND7qc5omvUg=", + "requires": { + "locutus": "^2.0.5", + "minimatch": "3.0.x", + "walk": "2.3.x" + } + }, + "twig-drupal-filters": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/twig-drupal-filters/-/twig-drupal-filters-1.1.0.tgz", + "integrity": "sha1-H5A1CTA0HlNkzZ2kLWcwnfVGEn4=", "requires": { - "locutus": "2.0.9", - "minimatch": "3.0.4", - "walk": "2.3.9" + "slugg": "^1.2.1", + "twig": "^1.10.5" } }, "type-check": { @@ -8461,16 +14007,31 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.18" + }, + "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==" + }, + "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" + } + } } }, "typedarray": { @@ -8478,20 +14039,111 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", + "dev": true + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" } }, "uglify-to-browserify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=" + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", + "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "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" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "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" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + }, + "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" + } + } + } }, "underscore": { "version": "1.8.3", @@ -8516,6 +14168,38 @@ } } }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -8526,7 +14210,7 @@ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", "requires": { - "macaddress": "0.2.8" + "macaddress": "^0.2.8" } }, "uniqs": { @@ -8534,29 +14218,109 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + "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" + } + }, + "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" + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "untildify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=", + "dev": true }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==" }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "uri-js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz", + "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==", "requires": { - "upper-case": "1.1.3" + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -8573,19 +14337,55 @@ } } }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=" + }, "url-parse": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", - "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.0.tgz", + "integrity": "sha512-ERuGxDiQ6Xw/agN4tuoCRbmwRuZP0cJ1lJxJubXr5Q/5cDa78+Dc4wfvtxzhzhkm5VvmW6Mf8EVj9SPGN4l8Lg==", "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" }, "dependencies": { - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=" + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, @@ -8610,372 +14410,1662 @@ } } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "walk": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.13.tgz", + "integrity": "sha512-78SMe7To9U7kqVhSoGho3GfspA089ZDBIj2f8jElg2hi6lUCoagtDJ8sSMFNlpAh5Ib8Jt1gQ6Y7gh9mzHtFng==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", + "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "user-home": "1.1.1" + "minimalistic-assert": "^1.0.0" } }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" + "webpack": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", + "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wasm-edit": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "acorn": "^5.0.0", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^0.1.1", + "enhanced-resolve": "^4.0.0", + "eslint-scope": "^3.7.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz", + "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } } }, - "walk": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz", - "integrity": "sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins=", + "webpack-addons": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", + "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", + "dev": true, "requires": { - "foreachasync": "3.0.0" + "jscodeshift": "^0.4.0" + }, + "dependencies": { + "ast-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==", + "dev": true + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "jscodeshift": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz", + "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==", + "dev": true, + "requires": { + "async": "^1.5.0", + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^6.17.3", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.12.5", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" + } + }, + "recast": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", + "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", + "dev": true, + "requires": { + "ast-types": "0.10.1", + "core-js": "^2.4.1", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + } } }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "webpack-cli": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.1.3.tgz", + "integrity": "sha512-5AsKoL/Ccn8iTrwk3uErdyhetGH+c7VRQ7Itim2GL0IhBRq5rtojVDk00buMRmFmBpw1RvHXq97Gup965LbozA==", "dev": true, "requires": { - "makeerror": "1.0.11" + "chalk": "^2.3.2", + "cross-spawn": "^6.0.5", + "diff": "^3.5.0", + "enhanced-resolve": "^4.0.0", + "envinfo": "^4.4.2", + "glob-all": "^3.1.0", + "global-modules": "^1.0.0", + "got": "^8.2.0", + "import-local": "^1.0.0", + "inquirer": "^5.1.0", + "interpret": "^1.0.4", + "jscodeshift": "^0.5.0", + "listr": "^0.13.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.5", + "log-symbols": "^2.2.0", + "mkdirp": "^0.5.1", + "p-each-series": "^1.0.0", + "p-lazy": "^1.0.0", + "prettier": "^1.5.3", + "supports-color": "^5.3.0", + "v8-compile-cache": "^1.1.2", + "webpack-addons": "^1.1.5", + "yargs": "^11.1.0", + "yeoman-environment": "^2.0.0", + "yeoman-generator": "^2.0.4" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + } } }, - "watch": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", - "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=", - "dev": true - }, - "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", - "requires": { - "async": "2.5.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "webpack-dev-middleware": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz", + "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==", + "requires": { + "loud-rejection": "^1.6.0", + "memory-fs": "~0.4.1", + "mime": "^2.1.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "url-join": "^4.0.0", + "webpack-log": "^1.0.1" }, "dependencies": { - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "requires": { - "lodash": "4.17.4" - } + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" } } }, - "wbuf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", - "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "webpack-dev-server": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz", + "integrity": "sha512-itcIUDFkHuj1/QQxzUFOEXXmxOj5bku2ScLEsOFPapnq2JRTm58gPdtnBphBJOKL2+M3p6+xygL64bI+3eyzzw==", "requires": { - "minimalistic-assert": "1.0.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "webpack": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz", - "integrity": "sha1-LgRX8KuxrF3zqxBsacZy8jZ4Xwc=", - "requires": { - "acorn": "5.1.2", - "acorn-dynamic-import": "2.0.2", - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "interpret": "1.0.4", - "json-loader": "0.5.4", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "0.2.17", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.0.0", - "source-map": "0.5.7", - "supports-color": "3.2.3", - "tapable": "0.2.8", - "uglify-js": "2.8.29", - "watchpack": "1.4.0", - "webpack-sources": "0.2.3", - "yargs": "6.6.0" + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.1.4", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "3.1.3", + "webpack-log": "^1.1.2", + "yargs": "11.0.0" }, "dependencies": { - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "lodash": "4.17.4" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chokidar": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", + "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" + } }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "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" + } + } } }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "has-flag": "1.0.0" + "ms": "2.0.0" } }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } - } - } - }, - "webpack-dev-middleware": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz", - "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", - "requires": { - "memory-fs": "0.4.1", - "mime": "1.4.1", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "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" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "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": { + "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" + } + } + } + }, + "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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "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.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "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" + } } } }, - "webpack-dev-server": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.1.tgz", - "integrity": "sha512-qFKs4Wg6JI6FkAQ6WFqeDCCxXEBLsDHkqJB3f9tmlqx8C68Y9vQWwcaMT4Q9H8WF32Q6QUNmgK4qQkdHfXvj/g==", + "webpack-log": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", + "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.4.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "loglevel": "1.5.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.1", - "serve-index": "1.9.1", - "sockjs": "0.3.18", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "4.5.0", - "webpack-dev-middleware": "1.12.0", - "yargs": "6.6.0" + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" }, "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "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": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "color-convert": "^1.9.0" } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "2.0.0" - } - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "has-flag": "^3.0.0" } } } }, "webpack-node-externals": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.5.4.tgz", - "integrity": "sha1-6gW6FxCKI+d2w1xC57sOhsIlvgA=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz", + "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==", "dev": true }, "webpack-sources": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "requires": { - "source-list-map": "1.1.2", - "source-map": "0.5.7" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-list-map": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -8984,48 +16074,45 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.2" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz", - "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=" + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" }, "whatwg-encoding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", - "integrity": "sha1-PGxFGhmO567FWx7GHQkgxngBpfQ=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", "dev": true, "requires": { - "iconv-lite": "0.4.13" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - } + "iconv-lite": "0.4.19" } }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", + "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==", + "dev": true + }, "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz", + "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", "dev": true, "requires": { - "tr46": "0.0.3", - "webidl-conversions": "3.0.1" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "whet.extend": { @@ -9037,43 +16124,34 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "optional": true }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, - "worker-farm": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", - "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", - "dev": true, - "requires": { - "errno": "0.1.4", - "xtend": "4.0.1" - } - }, "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" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -9087,18 +16165,40 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, - "xml-char-classes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" + "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==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", + "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" + } }, "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", "dev": true }, "xtend": { @@ -9111,29 +16211,321 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } }, "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { - "camelcase": "3.0.0" + "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=" + } + } + }, + "yeoman-environment": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.1.1.tgz", + "integrity": "sha512-IBLwCUrJrDxBYuwdYm1wuF3O/CR2LpXR0rFS684QOrU6x69DPPrsdd20dZOFaedZ/M9sON7po73WhO3I1CbgNQ==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.3.1", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^5.2.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.1.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "yeoman-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.5.tgz", + "integrity": "sha512-rV6tJ8oYzm4mmdF2T3wjY+Q42jKF2YiiD0VKfJ8/0ZYwmhCKC9Xs2346HVLPj/xE13i68psnFJv7iS6gWRkeAg==", + "dev": true, + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^5.1.0", + "dateformat": "^3.0.3", + "debug": "^3.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^2.1.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^4.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^4.0.2", + "read-chunk": "^2.1.0", + "read-pkg-up": "^3.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^2.0.0", + "yeoman-environment": "^2.0.5" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } } diff --git a/package.json b/package.json index 41f6705..e0234ac 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "huron", "description": "An in-browser prototyping tool built on top of webpack and kss-node", "author": "Alley Interactive", - "version": "2.3.3", + "version": "2.3.4", "license": "GPL-2.0", "repository": { "type": "git", @@ -11,21 +11,21 @@ "scripts": { "doc": "./node_modules/.bin/jsdoc src -r -c ./config/jsdoc.json", "help": "./node_modules/.bin/babel-node src/cli/index.js -h", - "build": "npm run build-cli && npm run test:once && npm run build-web", - "dev": "concurrently -k \"npm run dev-cli\" \"npm run dev-web\"", - "dev-cli": "BABEL_ENV=cli webpack --config config/webpack.server.config.js -d --watch --progress", - "build-cli": "BABEL_ENV=cli webpack --config config/webpack.server.config.js", - "dev-web": "BABEL_ENV=browser webpack --config config/webpack.browser.config.js -d --watch --progress", - "build-web": "BABEL_ENV=browser webpack --config config/webpack.browser.config.js", - "test:once": "jest", - "test": "jest --watch" + "build": "npm run build:cli && npm run test:once && npm run build:web", + "dev": "concurrently -k \"npm run dev:cli\" \"npm run dev:web\"", + "dev:cli": "BABEL_ENV=cli webpack --config config/webpack.server.config.js --mode development", + "build:cli": "BABEL_ENV=cli webpack --config config/webpack.server.config.js --mode production", + "dev:web": "BABEL_ENV=browser webpack --config config/webpack.browser.config.js --mode development", + "build:web": "BABEL_ENV=browser webpack --config config/webpack.browser.config.js --mode production", + "test:once": "BABEL_ENV=test jest", + "test": "BABEL_ENV=test jest --watch" }, "bin": { "huron": "./dist/index.js" }, "engines": { - "node": "6", - "npm": "5" + "node": "8", + "npm": "6" }, "files": [ "dist", @@ -33,45 +33,46 @@ "templates" ], "dependencies": { - "babel-core": "6.25.0", - "chalk": "1.1.3", - "commander": "2.9.0", - "concurrently": "^3.5.0", - "css-loader": "0.26.1", - "dom-loader": "1.0.4", - "fs-extra": "4.0.2", - "gaze": "0.5.2", - "handlebars": "4.0.6", - "handlebars-loader": "^1.6.0", - "html-loader": "0.4.3", - "html-webpack-plugin": "^2.30.1", - "immutable": "3.8.1", - "json-loader": "0.5.4", - "kss": "^3.0.0-beta.18", - "lodash": "^4.17.4", - "opn": "^5.1.0", - "style-loader": "0.13.1", - "webpack": ">=2.6.1", - "webpack-dev-server": "^2.9.3" + "babel-core": "^6.26.3", + "chalk": "^2.4.1", + "commander": "^2.15.1", + "concurrently": "^3.5.1", + "css-loader": "^0.28.11", + "dom-loader": "^1.0.4", + "fs-extra": "^6.0.1", + "gaze": "^1.1.2", + "handlebars": "^4.0.11", + "handlebars-loader": "^1.7.0", + "html-loader": "^0.5.5", + "html-webpack-plugin": "^3.2.0", + "immutable": "^3.8.2", + "json-loader": "^0.5.7", + "kss": "^3.0.0-beta.20", + "lodash": "^4.17.10", + "opn": "^5.3.0", + "style-loader": "^0.21.0", + "webpack": "^4.8.3", + "webpack-dev-server": "^3.1.4" }, "devDependencies": { - "babel-cli": "6.24.0", - "babel-jest": "20.0.3", - "babel-loader": "^7.1.2", - "babel-preset-env": "^1.6.0", - "clean-webpack-plugin": "0.1.15", - "eslint": "3.11.1", - "eslint-config-airbnb": "13.0.0", - "eslint-loader": "^1.6.1", - "eslint-plugin-import": "2.2.0", - "eslint-plugin-jest": "20.0.3", - "eslint-plugin-jsx-a11y": "2.2.3", - "eslint-plugin-react": "6.8.0", - "jest": "20.0.4", - "jsdoc": "3.4.3", - "mock-fs": "4.4.1", + "babel-cli": "^6.26.0", + "babel-jest": "^22.4.3", + "babel-loader": "^7.1.4", + "babel-preset-env": "^1.7.0", + "clean-webpack-plugin": "^0.1.19", + "eslint": "^4.19.1", + "eslint-config-airbnb": "^16.1.0", + "eslint-loader": "^2.0.0", + "eslint-plugin-import": "^2.12.0", + "eslint-plugin-jest": "^21.15.1", + "eslint-plugin-jsx-a11y": "^6.0.3", + "eslint-plugin-react": "^7.8.2", + "jest": "^22.4.3", + "jsdoc": "^3.5.5", + "mock-fs": "^4.5.0", "raw-loader": "^0.5.1", - "regenerator-runtime": "0.10.5", - "webpack-node-externals": "1.5.4" + "regenerator-runtime": "^0.11.1", + "webpack-cli": "^2.1.3", + "webpack-node-externals": "^1.7.2" } } diff --git a/src/cli/actions.js b/src/cli/actions.js index 7e19f1c..df3a183 100644 --- a/src/cli/actions.js +++ b/src/cli/actions.js @@ -1,4 +1,6 @@ -/** @module cli/actions */ +/** + * @module cli/actions + */ // Imports import path from 'path'; @@ -105,9 +107,8 @@ export function updateFile(filepath, store) { return updateTemplate(filepath, section, store); } - console.log( // eslint-disable-line no-console - chalk.red(`Could not find associated KSS section for ${filepath}`) - ); + console.log(chalk.red(`Failed to find KSS section for ${filepath}`)); + break; // KSS documentation (default extension is `.css`) @@ -172,9 +173,8 @@ export function deleteFile(filepath, store) { break; default: - console.warn( // eslint-disable-line no-console - chalk.red(`Could not delete: ${file.name}`) - ); + console.warn( // eslint-disable-line no-console + chalk.red(`Could not delete: ${file.name}`)); break; } diff --git a/src/cli/handleHTML.js b/src/cli/handleHTML.js index 3501374..668100c 100644 --- a/src/cli/handleHTML.js +++ b/src/cli/handleHTML.js @@ -1,7 +1,8 @@ -/** @module cli/html-handler */ +/** + * @module cli/html-handler + */ import path from 'path'; import fs from 'fs-extra'; - import * as utils from './utils'; /** @@ -100,9 +101,9 @@ export function updatePrototype(filepath, store) { ); return store.setIn( - ['prototypes', file.name], - requirePath - ); + ['prototypes', file.name], + requirePath + ); } console.log(`File ${file.base} could not be read`); @@ -127,7 +128,7 @@ export function deletePrototype(filepath, store) { ); return store.setIn( - ['prototypes', file.name], - requirePath - ); + ['prototypes', file.name], + requirePath + ); } diff --git a/src/cli/handleKSS.js b/src/cli/handleKSS.js index a2062e1..01fcb2a 100644 --- a/src/cli/handleKSS.js +++ b/src/cli/handleKSS.js @@ -1,4 +1,6 @@ -/** @module cli/kss-handler */ +/** + * @module cli/kss-handler + */ import path from 'path'; import fs from 'fs-extra'; @@ -338,7 +340,7 @@ function unsetSection(section, file, store, removed) { newStore ); - // Remove associated inline template + // Remove associated inline template if (isInline) { utils.removeFile(section.referenceURI, 'template', kssPath, newStore); } @@ -426,6 +428,6 @@ function fieldShouldOutput(oldSection, newSection, field) { return (oldSection && (oldSection[field] !== newSection[field] || oldSection.referenceURI !== newSection.referenceURI) - ) || + ) || !oldSection; } diff --git a/src/cli/server.js b/src/cli/server.js index 13edbcd..5e24028 100644 --- a/src/cli/server.js +++ b/src/cli/server.js @@ -16,18 +16,16 @@ import { removeTrailingSlash } from './utils'; * @see {@link module:cli/generate-config generateConfig} */ export default function startWebpack(config) { - const huron = config.huron; - const webpackConfig = config.webpack; + const { + huron, + webpackConfig, + } = config; const compiler = webpack(webpackConfig); if (program.progress) { - compiler.apply( - new webpack.ProgressPlugin( - (percentage, msg) => { - console.log(`${(percentage * 100)}% `, msg); - } - ) - ); + compiler.apply(new webpack.ProgressPlugin((percentage, msg) => { + console.log(`${(percentage * 100)}% `, msg); + })); } if (program.production) { @@ -39,20 +37,14 @@ export default function startWebpack(config) { } if (stats.hasErrors()) { - console.error( - chalk.red( - 'Webpack encountered errors during compile: ', - info.errors - ) - ); + console.error(chalk.red( + 'Webpack encountered errors during compile: ', + info.errors + )); } if (stats.hasWarnings()) { - console.error( - chalk.yellow( - 'Webpack encountered warnings during compile: ', info.warnings - ) - ); + console.error(chalk.yellow('Webpack encountered warnings during compile: ', info.warnings)); // eslint-disable-line max-len } }); } else { diff --git a/src/cli/utils.js b/src/cli/utils.js index 9d80b29..98b49d1 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -1,4 +1,6 @@ -/** @module cli/utilities */ +/** + * @module cli/utilities + */ import path from 'path'; import fs from 'fs-extra'; import chalk from 'chalk'; @@ -53,9 +55,8 @@ export function writeSectionData(store, section, sectionPath = false) { ); } - console.warn( // eslint-disable-line no-console - chalk.red(`Failed to write section data for ${section.referenceURI}`) - ); + // eslint-disable-next-line no-console + console.warn(chalk.red(`Failed to write data for ${section.referenceURI}`)); return false; } @@ -227,9 +228,7 @@ export function removeFile(id, type, filepath, store) { fs.removeSync(outputPath); console.log(chalk.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console } catch (e) { - console.log( // eslint-disable-line no-console - chalk.red(`${outputRelative} does not exist or cannot be deleted`) - ); + console.log(chalk.red(`${outputRelative} does not exist or cannot be deleted`)); // eslint-disable-line } return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; diff --git a/src/defaultConfig/README.md b/src/defaultConfig/README.md index 25693be..e46c085 100644 --- a/src/defaultConfig/README.md +++ b/src/defaultConfig/README.md @@ -11,7 +11,7 @@ Huron's configuration object must currently be a top-level `huron` property of t * **kss** {string} : default `'/css'` - relative path to KSS source directory. Currently you may only provide a single directory, but in the future we may allow an array. * **kssExtension** {string} : default `'.css'` - Extension of files containing your KSS documentation * **kssOptions**: {object} default - + ```javascript { multiline: true, diff --git a/src/web/index.js b/src/web/index.js index 91aa8cc..010afaf 100644 --- a/src/web/index.js +++ b/src/web/index.js @@ -1,6 +1,6 @@ +/* eslint-disable no-underscore-dangle */ import { compose, isEqual } from 'lodash/fp'; -/* eslint-disable no-underscore-dangle */ // Accept the huron.js module for Huron development if (module.hot) { module.hot.accept(); @@ -12,7 +12,6 @@ if (module.hot) { * and [huron-type] corresponding with the required KSS field */ export default class InsertNodes { - constructor(modules, store) { /** webpack module list in which keys are relative require paths and values are the module contents */ this._modules = modules; @@ -265,7 +264,7 @@ export default class InsertNodes { .filter((name) => this._prototypes[name] === key); if (prototype.length) { - id = prototype[0]; + [id] = prototype; type = 'prototype'; } } else if (key === this._sectionTemplatePath) { @@ -293,7 +292,7 @@ export default class InsertNodes { testTypes.length ) { id = sections[testSections[0]].referenceURI; - type = testTypes[0]; + [type] = testTypes; } } @@ -302,7 +301,9 @@ export default class InsertNodes { const replaceKey = this.generateModuleReplaceKey(key); if (renderData) { - return Object.assign({ id, type, key, replaceKey, module }, renderData); + return Object.assign({ + id, type, key, replaceKey, module, + }, renderData); } } @@ -441,7 +442,8 @@ export default class InsertNodes { if (cached) { moduleMeta = this.meta[key]; } else { - moduleMeta = this.meta[key] = this.getMetaFromPath(key, module); + this.meta[key] = this.getMetaFromPath(key, module); + moduleMeta = this.meta[key]; } if (moduleMeta) { @@ -477,7 +479,7 @@ export default class InsertNodes { if (newEl) { const title = this._sections - .sectionsByURI[templateId] ? + .sectionsByURI[templateId] ? this._sections .sectionsByURI[templateId] .header : @@ -675,7 +677,7 @@ export default class InsertNodes { )(meta.data, modifier); const rendered = meta.render(data); const renderedTemplate = InsertNodes.convertToElement(rendered) - .querySelector('template'); + .querySelector('template'); let renderedContents = null; // Remove existing module tags diff --git a/templates/hotTemplate.js b/templates/hotTemplate.js index 3e2da3d..e6a1e50 100644 --- a/templates/hotTemplate.js +++ b/templates/hotTemplate.js @@ -11,10 +11,10 @@ import sectionTemplate from './section.hbs'; /* eslint-enable */ const assets = require.context( - hotScope.requirePath, - true, - hotScope.requireRegex - ); + hotScope.requirePath, + true, + hotScope.requireRegex +); const modules = {}; modules[hotScope.sectionTemplatePath] = sectionTemplate; @@ -41,7 +41,7 @@ if (module.hot) { updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved newModules.forEach((module) => { - modules[module[0]] = module[1]; + modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring hotReplace(module[0], module[1], modules); }); } From e04e749e42baa1b7ad24f456e51e2b899991f908 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Thu, 17 May 2018 23:40:49 -0700 Subject: [PATCH 02/24] Fix webpack config so it will load. --- dist/cli/index.js | 2 +- dist/web/index.js | 6 +- dist/web/index.js.map | 2 +- src/cli/server.js | 2 +- src/defaultConfig/webpack.config.js | 102 ++++++++++++++-------------- 5 files changed, 54 insertions(+), 60 deletions(-) diff --git a/dist/cli/index.js b/dist/cli/index.js index 5f1867b..849d27e 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e=>{const t=process.cwd();return{entry:{},output:{path:r.default.join(t,e.root),publicPath:s.default.production?"":`/${e.root}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},plugins:[new o.default.HotModuleReplacementPlugin,new o.default.NamedModulesPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(t,e.root,e.output)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(t,e.root,"huron-assets")],use:{loader:"handlebars-loader",options:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}})},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpackConfig:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",options:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js b/dist/web/index.js index 3655c3d..e4de4a3 100644 --- a/dist/web/index.js +++ b/dist/web/index.js @@ -1,6 +1,2 @@ -module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="../",e(e.s=0)}({"./node_modules/lodash/fp.js":function(t,n,e){var r=e("./node_modules/lodash/lodash.min.js").runInContext();t.exports=e("./node_modules/lodash/fp/_baseConvert.js")(r,r)},"./node_modules/lodash/fp/_baseConvert.js":function(t,n,e){var r=e("./node_modules/lodash/fp/_mapping.js"),u=e("./node_modules/lodash/fp/placeholder.js"),i=Array.prototype.push;function o(t,n){return 2==n?function(n,e){return t(n,e)}:function(n){return t(n)}}function a(t){for(var n=t?t.length:0,e=Array(n);n--;)e[n]=t[n];return e}function c(t,n){return function(){var e=arguments.length;if(e){for(var r=Array(e);e--;)r[e]=arguments[e];var u=r[0]=n.apply(void 0,r);return t.apply(void 0,r),u}}}t.exports=function t(n,e,f,l){var s,p="function"==typeof e,h=e===Object(e);if(h&&(l=f,f=e,e=void 0),null==f)throw new TypeError;l||(l={});var d={cap:!("cap"in l)||l.cap,curry:!("curry"in l)||l.curry,fixed:!("fixed"in l)||l.fixed,immutable:!("immutable"in l)||l.immutable,rearg:!("rearg"in l)||l.rearg},g="curry"in l&&l.curry,y="fixed"in l&&l.fixed,_="rearg"in l&&l.rearg,v=p?f:u,b=p?f.runInContext():void 0,m=p?f:{ary:n.ary,assign:n.assign,clone:n.clone,curry:n.curry,forEach:n.forEach,isArray:n.isArray,isError:n.isError,isFunction:n.isFunction,isWeakMap:n.isWeakMap,iteratee:n.iteratee,keys:n.keys,rearg:n.rearg,toInteger:n.toInteger,toPath:n.toPath},x=m.ary,j=m.assign,A=m.clone,w=m.curry,k=m.forEach,O=m.isArray,I=m.isError,E=m.isFunction,W=m.isWeakMap,R=m.keys,S=m.rearg,M=m.toInteger,B=m.toPath,L=R(r.aryMethod),C={castArray:function(t){return function(){var n=arguments[0];return O(n)?t(a(n)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var n=arguments[0],e=arguments[1],r=t(n,e),u=r.length;return d.cap&&"number"==typeof e?(e=e>2?e-2:1,u&&u<=e?r:o(r,e)):r}},mixin:function(t){return function(n){var e=this;if(!E(e))return t(e,Object(n));var r=[];return k(R(n),function(t){E(n[t])&&r.push([t,e.prototype[t]])}),t(e,Object(n)),k(r,function(t){var n=t[1];E(n)?e.prototype[t[0]]=n:delete e.prototype[t[0]]}),e}},nthArg:function(t){return function(n){var e=n<0?1:M(n)+1;return w(t(n),e)}},rearg:function(t){return function(n,e){var r=e?e.length:0;return w(t(n,e),r)}},runInContext:function(e){return function(r){return t(n,e(r),l)}}};function T(t,n){if(d.cap){var e=r.iterateeRearg[t];if(e)return function(t,n){return U(t,function(t){var e=n.length;return function(t,n){return 2==n?function(n,e){return t.apply(void 0,arguments)}:function(n){return t.apply(void 0,arguments)}}(S(o(t,e),n),e)})}(n,e);var u=!p&&r.iterateeAry[t];if(u)return function(t,n){return U(t,function(t){return"function"==typeof t?o(t,n):t})}(n,u)}return n}function z(t,n,e){if(d.fixed&&(y||!r.skipFixed[t])){var u=r.methodSpread[t],o=u&&u.start;return void 0===o?x(n,e):function(t,n){return function(){for(var e=arguments.length,r=e-1,u=Array(e);e--;)u[e]=arguments[e];var o=u[n],a=u.slice(0,n);return o&&i.apply(a,o),n!=r&&i.apply(a,u.slice(n+1)),t.apply(this,a)}}(n,o)}return n}function F(t,n,e){return d.rearg&&e>1&&(_||!r.skipRearg[t])?S(n,r.methodRearg[t]||r.aryRearg[e]):n}function D(t,n){for(var e=-1,r=(n=B(n)).length,u=r-1,i=A(Object(t)),o=i;null!=o&&++e1?w(c,f):c,!1}var c,f}),!e}),e||(e=i),e==n&&(e=g?w(e,1):function(){return n.apply(this,arguments)}),e.convert=P(u,n),r.placeholder[u]&&(s=!0,e.placeholder=n.placeholder=v),e}if(!h)return N(e,f);var q=f,$=[];return k(L,function(t){k(r.aryMethod[t],function(t){var n=q[r.remap[t]||t];n&&$.push([t,N(t,n)])})}),k(R(q),function(t){var n=q[t];if("function"==typeof n){for(var e=$.length;e--;)if($[e][0]==t)return;n.convert=P(t,n),$.push([t,n])}}),k($,function(t){q[t[0]]=t[1]}),q.convert=function(t){return q.runInContext.convert(t)(void 0)},s&&(q.placeholder=v),k(R(q),function(t){k(r.realToAlias[t]||[],function(n){q[n]=q[t]})}),q}},"./node_modules/lodash/fp/_mapping.js":function(t,n){n.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},n.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},n.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},n.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},n.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},n.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},n.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},n.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},n.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},n.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=n.aliasToReal,r={};for(var u in e){var i=e[u];t.call(r,i)?r[i].push(u):r[i]=[u]}return r}(),n.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},n.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},n.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},"./node_modules/lodash/fp/placeholder.js":function(t,n){t.exports={}},"./node_modules/lodash/lodash.min.js":function(t,n,e){(function(t,r){var u; -/** - * @license - * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE - */(function(){function i(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function o(t,n,e,r){for(var u=-1,i=null==t?0:t.length;++u"']/g,G=RegExp(V.source),J=RegExp(H.source),Y=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,X=/<%=([\s\S]+?)%>/g,tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nt=/^\w*$/,et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rt=/[\\^$.*+?()[\]{}|]/g,ut=RegExp(rt.source),it=/^\s+|\s+$/g,ot=/^\s+/,at=/\s+$/,ct=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ft=/\{\n\/\* \[wrapped with (.+)\] \*/,lt=/,? & /,st=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,pt=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dt=/\w*$/,gt=/^[-+]0x[0-9a-f]+$/i,yt=/^0b[01]+$/i,_t=/^\[object .+?Constructor\]$/,vt=/^0o[0-7]+$/i,bt=/^(?:0|[1-9]\d*)$/,mt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xt=/($^)/,jt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",wt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,kt=RegExp("['’]","g"),Ot=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),It=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+At,"g"),Et=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",wt].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,St="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Mt={};Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=!0,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=!1;var Bt={};Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object DataView]"]=Bt["[object Boolean]"]=Bt["[object Date]"]=Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object Symbol]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object WeakMap]"]=!1;var Lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ct=parseFloat,Tt=parseInt,zt="object"==typeof t&&t&&t.Object===Object&&t,Ft="object"==typeof self&&self&&self.Object===Object&&self,Dt=zt||Ft||Function("return this")(),Pt="object"==typeof n&&n&&!n.nodeType&&n,Ut=Pt&&"object"==typeof r&&r&&!r.nodeType&&r,Nt=Ut&&Ut.exports===Pt,qt=Nt&&zt.process,$t=function(){try{var t=Ut&&Ut.f&&Ut.f("util").types;return t||qt&&qt.binding&&qt.binding("util")}catch(t){}}(),Kt=$t&&$t.isArrayBuffer,Zt=$t&&$t.isDate,Vt=$t&&$t.isMap,Ht=$t&&$t.isRegExp,Gt=$t&&$t.isSet,Jt=$t&&$t.isTypedArray,Yt=A("length"),Qt=w({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Xt=w({"&":"&","<":"<",">":">",'"':""","'":"'"}),tn=w({"&":"&","<":"<",">":">",""":'"',"'":"'"}),nn=function t(n){function e(t){if(Nr(t)&&!Ro(t)&&!(t instanceof w)){if(t instanceof u)return t;if(Ru.call(t,"__wrapped__"))return dr(t)}return new u(t)}function r(){}function u(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=P}function w(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function At(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function an(t,n,e,r,u,i){var o,c=1&n,f=2&n,l=4&n;if(e&&(o=u?e(t,r,u,i):e(t)),o!==P)return o;if(!Ur(t))return t;if(r=Ro(t)){if(o=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&Ru.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!c)return ge(t,o)}else{var s=Di(t),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(Mo(t))return fe(t,c);if("[object Object]"==s||"[object Arguments]"==s||p&&!u){if(o=f||p?{}:Xe(t),!c)return f?function(t,n){return ye(t,Fi(t),n)}(t,function(t,n){return t&&ye(n,ru(n),t)}(o,t)):function(t,n){return ye(t,zi(t),n)}(t,en(o,t))}else{if(!Bt[s])return u?t:{};o=function(t,n,e){var r=t.constructor;switch(n){case"[object ArrayBuffer]":return le(t);case"[object Boolean]":case"[object Date]":return new r(+t);case"[object DataView]":return n=e?le(t.buffer):t.buffer,new t.constructor(n,t.byteOffset,t.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return se(t,e);case"[object Map]":return new r;case"[object Number]":case"[object String]":return new r(t);case"[object RegExp]":return(n=new t.constructor(t.source,dt.exec(t))).lastIndex=t.lastIndex,n;case"[object Set]":return new r;case"[object Symbol]":return ki?ju(ki.call(t)):{}}}(t,s,c)}}if(i||(i=new zt),u=i.get(t))return u;if(i.set(t,o),To(t))return t.forEach(function(r){o.add(an(r,n,e,r,t,i))}),o;if(Lo(t))return t.forEach(function(r,u){o.set(u,an(r,n,e,u,t,i))}),o;f=l?f?Ke:$e:f?ru:eu;var h=r?P:f(t);return a(h||t,function(r,u){h&&(r=t[u=r]),qt(o,u,an(r,n,e,u,t,i))}),o}function cn(t,n,e){var r=e.length;if(null==t)return!r;for(t=ju(t);r--;){var u=e[r],i=n[u],o=t[u];if(o===P&&!(u in t)||!i(o))return!1}return!0}function fn(t,n,e){if("function"!=typeof t)throw new ku("Expected a function");return Ni(function(){t.apply(P,e)},n)}function ln(t,n,e,r){var u=-1,i=l,o=!0,a=t.length,c=[],f=n.length;if(!a)return c;e&&(n=p(n,E(e))),r?(i=s,o=!1):200<=n.length&&(i=R,o=!1,n=new Lt(n));t:for(;++un}function jn(t,n){return null!=t&&Ru.call(t,n)}function An(t,n){return null!=t&&n in ju(t)}function wn(t,n,e){for(var r=e?s:l,u=t[0].length,i=t.length,o=i,a=_u(i),c=1/0,f=[];o--;){var h=t[o];o&&n&&(h=p(h,E(n))),c=oi(h.length,c),a[o]=!e&&(n||120<=u&&120<=h.length)?new Lt(o&&h):P}h=t[0];var d=-1,g=a[0];t:for(;++d(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))?t:t[sr(br(n))])?P:i(n,t,e)}function On(t){return Nr(t)&&"[object Arguments]"==mn(t)}function In(t,n,e,r,u){if(t===n)n=!0;else if(null==t||null==n||!Nr(t)&&!Nr(n))n=t!=t&&n!=n;else t:{var i=Ro(t),o=Ro(n),a=i?"[object Array]":Di(t),c=o?"[object Array]":Di(n),f="[object Object]"==(a="[object Arguments]"==a?"[object Object]":a);o="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c);if((c=a==c)&&Mo(t)){if(!Mo(n)){n=!1;break t}i=!0,f=!1}if(c&&!f)u||(u=new zt),n=i||zo(t)?Ne(t,n,e,r,In,u):function(t,n,e,r,u,i,o){switch(e){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!i(new Du(t),new Du(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Lr(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var a=L;case"[object Set]":if(a||(a=z),t.size!=n.size&&!(1&r))break;return(e=o.get(t))?e==n:(r|=2,o.set(t,n),n=Ne(a(t),a(n),r,u,i,o),o.delete(t),n);case"[object Symbol]":if(ki)return ki.call(t)==ki.call(n)}return!1}(t,n,a,e,r,In,u);else{if(!(1&e)&&(i=f&&Ru.call(t,"__wrapped__"),a=o&&Ru.call(n,"__wrapped__"),i||a)){t=i?t.value():t,n=a?n.value():n,u||(u=new zt),n=In(t,n,e,r,u);break t}if(c)n:if(u||(u=new zt),i=1&e,a=$e(t),o=a.length,c=$e(n).length,o==c||i){for(f=o;f--;){var l=a[f];if(!(i?l in n:Ru.call(n,l))){n=!1;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{c=!0,u.set(t,n),u.set(n,t);for(var s=i;++fn?e:0,e)?t[n]:P}function Fn(t,n,e){var r=-1;return n=p(n.length?n:[lu],E(He())),function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].c;return t}(t=Bn(t,function(t){return{a:p(n,function(n){return n(t)}),b:++r,c:t}}),function(t,n){var r;t:{r=-1;for(var u=t.a,i=n.a,o=u.length,a=e.length;++r=a?c:c*("desc"==e[r]?-1:1);break t}}r=t.b-n.b}return r})}function Dn(t,n,e){for(var r=-1,u=n.length,i={};++rn||9007199254740991n&&(n=-n>u?0:u+n),0>(e=e>u?u:e)&&(e+=u),u=n>e?0:e-n>>>0,n>>>=0,e=_u(u);++r=u){for(;r>>1,o=t[i];null!==o&&!Zr(o)&&(e?o<=n:o(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))||delete t[sr(br(n))]}function ne(t,n,e,r){for(var u=t.length,i=r?u:-1;(r?i--:++ir)return r?Xn(t[0]):[];for(var u=-1,i=_u(r);++u=r?t:Zn(t,n,e)}function fe(t,n){if(n)return t.slice();var e=t.length;e=Pu?Pu(e):new t.constructor(e);return t.copy(e),e}function le(t){var n=new t.constructor(t.byteLength);return new Du(n).set(new Du(t)),n}function se(t,n){return new t.constructor(n?le(t.buffer):t.buffer,t.byteOffset,t.length)}function pe(t,n){if(t!==n){var e=t!==P,r=null===t,u=t==t,i=Zr(t),o=n!==P,a=null===n,c=n==n,f=Zr(n);if(!a&&!f&&!i&&t>n||i&&o&&c&&!a&&!f||r&&o&&c||!e&&c||!u)return 1;if(!r&&!i&&!f&&tu?P:i,u=1),n=ju(n);++ro&&a[0]!==f&&a[o-1]!==f?[]:T(a,f)).length)e?e?qn(n,t):n:(e=qn(n,Qu(t/F(n))),Wt.test(n)?ce(D(e),0,t).join(""):e.slice(0,t))}function Me(t,n,e,r){var u=1&n,o=Ae(t);return function n(){for(var a=-1,c=arguments.length,f=-1,l=r.length,s=_u(l+c),p=this&&this!==Dt&&this instanceof n?o:t;++fn||r)&&(1&t&&(i[2]=p[2],n|=1&e?0:4),(e=p[3])&&(r=i[3],i[3]=r?he(r,e,p[4]):e,i[4]=r?T(i[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=i[5],i[5]=r?de(r,e,p[6]):e,i[6]=r?T(i[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(i[7]=e),128&t&&(i[8]=null==i[8]?p[8]:oi(i[8],p[8])),null==i[9]&&(i[9]=p[9]),i[0]=p[0],i[1]=n),t=i[0],n=i[1],e=i[2],r=i[3],u=i[4],!(a=i[9]=i[9]===P?c?0:t.length:ii(i[9]-f,0))&&24&n&&(n&=-25),cr((p?Mi:Ui)(n&&1!=n?8==n||16==n?we(t,n,a):32!=n&&33!=n||u.length?Ie.apply(P,i):Me(t,n,e,r):function(t,n,e){var r=1&n,u=Ae(t);return function n(){return(this&&this!==Dt&&this instanceof n?u:t).apply(r?e:this,arguments)}}(t,n,e),i),t,n)}function De(t,n,e,r){return t===P||Lr(t,Iu[e])&&!Ru.call(r,e)?n:t}function Pe(t,n,e,r,u,i){return Ur(t)&&Ur(n)&&(i.set(n,t),Tn(t,n,P,Pe,i),i.delete(n)),t}function Ue(t){return $r(t)?P:t}function Ne(t,n,e,r,u,i){var o=1&e,a=t.length;if(a!=(c=n.length)&&!(o&&c>a))return!1;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,f=!0,l=2&e?new Lt:P;for(i.set(t,n),i.set(n,t);++c(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),v(t,He(n,3),e)):-1}function yr(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r-1;return e!==P&&(u=Gr(e),u=0>e?ii(r+u,0):oi(u,r-1)),v(t,He(n,3),u,!0)}function _r(t){return null!=t&&t.length?dn(t,1):[]}function vr(t){return t&&t.length?t[0]:P}function br(t){var n=null==t?0:t.length;return n?t[n-1]:P}function mr(t,n){return t&&t.length&&n&&n.length?Pn(t,n):t}function xr(t){return null==t?t:li.call(t)}function jr(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(Tr(t))return n=ii(t.length,n),!0}),I(n,function(n){return p(t,A(n))})}function Ar(t,n){if(!t||!t.length)return[];var e=jr(t);return null==n?e:p(e,function(t){return i(n,P,t)})}function wr(t){return(t=e(t)).__chain__=!0,t}function kr(t,n){return n(t)}function Or(t,n){return(Ro(t)?a:Ei)(t,He(n,3))}function Ir(t,n){return(Ro(t)?function(t,n){for(var e=null==t?0:t.length;e--&&!1!==n(t[e],e,t););return t}:Wi)(t,He(n,3))}function Er(t,n){return(Ro(t)?p:Bn)(t,He(n,3))}function Wr(t,n,e){return n=e?P:n,n=t&&null==n?t.length:n,Fe(t,128,P,P,P,P,n)}function Rr(t,n){var e;if("function"!=typeof n)throw new ku("Expected a function");return t=Gr(t),function(){return 0<--t&&(e=n.apply(this,arguments)),1>=t&&(n=P),e}}function Sr(t,n,e){function r(n){var e=c,r=f;return c=f=P,d=n,s=t.apply(r,e)}function u(t){var e=t-h;return t-=d,h===P||e>=n||0>e||y&&t>=l}function i(){var t=vo();if(u(t))return o(t);var e,r=Ni;e=t-d,t=n-(t-h),e=y?oi(t,l-e):t,p=r(i,e)}function o(t){return p=P,_&&c?r(t):(c=f=P,s)}function a(){var t=vo(),e=u(t);if(c=arguments,f=this,h=t,e){if(p===P)return d=t=h,p=Ni(i,n),g?r(t):s;if(y)return p=Ni(i,n),r(h)}return p===P&&(p=Ni(i,n)),s}var c,f,l,s,p,h,d=0,g=!1,y=!1,_=!0;if("function"!=typeof t)throw new ku("Expected a function");return n=Yr(n)||0,Ur(e)&&(g=!!e.leading,l=(y="maxWait"in e)?ii(Yr(e.maxWait)||0,n):l,_="trailing"in e?!!e.trailing:_),a.cancel=function(){p!==P&&Li(p),d=0,c=h=f=p=P},a.flush=function(){return p===P?s:o(vo())},a}function Mr(t,n){function e(){var r=arguments,u=n?n.apply(this,r):r[0],i=e.cache;return i.has(u)?i.get(u):(r=t.apply(this,r),e.cache=i.set(u,r)||i,r)}if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new ku("Expected a function");return e.cache=new(Mr.Cache||It),e}function Br(t){if("function"!=typeof t)throw new ku("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Lr(t,n){return t===n||t!=t&&n!=n}function Cr(t){return null!=t&&Pr(t.length)&&!Fr(t)}function Tr(t){return Nr(t)&&Cr(t)}function zr(t){if(!Nr(t))return!1;var n=mn(t);return"[object Error]"==n||"[object DOMException]"==n||"string"==typeof t.message&&"string"==typeof t.name&&!$r(t)}function Fr(t){return!!Ur(t)&&("[object Function]"==(t=mn(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function Dr(t){return"number"==typeof t&&t==Gr(t)}function Pr(t){return"number"==typeof t&&-1=t}function Ur(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}function Nr(t){return null!=t&&"object"==typeof t}function qr(t){return"number"==typeof t||Nr(t)&&"[object Number]"==mn(t)}function $r(t){return!(!Nr(t)||"[object Object]"!=mn(t))&&(null===(t=Uu(t))||"function"==typeof(t=Ru.call(t,"constructor")&&t.constructor)&&t instanceof t&&Wu.call(t)==Lu)}function Kr(t){return"string"==typeof t||!Ro(t)&&Nr(t)&&"[object String]"==mn(t)}function Zr(t){return"symbol"==typeof t||Nr(t)&&"[object Symbol]"==mn(t)}function Vr(t){if(!t)return[];if(Cr(t))return Kr(t)?D(t):ge(t);if(Zu&&t[Zu]){t=t[Zu]();for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}return("[object Map]"==(n=Di(t))?L:"[object Set]"==n?z:iu)(t)}function Hr(t){return t?(t=Yr(t))===U||t===-U?1.7976931348623157e308*(0>t?-1:1):t==t?t:0:0===t?t:0}function Gr(t){var n=(t=Hr(t))%1;return t==t?n?t-n:t:0}function Jr(t){return t?on(Gr(t),0,4294967295):0}function Yr(t){if("number"==typeof t)return t;if(Zr(t))return N;if(Ur(t)&&(t=Ur(t="function"==typeof t.valueOf?t.valueOf():t)?t+"":t),"string"!=typeof t)return 0===t?t:+t;t=t.replace(it,"");var n=yt.test(t);return n||vt.test(t)?Tt(t.slice(2),n?2:8):gt.test(t)?N:+t}function Qr(t){return ye(t,ru(t))}function Xr(t){return null==t?"":Qn(t)}function tu(t,n,e){return(t=null==t?P:vn(t,n))===P?e:t}function nu(t,n){return null!=t&&Qe(t,n,An)}function eu(t){return Cr(t)?Ft(t):Sn(t)}function ru(t){if(Cr(t))t=Ft(t,!0);else if(Ur(t)){var n,e=ir(t),r=[];for(n in t)("constructor"!=n||!e&&Ru.call(t,n))&&r.push(n);t=r}else{if(n=[],null!=t)for(e in ju(t))n.push(e);t=n}return t}function uu(t,n){if(null==t)return{};var e=p(Ke(t),function(t){return[t]});return n=He(n),Dn(t,e,function(t,e){return n(t,e[0])})}function iu(t){return null==t?[]:W(t,eu(t))}function ou(t){return fa(Xr(t).toLowerCase())}function au(t){return(t=Xr(t))&&t.replace(mt,Qt).replace(Ot,"")}function cu(t,n,e){return t=Xr(t),(n=e?P:n)===P?Rt.test(t)?t.match(Et)||[]:t.match(st)||[]:t.match(n)||[]}function fu(t){return function(){return t}}function lu(t){return t}function su(t){return Rn("function"==typeof t?t:an(t,1))}function pu(t,n,e){var r=eu(n),u=_n(n,r);null!=e||Ur(n)&&(u.length||!r.length)||(e=n,n=t,t=this,u=_n(n,eu(n)));var i=!(Ur(e)&&"chain"in e&&!e.chain),o=Fr(t);return a(u,function(e){var r=n[e];t[e]=r,o&&(t.prototype[e]=function(){var n=this.__chain__;if(i||n){var e=t(this.__wrapped__);return(e.__actions__=ge(this.__actions__)).push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,h([this.value()],arguments))})}),t}function hu(){}function du(t){return rr(t)?A(sr(t)):function(t){return function(n){return vn(n,t)}}(t)}function gu(){return[]}function yu(){return!1}var _u=(n=null==n?Dt:nn.defaults(Dt.Object(),n,nn.pick(Dt,St))).Array,vu=n.Date,bu=n.Error,mu=n.Function,xu=n.Math,ju=n.Object,Au=n.RegExp,wu=n.String,ku=n.TypeError,Ou=_u.prototype,Iu=ju.prototype,Eu=n["__core-js_shared__"],Wu=mu.prototype.toString,Ru=Iu.hasOwnProperty,Su=0,Mu=function(){var t=/[^.]+$/.exec(Eu&&Eu.keys&&Eu.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Bu=Iu.toString,Lu=Wu.call(ju),Cu=Dt._,Tu=Au("^"+Wu.call(Ru).replace(rt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zu=Nt?n.Buffer:P,Fu=n.Symbol,Du=n.Uint8Array,Pu=zu?zu.g:P,Uu=C(ju.getPrototypeOf,ju),Nu=ju.create,qu=Iu.propertyIsEnumerable,$u=Ou.splice,Ku=Fu?Fu.isConcatSpreadable:P,Zu=Fu?Fu.iterator:P,Vu=Fu?Fu.toStringTag:P,Hu=function(){try{var t=Ye(ju,"defineProperty");return t({},"",{}),t}catch(t){}}(),Gu=n.clearTimeout!==Dt.clearTimeout&&n.clearTimeout,Ju=vu&&vu.now!==Dt.Date.now&&vu.now,Yu=n.setTimeout!==Dt.setTimeout&&n.setTimeout,Qu=xu.ceil,Xu=xu.floor,ti=ju.getOwnPropertySymbols,ni=zu?zu.isBuffer:P,ei=n.isFinite,ri=Ou.join,ui=C(ju.keys,ju),ii=xu.max,oi=xu.min,ai=vu.now,ci=n.parseInt,fi=xu.random,li=Ou.reverse,si=Ye(n,"DataView"),pi=Ye(n,"Map"),hi=Ye(n,"Promise"),di=Ye(n,"Set"),gi=Ye(n,"WeakMap"),yi=Ye(ju,"create"),_i=gi&&new gi,vi={},bi=pr(si),mi=pr(pi),xi=pr(hi),ji=pr(di),Ai=pr(gi),wi=Fu?Fu.prototype:P,ki=wi?wi.valueOf:P,Oi=wi?wi.toString:P,Ii=function(){function t(){}return function(n){return Ur(n)?Nu?Nu(n):(t.prototype=n,n=new t,t.prototype=P,n):{}}}();e.templateSettings={escape:Y,evaluate:Q,interpolate:X,variable:"",imports:{_:e}},e.prototype=r.prototype,e.prototype.constructor=e,u.prototype=Ii(r.prototype),u.prototype.constructor=u,w.prototype=Ii(r.prototype),w.prototype.constructor=w,At.prototype.clear=function(){this.__data__=yi?yi(null):{},this.size=0},At.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},At.prototype.get=function(t){var n=this.__data__;return yi?"__lodash_hash_undefined__"===(t=n[t])?P:t:Ru.call(n,t)?n[t]:P},At.prototype.has=function(t){var n=this.__data__;return yi?n[t]!==P:Ru.call(n,t)},At.prototype.set=function(t,n){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=yi&&n===P?"__lodash_hash_undefined__":n,this},wt.prototype.clear=function(){this.__data__=[],this.size=0},wt.prototype.delete=function(t){var n=this.__data__;return!(0>(t=$t(n,t))||(t==n.length-1?n.pop():$u.call(n,t,1),--this.size,0))},wt.prototype.get=function(t){var n=this.__data__;return 0>(t=$t(n,t))?P:n[t][1]},wt.prototype.has=function(t){return-1<$t(this.__data__,t)},wt.prototype.set=function(t,n){var e=this.__data__,r=$t(e,t);return 0>r?(++this.size,e.push([t,n])):e[r][1]=n,this},It.prototype.clear=function(){this.size=0,this.__data__={hash:new At,map:new(pi||wt),string:new At}},It.prototype.delete=function(t){return t=Ge(this,t).delete(t),this.size-=t?1:0,t},It.prototype.get=function(t){return Ge(this,t).get(t)},It.prototype.has=function(t){return Ge(this,t).has(t)},It.prototype.set=function(t,n){var e=Ge(this,t),r=e.size;return e.set(t,n),this.size+=e.size==r?0:1,this},Lt.prototype.add=Lt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Lt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.clear=function(){this.__data__=new wt,this.size=0},zt.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},zt.prototype.get=function(t){return this.__data__.get(t)},zt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.set=function(t,n){var e=this.__data__;if(e instanceof wt){var r=e.__data__;if(!pi||199>r.length)return r.push([t,n]),this.size=++e.size,this;e=this.__data__=new It(r)}return e.set(t,n),this.size=e.size,this};var Ei=be(gn),Wi=be(yn,!0),Ri=me(),Si=me(!0),Mi=_i?function(t,n){return _i.set(t,n),t}:lu,Bi=Hu?function(t,n){return Hu(t,"toString",{configurable:!0,enumerable:!1,value:fu(n),writable:!0})}:lu,Li=Gu||function(t){return Dt.clearTimeout(t)},Ci=di&&1/z(new di([,-0]))[1]==U?function(t){return new di(t)}:hu,Ti=_i?function(t){return _i.get(t)}:hu,zi=ti?function(t){return null==t?[]:(t=ju(t),f(ti(t),function(n){return qu.call(t,n)}))}:gu,Fi=ti?function(t){for(var n=[];t;)h(n,zi(t)),t=Uu(t);return n}:gu,Di=mn;(si&&"[object DataView]"!=Di(new si(new ArrayBuffer(1)))||pi&&"[object Map]"!=Di(new pi)||hi&&"[object Promise]"!=Di(hi.resolve())||di&&"[object Set]"!=Di(new di)||gi&&"[object WeakMap]"!=Di(new gi))&&(Di=function(t){var n=mn(t);if(t=(t="[object Object]"==n?t.constructor:P)?pr(t):"")switch(t){case bi:return"[object DataView]";case mi:return"[object Map]";case xi:return"[object Promise]";case ji:return"[object Set]";case Ai:return"[object WeakMap]"}return n});var Pi=Eu?Fr:yu,Ui=fr(Mi),Ni=Yu||function(t,n){return Dt.setTimeout(t,n)},qi=fr(Bi),$i=function(t){var n=(t=Mr(t,function(t){return 500===n.size&&n.clear(),t})).cache;return t}(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(et,function(t,e,r,u){n.push(r?u.replace(pt,"$1"):e||t)}),n}),Ki=$n(function(t,n){return Tr(t)?ln(t,dn(n,1,Tr,!0)):[]}),Zi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),He(e,2)):[]}),Vi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),P,e):[]}),Hi=$n(function(t){var n=p(t,ie);return n.length&&n[0]===t[0]?wn(n):[]}),Gi=$n(function(t){var n=br(t),e=p(t,ie);return n===br(e)?n=P:e.pop(),e.length&&e[0]===t[0]?wn(e,He(n,2)):[]}),Ji=$n(function(t){var n=br(t),e=p(t,ie);return(n="function"==typeof n?n:P)&&e.pop(),e.length&&e[0]===t[0]?wn(e,P,n):[]}),Yi=$n(mr),Qi=qe(function(t,n){var e=null==t?0:t.length,r=un(t,n);return Un(t,p(n,function(t){return nr(t,e)?+t:t}).sort(pe)),r}),Xi=$n(function(t){return Xn(dn(t,1,Tr,!0))}),to=$n(function(t){var n=br(t);return Tr(n)&&(n=P),Xn(dn(t,1,Tr,!0),He(n,2))}),no=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return Xn(dn(t,1,Tr,!0),P,n)}),eo=$n(function(t,n){return Tr(t)?ln(t,n):[]}),ro=$n(function(t){return re(f(t,Tr))}),uo=$n(function(t){var n=br(t);return Tr(n)&&(n=P),re(f(t,Tr),He(n,2))}),io=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return re(f(t,Tr),P,n)}),oo=$n(jr),ao=$n(function(t){var n;return Ar(t,n="function"==typeof(n=1<(n=t.length)?t[n-1]:P)?(t.pop(),n):P)}),co=qe(function(t){function n(n){return un(n,t)}var e=t.length,r=e?t[0]:0,i=this.__wrapped__;return!(1=n}),Wo=On(function(){return arguments}())?On:function(t){return Nr(t)&&Ru.call(t,"callee")&&!qu.call(t,"callee")},Ro=_u.isArray,So=Kt?E(Kt):function(t){return Nr(t)&&"[object ArrayBuffer]"==mn(t)},Mo=ni||yu,Bo=Zt?E(Zt):function(t){return Nr(t)&&"[object Date]"==mn(t)},Lo=Vt?E(Vt):function(t){return Nr(t)&&"[object Map]"==Di(t)},Co=Ht?E(Ht):function(t){return Nr(t)&&"[object RegExp]"==mn(t)},To=Gt?E(Gt):function(t){return Nr(t)&&"[object Set]"==Di(t)},zo=Jt?E(Jt):function(t){return Nr(t)&&Pr(t.length)&&!!Mt[mn(t)]},Fo=Le(Mn),Do=Le(function(t,n){return t<=n}),Po=ve(function(t,n){if(ir(n)||Cr(n))ye(n,eu(n),t);else for(var e in n)Ru.call(n,e)&&qt(t,e,n[e])}),Uo=ve(function(t,n){ye(n,ru(n),t)}),No=ve(function(t,n,e,r){ye(n,ru(n),t,r)}),qo=ve(function(t,n,e,r){ye(n,eu(n),t,r)}),$o=qe(un),Ko=$n(function(t,n){t=ju(t);var e=-1,r=n.length;for((u=2--t)return n.apply(this,arguments)}},e.ary=Wr,e.assign=Po,e.assignIn=Uo,e.assignInWith=No,e.assignWith=qo,e.at=$o,e.before=Rr,e.bind=bo,e.bindAll=sa,e.bindKey=mo,e.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ro(t)?t:[t]},e.chain=wr,e.chunk=function(t,n,e){if(n=(e?er(t,n,e):n===P)?1:ii(Gr(n),0),!(e=null==t?0:t.length)||1>n)return[];for(var r=0,u=0,i=_u(Qu(e/n));r(n=e||n===P?1:Gr(n))?0:n,r):[]},e.dropRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n):[]},e.dropRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0,!0):[]},e.dropWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0):[]},e.fill=function(t,n,e,r){var u=null==t?0:t.length;if(!u)return[];for(e&&"number"!=typeof e&&er(t,n,e)&&(e=0,r=u),u=t.length,0>(e=Gr(e))&&(e=-e>u?0:u+e),0>(r=r===P||r>u?u:Gr(r))&&(r+=u),r=e>r?0:Jr(r);e>>0)?(t=Xr(t))&&("string"==typeof n||null!=n&&!Co(n))&&(!(n=Qn(n))&&Wt.test(t))?ce(D(t),0,e):t.split(n,e):[]},e.spread=function(t,n){if("function"!=typeof t)throw new ku("Expected a function");return n=null==n?0:ii(Gr(n),0),$n(function(e){var r=e[n];return e=ce(e,0,n),r&&h(e,r),i(t,this,e)})},e.tail=function(t){var n=null==t?0:t.length;return n?Zn(t,1,n):[]},e.take=function(t,n,e){return t&&t.length?Zn(t,0,0>(n=e||n===P?1:Gr(n))?0:n):[]},e.takeRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n,r):[]},e.takeRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!1,!0):[]},e.takeWhile=function(t,n){return t&&t.length?ne(t,He(n,3)):[]},e.tap=function(t,n){return n(t),t},e.throttle=function(t,n,e){var r=!0,u=!0;if("function"!=typeof t)throw new ku("Expected a function");return Ur(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),Sr(t,n,{leading:r,maxWait:n,trailing:u})},e.thru=kr,e.toArray=Vr,e.toPairs=ta,e.toPairsIn=na,e.toPath=function(t){return Ro(t)?p(t,sr):Zr(t)?[t]:ge($i(Xr(t)))},e.toPlainObject=Qr,e.transform=function(t,n,e){var r=Ro(t),u=r||Mo(t)||zo(t);if(n=He(n,4),null==e){var i=t&&t.constructor;e=u?r?new i:[]:Ur(t)&&Fr(i)?Ii(Uu(t)):{}}return(u?a:gn)(t,function(t,r,u){return n(e,t,r,u)}),e},e.unary=function(t){return Wr(t,1)},e.union=Xi,e.unionBy=to,e.unionWith=no,e.uniq=function(t){return t&&t.length?Xn(t):[]},e.uniqBy=function(t,n){return t&&t.length?Xn(t,He(n,2)):[]},e.uniqWith=function(t,n){return n="function"==typeof n?n:P,t&&t.length?Xn(t,P,n):[]},e.unset=function(t,n){return null==t||te(t,n)},e.unzip=jr,e.unzipWith=Ar,e.update=function(t,n,e){return null==t?t:Kn(t,n,oe(e)(vn(t,n)),void 0)},e.updateWith=function(t,n,e,r){return r="function"==typeof r?r:P,null!=t&&(t=Kn(t,n,oe(e)(vn(t,n)),r)),t},e.values=iu,e.valuesIn=function(t){return null==t?[]:W(t,ru(t))},e.without=eo,e.words=cu,e.wrap=function(t,n){return wo(oe(n),t)},e.xor=ro,e.xorBy=uo,e.xorWith=io,e.zip=oo,e.zipObject=function(t,n){return ue(t||[],n||[],qt)},e.zipObjectDeep=function(t,n){return ue(t||[],n||[],Kn)},e.zipWith=ao,e.entries=ta,e.entriesIn=na,e.extend=Uo,e.extendWith=No,pu(e,e),e.add=xa,e.attempt=la,e.camelCase=ea,e.capitalize=ou,e.ceil=ja,e.clamp=function(t,n,e){return e===P&&(e=n,n=P),e!==P&&(e=(e=Yr(e))==e?e:0),n!==P&&(n=(n=Yr(n))==n?n:0),on(Yr(t),n,e)},e.clone=function(t){return an(t,4)},e.cloneDeep=function(t){return an(t,5)},e.cloneDeepWith=function(t,n){return an(t,5,n="function"==typeof n?n:P)},e.cloneWith=function(t,n){return an(t,4,n="function"==typeof n?n:P)},e.conformsTo=function(t,n){return null==n||cn(t,n,eu(n))},e.deburr=au,e.defaultTo=function(t,n){return null==t||t!=t?n:t},e.divide=Aa,e.endsWith=function(t,n,e){t=Xr(t),n=Qn(n);var r=t.length;r=e=e===P?r:on(Gr(e),0,r);return 0<=(e-=n.length)&&t.slice(e,r)==n},e.eq=Lr,e.escape=function(t){return(t=Xr(t))&&J.test(t)?t.replace(H,Xt):t},e.escapeRegExp=function(t){return(t=Xr(t))&&ut.test(t)?t.replace(rt,"\\$&"):t},e.every=function(t,n,e){var r=Ro(t)?c:sn;return e&&er(t,n,e)&&(n=P),r(t,He(n,3))},e.find=lo,e.findIndex=gr,e.findKey=function(t,n){return _(t,He(n,3),gn)},e.findLast=so,e.findLastIndex=yr,e.findLastKey=function(t,n){return _(t,He(n,3),yn)},e.floor=wa,e.forEach=Or,e.forEachRight=Ir,e.forIn=function(t,n){return null==t?t:Ri(t,He(n,3),ru)},e.forInRight=function(t,n){return null==t?t:Si(t,He(n,3),ru)},e.forOwn=function(t,n){return t&&gn(t,He(n,3))},e.forOwnRight=function(t,n){return t&&yn(t,He(n,3))},e.get=tu,e.gt=Io,e.gte=Eo,e.has=function(t,n){return null!=t&&Qe(t,n,jn)},e.hasIn=nu,e.head=vr,e.identity=lu,e.includes=function(t,n,e,r){return t=Cr(t)?t:iu(t),e=e&&!r?Gr(e):0,r=t.length,0>e&&(e=ii(r+e,0)),Kr(t)?e<=r&&-1(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),b(t,n,e)):-1},e.inRange=function(t,n,e){return n=Hr(n),e===P?(e=n,n=0):e=Hr(e),(t=Yr(t))>=oi(n,e)&&t=t},e.isSet=To,e.isString=Kr,e.isSymbol=Zr,e.isTypedArray=zo,e.isUndefined=function(t){return t===P},e.isWeakMap=function(t){return Nr(t)&&"[object WeakMap]"==Di(t)},e.isWeakSet=function(t){return Nr(t)&&"[object WeakSet]"==mn(t)},e.join=function(t,n){return null==t?"":ri.call(t,n)},e.kebabCase=ra,e.last=br,e.lastIndexOf=function(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r;if(e!==P&&(u=0>(u=Gr(e))?ii(r+u,0):oi(u,r-1)),n==n){for(e=u+1;e--&&t[e]!==n;);t=e}else t=v(t,x,u,!0);return t},e.lowerCase=ua,e.lowerFirst=ia,e.lt=Fo,e.lte=Do,e.max=function(t){return t&&t.length?pn(t,lu,xn):P},e.maxBy=function(t,n){return t&&t.length?pn(t,He(n,2),xn):P},e.mean=function(t){return j(t,lu)},e.meanBy=function(t,n){return j(t,He(n,2))},e.min=function(t){return t&&t.length?pn(t,lu,Mn):P},e.minBy=function(t,n){return t&&t.length?pn(t,He(n,2),Mn):P},e.stubArray=gu,e.stubFalse=yu,e.stubObject=function(){return{}},e.stubString=function(){return""},e.stubTrue=function(){return!0},e.multiply=ka,e.nth=function(t,n){return t&&t.length?zn(t,Gr(n)):P},e.noConflict=function(){return Dt._===this&&(Dt._=Cu),this},e.noop=hu,e.now=vo,e.pad=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return!n||r>=n?t:Se(Xu(n=(n-r)/2),e)+t+Se(Qu(n),e)},e.padEnd=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return n&&rn){var r=t;t=n,n=r}return e||t%1||n%1?(e=fi(),oi(t+e*(n-t+Ct("1e-"+((e+"").length-1))),n)):Nn(t,n)},e.reduce=function(t,n,e){var r=Ro(t)?d:k,u=3>arguments.length;return r(t,He(n,4),e,u,Ei)},e.reduceRight=function(t,n,e){var r=Ro(t)?g:k,u=3>arguments.length;return r(t,He(n,4),e,u,Wi)},e.repeat=function(t,n,e){return n=(e?er(t,n,e):n===P)?1:Gr(n),qn(Xr(t),n)},e.replace=function(){var t=arguments,n=Xr(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},e.result=function(t,n,e){var r=-1,u=(n=ae(n,t)).length;for(u||(u=1,t=P);++r(t=Gr(t))||9007199254740991=i)return t;if(1>(i=e-F(r)))return r;if(e=o?ce(o,0,i).join(""):t.slice(0,i),u===P)return e+r;if(o&&(i+=e.length-i),Co(u)){if(t.slice(i).search(u)){var a=e;for(u.global||(u=Au(u.source,Xr(dt.exec(u))+"g")),u.lastIndex=0;o=u.exec(a);)var c=o.index;e=e.slice(0,c===P?i:c)}}else t.indexOf(Qn(u),i)!=i&&(-1<(u=e.lastIndexOf(u))&&(e=e.slice(0,u)));return e+r},e.unescape=function(t){return(t=Xr(t))&&G.test(t)?t.replace(V,tn):t},e.uniqueId=function(t){var n=++Su;return Xr(t)+n},e.upperCase=ca,e.upperFirst=fa,e.each=Or,e.eachRight=Ir,e.first=vr,pu(e,function(){var t={};return gn(e,function(n,r){Ru.call(e.prototype,r)||(t[r]=n)}),t}(),{chain:!1}),e.VERSION="4.17.10",a("bind bindKey curry curryRight partial partialRight".split(" "),function(t){e[t].placeholder=e}),a(["drop","take"],function(t,n){w.prototype[t]=function(e){e=e===P?1:ii(Gr(e),0);var r=this.__filtered__&&!n?new w(this):this.clone();return r.__filtered__?r.__takeCount__=oi(e,r.__takeCount__):r.__views__.push({size:oi(e,4294967295),type:t+(0>r.__dir__?"Right":"")}),r},w.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),a(["filter","map","takeWhile"],function(t,n){var e=n+1,r=1==e||3==e;w.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:He(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),a(["head","last"],function(t,n){var e="take"+(n?"Right":"");w.prototype[t]=function(){return this[e](1).value()[0]}}),a(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");w.prototype[t]=function(){return this.__filtered__?new w(this):this[e](1)}}),w.prototype.compact=function(){return this.filter(lu)},w.prototype.find=function(t){return this.filter(t).head()},w.prototype.findLast=function(t){return this.reverse().find(t)},w.prototype.invokeMap=$n(function(t,n){return"function"==typeof t?new w(this):this.map(function(e){return kn(e,t,n)})}),w.prototype.reject=function(t){return this.filter(Br(He(t)))},w.prototype.slice=function(t,n){t=Gr(t);var e=this;return e.__filtered__&&(0n)?new w(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==P&&(e=0>(n=Gr(n))?e.dropRight(-n):e.take(n-t)),e)},w.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},w.prototype.toArray=function(){return this.take(4294967295)},gn(w.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),o=e[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);o&&(e.prototype[n]=function(){function n(t){return t=o.apply(e,h([t],f)),i&&d?t[0]:t}var c=this.__wrapped__,f=i?[1]:arguments,l=c instanceof w,s=f[0],p=l||Ro(c);p&&r&&"function"==typeof s&&1!=s.length&&(l=p=!1);var d=this.__chain__,g=!!this.__actions__.length;s=a&&!d,l=l&&!g;return!a&&p?(c=l?c:new w(this),(c=t.apply(c,f)).__actions__.push({func:kr,args:[n],thisArg:P}),new u(c,d)):s&&l?t.apply(this,f):(c=this.thru(n),s?i?c.value()[0]:c.value():c)})}),a("pop push shift sort splice unshift".split(" "),function(t){var n=Ou[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",u=/^(?:pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;if(u&&!this.__chain__){var e=this.value();return n.apply(Ro(e)?e:[],t)}return this[r](function(e){return n.apply(Ro(e)?e:[],t)})}}),gn(w.prototype,function(t,n){var r=e[n];if(r){var u=r.name+"";(vi[u]||(vi[u]=[])).push({name:n,func:r})}}),vi[Ie(P,2).name]=[{name:"wrapper",func:P}],w.prototype.clone=function(){var t=new w(this.__wrapped__);return t.__actions__=ge(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ge(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ge(this.__views__),t},w.prototype.reverse=function(){if(this.__filtered__){var t=new w(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},w.prototype.value=function(){var t,n=this.__wrapped__.value(),e=this.__dir__,r=Ro(n),u=0>e,i=r?n.length:0;t=i;for(var o=this.__views__,a=0,c=-1,f=o.length;++c=this.__values__.length;return{done:t,value:t?P:this.__values__[this.__index__++]}},e.prototype.plant=function(t){for(var n,e=this;e instanceof r;){var u=dr(e);u.__index__=0,u.__values__=P,n?i.__wrapped__=u:n=u;var i=u;e=e.__wrapped__}return i.__wrapped__=t,n},e.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof w?(this.__actions__.length&&(t=new w(this)),(t=t.reverse()).__actions__.push({func:kr,args:[xr],thisArg:P}),new u(t,this.__chain__)):this.thru(xr)},e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=function(){return ee(this.__wrapped__,this.__actions__)},e.prototype.first=e.prototype.head,Zu&&(e.prototype[Zu]=function(){return this}),e}();Dt._=nn,void 0===(u=function(){return nn}.call(n,e,n,r))||(r.exports=u)}).call(this)}).call(this,e("./node_modules/webpack/buildin/global.js"),e("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/webpack/buildin/global.js":function(t,n){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(e=window)}t.exports=e},"./node_modules/webpack/buildin/module.js":function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./src/web/index.js":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,n){var e=[],r=!0,u=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){u=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(u)throw i}}return e}(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,n){for(var e=0;e0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=e;u||(this.regenCache(),u=[].concat(a(document.querySelectorAll("[data-huron-id][data-huron-type]")))),t=this.getModuleListFromTags(u),Object.keys(t).forEach(function(e){var u=n._modules[e],i=t[e];n.loadModule(e,u,i,!0,r)})}},{key:"cycleSections",value:function(){this.cycleModules(!1,{property:"type",values:["section"],include:!0})}},{key:"cycleStyleguide",value:function(){var t=document.querySelector("[huron-sections]"),n=document.querySelector("[huron-menu]");if(t&&(t.innerHTML="",this.outputSections(null,t),this.cycleSections()),n){if(n.innerHTML="",null===document.querySelector(".section-menu__expand")){var e=document.createElement("button");e.classList.add("section-menu__expand"),e.innerHTML="Sections Menu",document.body.insertBefore(n.appendChild(e),document.body.childNodes[0]),e.addEventListener("click",function(){document.body.classList.toggle("section-menu-open")})}this.outputMenu(null,n)}}},{key:"generateModuleReplaceKey",value:function(t){var n=t;return t.includes("-section.json")?n=this._sectionTemplatePath:t.includes(".json")&&(n=this._templates[t]),"_"+n.replace(/[/.]/g,"_")}},{key:"getMetaFromPath",value:function(t,n){var e=this,r=this._sections.sectionsByPath,i=this._types.filter(function(t){return"prototype"!==t}),o=!1,a=!1;if(-1!==t.indexOf("./prototypes")){var c=Object.keys(this._prototypes).filter(function(n){return e._prototypes[n]===t});if(c.length)o=u(c,1)[0],a="prototype"}else if(t===this._sectionTemplatePath)o="sections-template",a="sections-template";else{var f=[],l=Object.keys(r).filter(function(n){var e=i.filter(function(e){return r[n][e+"Path"]===t});return!!e.length&&(f=e,!0)});if(l&&l.length&&f&&f.length)o=r[l[0]].referenceURI,a=u(f,1)[0]}if(o&&a){var s=this.getModuleRender(a,t,n),p=this.generateModuleReplaceKey(t);if(s)return Object.assign({id:o,type:a,key:t,replaceKey:p,module:n},s)}return console.warn("Module '"+t+"' does not exist on the page\n or is no longer in use"),!1}},{key:"getModuleKeyFromTag",value:function(n){var e=t.getDataAttribute(n,"huron-type"),r=t.getDataAttribute(n,"huron-id"),u=this._sections.sectionsByURI[r];if(r&&e){if(u)return u[e+"Path"];if("prototype"===e)return this._prototypes[r]}return!1}},{key:"getModuleListFromTags",value:function(t){var n=this,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r={},u={};return t&&t.length&&t.forEach(function(t){var i=n.getModuleKeyFromTag(t);i?(r[i]||(r[i]=[]),r[i].push(t)):e&&(u=n.getModuleListFromTags([].concat(a(t.querySelectorAll("[data-huron-id][data-huron-type]"))),!1),Object.keys(u).forEach(function(t){r[t]=r[t]?r[t].concat(u[t]):u[t]}))}),r}},{key:"getModuleRender",value:function(t,n,e){var u=!1,i=!1;return"template"===t&&"function"==typeof e?(u=e,i=this._modules[this._templates[n]]):"sections-template"===t&&"function"==typeof e?u=e:"section"===t&&"object"===(void 0===e?"undefined":r(e))?(u=this._modules[this._sectionTemplatePath],i=e):"template"!==t&&"description"!==t&&"prototype"!==t||"string"!=typeof e?"data"===t&&"object"===(void 0===e?"undefined":r(e))&&(u=this._modules[this._templates[n]],i=e):u=function(){return e},!!u&&{render:u,data:i}}},{key:"loadModule",value:function(n,e,r){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=!0,a=!1;u?a=this.meta[n]:(this.meta[n]=this.getMetaFromPath(n,e),a=this.meta[n]),a&&(i&&(o=t.filterModules(i,a)),o&&this.replaceTemplate(a,r))}},{key:"outputMenu",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=n;Object.keys(r).forEach(function(n){var o=Object.keys(r[n]).length,a=void 0,c=void 0;if(u=t?t+"-"+n:n,i){var f=e._sections.sectionsByURI[u]?e._sections.sectionsByURI[u].header:u,l=document.createElement("ul"),s=document.createElement("li"),p=''+f+"";l.classList.add("section-menu"),s.classList.add("section-menu__item"),s.innerHTML=p,"UL"!==i.tagName&&(a=l.cloneNode(),i.appendChild(a),i=a),o&&((c=l.cloneNode()).classList.add("section-menu--submenu"),s.classList.add("section-menu__item--has-submenu"),s.appendChild(c)),i.appendChild(s),o&&e.outputMenu(u,c,r[n])}})}},{key:"outputSections",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=null;Object.keys(r).forEach(function(o){var a=!1,c=null,f=null,l=n;t?u=t+"-"+o:(u=o,a=!0),n&&((i=document.createElement("div")).dataset.huronId=u,i.dataset.huronType="section",a?((c=document.createElement("div")).classList.add("section--top-level__wrapper"),(f=document.createElement("div")).classList.add("section","section--top-level"),f.appendChild(i),c.appendChild(f),n.appendChild(c),l=c):n.appendChild(i)),Object.keys(r[o]).length&&i&&e.outputSections(u,l,r[o])})}},{key:"provideClassnames",value:function(t){return this._classNames?Object.assign({},t,{classNames:this._classNames}):t}},{key:"regenCache",value:function(){var t=this;Object.keys(this._modules).forEach(function(n){t.meta[n]=t.getMetaFromPath(n,t._modules[n])})}},{key:"removeOldTags",value:function(n,e){if(e){var r=t.getDataAttribute(e,"parent-module"),u=t.getDataAttribute(e,"self-module");if(r===n&&u!==n){var i=u,o=e.previousSibling;i&&(this.removeOldTags(i,o),o=e.previousSibling),e.parentNode.removeChild(e),this.removeOldTags(n,o)}}}},{key:"replaceTemplate",value:function(n,e){var r=this,u=this.validateType(n.type),i=[],c=e,f=!1;c||(c=document.querySelectorAll("[data-huron-id][data-huron-type]")),u?(c.forEach(function(e){var r=t.getDataAttribute(e,"huron-type");t.getDataAttribute(e,"huron-id")===n.id&&r===u&&i.push(e)}),i&&i.length&&n.render&&i.forEach(function(e){var u=e,i=t.getDataAttribute(u,"huron-modifier"),c=u.parentNode,l=(0,o.compose)(r.provideClassnames.bind(r),t.applyModifier)(n.data,i),s=n.render(l),p=t.convertToElement(s).querySelector("template"),h=null;r.removeOldTags(n.replaceKey,u.previousSibling),(h=[].concat(a(p.content.children))).forEach(function(e){var r=e;1===r.nodeType&&(r.dataset.parentModule=n.replaceKey,f=f||t.isSectionHelper(r,n),c.insertBefore(r,u))}),u.dataset.selfModule=n.replaceKey,u.style.display="none",r.cycleModules(h,{property:"key",values:[n.key,r._sectionTemplatePath],include:!1}),f&&r.cycleStyleguide()})):console.warn("Could not render module\n section: "+n.id+"\n type: "+n.type)}},{key:"validateType",value:function(t){return"data"===t?"template":!!this._types.includes(t)&&t}},{key:"modules",set:function(t){this._modules=t,this._moduleIds=Object.keys(t)}},{key:"store",set:function(t){if(this._store=t,this._config=t.config,this._sections=t.sections,this._templates=t.templates,this._prototypes=t.prototypes,this._types=t.types,this._sectionTemplatePath=t.sectionTemplatePath,!(0,o.isEqual)(this._classNames,t.classNames)){var n=!this._classNames;this._classNames=t.classNames,n||this.cycleModules()}}}],[{key:"applyModifier",value:function(t,n){return n&&t&&t[n]?Object.assign({},t[n],{modifier:n}):t}},{key:"convertToElement",value:function(t){var n=document.createElement("div");return n.innerHTML=t,n.firstElementChild}},{key:"filterModules",value:function(t,n){var e=!0;return"object"===(void 0===t?"undefined":r(t))&&{}.hasOwnProperty.call(t,"property")&&{}.hasOwnProperty.call(t,"values")&&{}.hasOwnProperty.call(t,"include")?(e=t.values.filter(function(e){return n[t.property]===e}),Boolean(e.length)===t.include):(console.log(" // eslint-disable-line no-console\n filter "+t+" is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n "),e)}},{key:"getDataAttribute",value:function(t,n){var e=!1;return t.dataset&&(e=t.dataset[n]),!e&&t.getAttribute&&(e=t.getAttribute("data-"+n)),e}},{key:"isSectionHelper",value:function(t,n){return"prototype"===n.type&&(t.hasAttribute("huron-sections")||t.hasAttribute("huron-menu"))}}]),t}();n.default=c},0:function(t,n,e){t.exports=e("./src/web/index.js")}}); +module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="../",e(e.s=0)}({"./node_modules/lodash/fp.js":function(t,n,e){"use strict";var r=e("./node_modules/lodash/lodash.min.js").runInContext();t.exports=e("./node_modules/lodash/fp/_baseConvert.js")(r,r)},"./node_modules/lodash/fp/_baseConvert.js":function(t,n,e){"use strict";var r=e("./node_modules/lodash/fp/_mapping.js"),u=e("./node_modules/lodash/fp/placeholder.js"),i=Array.prototype.push;function o(t,n){return 2==n?function(n,e){return t(n,e)}:function(n){return t(n)}}function a(t){for(var n=t?t.length:0,e=Array(n);n--;)e[n]=t[n];return e}function c(t,n){return function(){var e=arguments.length;if(e){for(var r=Array(e);e--;)r[e]=arguments[e];var u=r[0]=n.apply(void 0,r);return t.apply(void 0,r),u}}}t.exports=function t(n,e,f,l){var s,p="function"==typeof e,h=e===Object(e);if(h&&(l=f,f=e,e=void 0),null==f)throw new TypeError;l||(l={});var d={cap:!("cap"in l)||l.cap,curry:!("curry"in l)||l.curry,fixed:!("fixed"in l)||l.fixed,immutable:!("immutable"in l)||l.immutable,rearg:!("rearg"in l)||l.rearg},g="curry"in l&&l.curry,y="fixed"in l&&l.fixed,_="rearg"in l&&l.rearg,v=p?f:u,b=p?f.runInContext():void 0,m=p?f:{ary:n.ary,assign:n.assign,clone:n.clone,curry:n.curry,forEach:n.forEach,isArray:n.isArray,isError:n.isError,isFunction:n.isFunction,isWeakMap:n.isWeakMap,iteratee:n.iteratee,keys:n.keys,rearg:n.rearg,toInteger:n.toInteger,toPath:n.toPath},x=m.ary,j=m.assign,w=m.clone,A=m.curry,k=m.forEach,O=m.isArray,I=m.isError,E=m.isFunction,S=m.isWeakMap,W=m.keys,R=m.rearg,M=m.toInteger,B=m.toPath,L=W(r.aryMethod),C={castArray:function(t){return function(){var n=arguments[0];return O(n)?t(a(n)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var n=arguments[0],e=arguments[1],r=t(n,e),u=r.length;return d.cap&&"number"==typeof e?(e=e>2?e-2:1,u&&u<=e?r:o(r,e)):r}},mixin:function(t){return function(n){var e=this;if(!E(e))return t(e,Object(n));var r=[];return k(W(n),function(t){E(n[t])&&r.push([t,e.prototype[t]])}),t(e,Object(n)),k(r,function(t){var n=t[1];E(n)?e.prototype[t[0]]=n:delete e.prototype[t[0]]}),e}},nthArg:function(t){return function(n){var e=n<0?1:M(n)+1;return A(t(n),e)}},rearg:function(t){return function(n,e){var r=e?e.length:0;return A(t(n,e),r)}},runInContext:function(e){return function(r){return t(n,e(r),l)}}};function T(t,n){if(d.cap){var e=r.iterateeRearg[t];if(e)return function(t,n){return U(t,function(t){var e=n.length;return function(t,n){return 2==n?function(n,e){return t.apply(void 0,arguments)}:function(n){return t.apply(void 0,arguments)}}(R(o(t,e),n),e)})}(n,e);var u=!p&&r.iterateeAry[t];if(u)return function(t,n){return U(t,function(t){return"function"==typeof t?o(t,n):t})}(n,u)}return n}function z(t,n,e){if(d.fixed&&(y||!r.skipFixed[t])){var u=r.methodSpread[t],o=u&&u.start;return void 0===o?x(n,e):function(t,n){return function(){for(var e=arguments.length,r=e-1,u=Array(e);e--;)u[e]=arguments[e];var o=u[n],a=u.slice(0,n);return o&&i.apply(a,o),n!=r&&i.apply(a,u.slice(n+1)),t.apply(this,a)}}(n,o)}return n}function F(t,n,e){return d.rearg&&e>1&&(_||!r.skipRearg[t])?R(n,r.methodRearg[t]||r.aryRearg[e]):n}function D(t,n){for(var e=-1,r=(n=B(n)).length,u=r-1,i=w(Object(t)),o=i;null!=o&&++e1?A(c,f):c,!1}var c,f}),!e}),e||(e=i),e==n&&(e=g?A(e,1):function(){return n.apply(this,arguments)}),e.convert=P(u,n),r.placeholder[u]&&(s=!0,e.placeholder=n.placeholder=v),e}if(!h)return N(e,f);var q=f,$=[];return k(L,function(t){k(r.aryMethod[t],function(t){var n=q[r.remap[t]||t];n&&$.push([t,N(t,n)])})}),k(W(q),function(t){var n=q[t];if("function"==typeof n){for(var e=$.length;e--;)if($[e][0]==t)return;n.convert=P(t,n),$.push([t,n])}}),k($,function(t){q[t[0]]=t[1]}),q.convert=function(t){return q.runInContext.convert(t)(void 0)},s&&(q.placeholder=v),k(W(q),function(t){k(r.realToAlias[t]||[],function(n){q[n]=q[t]})}),q}},"./node_modules/lodash/fp/_mapping.js":function(t,n,e){"use strict";n.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},n.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},n.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},n.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},n.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},n.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},n.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},n.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},n.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},n.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=n.aliasToReal,r={};for(var u in e){var i=e[u];t.call(r,i)?r[i].push(u):r[i]=[u]}return r}(),n.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},n.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},n.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},"./node_modules/lodash/fp/placeholder.js":function(t,n,e){"use strict";t.exports={}},"./node_modules/lodash/lodash.min.js":function(t,n,e){"use strict";(function(t,r){var u,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};(function(){function o(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function a(t,n,e,r){for(var u=-1,i=null==t?0:t.length;++u"']/g,J=RegExp(H.source),Y=RegExp(G.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,tt=/<%=([\s\S]+?)%>/g,nt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,et=/^\w*$/,rt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ut=/[\\^$.*+?()[\]{}|]/g,it=RegExp(ut.source),ot=/^\s+|\s+$/g,at=/^\s+/,ct=/\s+$/,ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,lt=/\{\n\/\* \[wrapped with (.+)\] \*/,st=/,? & /,pt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ht=/\\(\\)?/g,dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,gt=/\w*$/,yt=/^[-+]0x[0-9a-f]+$/i,_t=/^0b[01]+$/i,vt=/^\[object .+?Constructor\]$/,bt=/^0o[0-7]+$/i,mt=/^(?:0|[1-9]\d*)$/,xt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jt=/($^)/,wt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",kt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,Ot=RegExp("['’]","g"),It=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),Et=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+At,"g"),St=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",kt].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Mt="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bt={};Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object Boolean]"]=Bt["[object DataView]"]=Bt["[object Date]"]=Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object WeakMap]"]=!1;var Lt={};Lt["[object Arguments]"]=Lt["[object Array]"]=Lt["[object ArrayBuffer]"]=Lt["[object DataView]"]=Lt["[object Boolean]"]=Lt["[object Date]"]=Lt["[object Float32Array]"]=Lt["[object Float64Array]"]=Lt["[object Int8Array]"]=Lt["[object Int16Array]"]=Lt["[object Int32Array]"]=Lt["[object Map]"]=Lt["[object Number]"]=Lt["[object Object]"]=Lt["[object RegExp]"]=Lt["[object Set]"]=Lt["[object String]"]=Lt["[object Symbol]"]=Lt["[object Uint8Array]"]=Lt["[object Uint8ClampedArray]"]=Lt["[object Uint16Array]"]=Lt["[object Uint32Array]"]=!0,Lt["[object Error]"]=Lt["[object Function]"]=Lt["[object WeakMap]"]=!1;var Ct={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tt=parseFloat,zt=parseInt,Ft="object"==(void 0===t?"undefined":i(t))&&t&&t.Object===Object&&t,Dt="object"==("undefined"==typeof self?"undefined":i(self))&&self&&self.Object===Object&&self,Pt=Ft||Dt||Function("return this")(),Ut="object"==i(n)&&n&&!n.nodeType&&n,Nt=Ut&&"object"==i(r)&&r&&!r.nodeType&&r,qt=Nt&&Nt.exports===Ut,$t=qt&&Ft.process,Kt=function(){try{var t=Nt&&Nt.f&&Nt.f("util").types;return t||$t&&$t.binding&&$t.binding("util")}catch(t){}}(),Zt=Kt&&Kt.isArrayBuffer,Vt=Kt&&Kt.isDate,Ht=Kt&&Kt.isMap,Gt=Kt&&Kt.isRegExp,Jt=Kt&&Kt.isSet,Yt=Kt&&Kt.isTypedArray,Qt=A("length"),Xt=k({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),tn=k({"&":"&","<":"<",">":">",'"':""","'":"'"}),nn=k({"&":"&","<":"<",">":">",""":'"',"'":"'"}),en=function t(n){function e(t){if(qr(t)&&!Ro(t)&&!(t instanceof k)){if(t instanceof u)return t;if(Ru.call(t,"__wrapped__"))return gr(t)}return new u(t)}function r(){}function u(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=U}function k(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function At(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function cn(t,n,e,r,u,i){var o,a=1&n,f=2&n,l=4&n;if(e&&(o=u?e(t,r,u,i):e(t)),o!==U)return o;if(!Nr(t))return t;if(r=Ro(t)){if(o=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&Ru.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!a)return ye(t,o)}else{var s=Pi(t),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(Bo(t))return le(t,a);if("[object Object]"==s||"[object Arguments]"==s||p&&!u){if(o=f||p?{}:tr(t),!a)return f?function(t,n){return _e(t,Di(t),n)}(t,function(t,n){return t&&_e(n,uu(n),t)}(o,t)):function(t,n){return _e(t,Fi(t),n)}(t,rn(o,t))}else{if(!Lt[s])return u?t:{};o=function(t,n,e){var r=t.constructor;switch(n){case"[object ArrayBuffer]":return se(t);case"[object Boolean]":case"[object Date]":return new r(+t);case"[object DataView]":return n=e?se(t.buffer):t.buffer,new t.constructor(n,t.byteOffset,t.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return pe(t,e);case"[object Map]":return new r;case"[object Number]":case"[object String]":return new r(t);case"[object RegExp]":return(n=new t.constructor(t.source,gt.exec(t))).lastIndex=t.lastIndex,n;case"[object Set]":return new r;case"[object Symbol]":return Oi?wu(Oi.call(t)):{}}}(t,s,a)}}if(i||(i=new Ft),u=i.get(t))return u;if(i.set(t,o),zo(t))return t.forEach(function(r){o.add(cn(r,n,e,r,t,i))}),o;if(Co(t))return t.forEach(function(r,u){o.set(u,cn(r,n,e,u,t,i))}),o;f=l?f?Ze:Ke:f?uu:ru;var h=r?U:f(t);return c(h||t,function(r,u){h&&(r=t[u=r]),$t(o,u,cn(r,n,e,u,t,i))}),o}function fn(t,n,e){var r=e.length;if(null==t)return!r;for(t=wu(t);r--;){var u=e[r],i=n[u],o=t[u];if(o===U&&!(u in t)||!i(o))return!1}return!0}function ln(t,n,e){if("function"!=typeof t)throw new Ou("Expected a function");return qi(function(){t.apply(U,e)},n)}function sn(t,n,e,r){var u=-1,i=s,o=!0,a=t.length,c=[],f=n.length;if(!a)return c;e&&(n=h(n,S(e))),r?(i=p,o=!1):200<=n.length&&(i=R,o=!1,n=new Ct(n));t:for(;++un}function wn(t,n){return null!=t&&Ru.call(t,n)}function An(t,n){return null!=t&&n in wu(t)}function kn(t,n,e){for(var r=e?p:s,u=t[0].length,i=t.length,o=i,a=vu(i),c=1/0,f=[];o--;){var l=t[o];o&&n&&(l=h(l,S(n))),c=ai(l.length,c),a[o]=!e&&(n||120<=u&&120<=l.length)?new Ct(o&&l):U}l=t[0];var d=-1,g=a[0];t:for(;++d(n=ce(n,t)).length?t:bn(t,Vn(n,0,-1)))?t:t[pr(mr(n))])?U:o(n,t,e)}function In(t){return qr(t)&&"[object Arguments]"==xn(t)}function En(t,n,e,r,u){if(t===n)n=!0;else if(null==t||null==n||!qr(t)&&!qr(n))n=t!=t&&n!=n;else t:{var i=Ro(t),o=Ro(n),a=i?"[object Array]":Pi(t),c=o?"[object Array]":Pi(n),f="[object Object]"==(a="[object Arguments]"==a?"[object Object]":a);o="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c);if((c=a==c)&&Bo(t)){if(!Bo(n)){n=!1;break t}i=!0,f=!1}if(c&&!f)u||(u=new Ft),n=i||Fo(t)?qe(t,n,e,r,En,u):function(t,n,e,r,u,i,o){switch(e){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!i(new Pu(t),new Pu(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Cr(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var a=C;case"[object Set]":if(a||(a=F),t.size!=n.size&&!(1&r))break;return(e=o.get(t))?e==n:(r|=2,o.set(t,n),n=qe(a(t),a(n),r,u,i,o),o.delete(t),n);case"[object Symbol]":if(Oi)return Oi.call(t)==Oi.call(n)}return!1}(t,n,a,e,r,En,u);else{if(!(1&e)&&(i=f&&Ru.call(t,"__wrapped__"),a=o&&Ru.call(n,"__wrapped__"),i||a)){t=i?t.value():t,n=a?n.value():n,u||(u=new Ft),n=En(t,n,e,r,u);break t}if(c)n:if(u||(u=new Ft),i=1&e,a=Ke(t),o=a.length,c=Ke(n).length,o==c||i){for(f=o;f--;){var l=a[f];if(!(i?l in n:Ru.call(n,l))){n=!1;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{c=!0,u.set(t,n),u.set(n,t);for(var s=i;++fn?e:0,e)?t[n]:U}function Dn(t,n,e){var r=-1;return n=h(n.length?n:[su],S(Ge())),function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].c;return t}(t=Ln(t,function(t){return{a:h(n,function(n){return n(t)}),b:++r,c:t}}),function(t,n){var r;t:{r=-1;for(var u=t.a,i=n.a,o=u.length,a=e.length;++r=a?c:c*("desc"==e[r]?-1:1);break t}}r=t.b-n.b}return r})}function Pn(t,n,e){for(var r=-1,u=n.length,i={};++rn||9007199254740991n&&(n=-n>u?0:u+n),0>(e=e>u?u:e)&&(e+=u),u=n>e?0:e-n>>>0,n>>>=0,e=vu(u);++r=u){for(;r>>1,o=t[i];null!==o&&!Vr(o)&&(e?o<=n:o(n=ce(n,t)).length?t:bn(t,Vn(n,0,-1)))||delete t[pr(mr(n))]}function ee(t,n,e,r){for(var u=t.length,i=r?u:-1;(r?i--:++ir)return r?te(t[0]):[];for(var u=-1,i=vu(r);++u=r?t:Vn(t,n,e)}function le(t,n){if(n)return t.slice();var e=t.length;e=Uu?Uu(e):new t.constructor(e);return t.copy(e),e}function se(t){var n=new t.constructor(t.byteLength);return new Pu(n).set(new Pu(t)),n}function pe(t,n){return new t.constructor(n?se(t.buffer):t.buffer,t.byteOffset,t.length)}function he(t,n){if(t!==n){var e=t!==U,r=null===t,u=t==t,i=Vr(t),o=n!==U,a=null===n,c=n==n,f=Vr(n);if(!a&&!f&&!i&&t>n||i&&o&&c&&!a&&!f||r&&o&&c||!e&&c||!u)return 1;if(!r&&!i&&!f&&tu?U:i,u=1),n=wu(n);++ri&&a[0]!==f&&a[i-1]!==f?[]:z(a,f)).length)e?e?$n(n,t):n:(e=$n(n,Xu(t/D(n))),Wt.test(n)?fe(P(e),0,t).join(""):e.slice(0,t))}function Be(t,n,e,r){var u=1&n,i=Ae(t);return function n(){for(var a=-1,c=arguments.length,f=-1,l=r.length,s=vu(l+c),p=this&&this!==Pt&&this instanceof n?i:t;++fn||r)&&(1&t&&(i[2]=p[2],n|=1&e?0:4),(e=p[3])&&(r=i[3],i[3]=r?de(r,e,p[4]):e,i[4]=r?z(i[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=i[5],i[5]=r?ge(r,e,p[6]):e,i[6]=r?z(i[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(i[7]=e),128&t&&(i[8]=null==i[8]?p[8]:ai(i[8],p[8])),null==i[9]&&(i[9]=p[9]),i[0]=p[0],i[1]=n),t=i[0],n=i[1],e=i[2],r=i[3],u=i[4],!(a=i[9]=i[9]===U?c?0:t.length:oi(i[9]-f,0))&&24&n&&(n&=-25),fr((p?Bi:Ni)(n&&1!=n?8==n||16==n?ke(t,n,a):32!=n&&33!=n||u.length?Ee.apply(U,i):Be(t,n,e,r):function(t,n,e){var r=1&n,u=Ae(t);return function n(){return(this&&this!==Pt&&this instanceof n?u:t).apply(r?e:this,arguments)}}(t,n,e),i),t,n)}function Pe(t,n,e,r){return t===U||Cr(t,Eu[e])&&!Ru.call(r,e)?n:t}function Ue(t,n,e,r,u,i){return Nr(t)&&Nr(n)&&(i.set(n,t),zn(t,n,U,Ue,i),i.delete(n)),t}function Ne(t){return Kr(t)?U:t}function qe(t,n,e,r,u,i){var o=1&e,a=t.length;if(a!=(c=n.length)&&!(o&&c>a))return!1;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,f=!0,l=2&e?new Ct:U;for(i.set(t,n),i.set(n,t);++c(e=null==e?0:Jr(e))&&(e=oi(r+e,0)),b(t,Ge(n,3),e)):-1}function _r(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r-1;return e!==U&&(u=Jr(e),u=0>e?oi(r+u,0):ai(u,r-1)),b(t,Ge(n,3),u,!0)}function vr(t){return null!=t&&t.length?gn(t,1):[]}function br(t){return t&&t.length?t[0]:U}function mr(t){var n=null==t?0:t.length;return n?t[n-1]:U}function xr(t,n){return t&&t.length&&n&&n.length?Un(t,n):t}function jr(t){return null==t?t:si.call(t)}function wr(t){if(!t||!t.length)return[];var n=0;return t=l(t,function(t){if(zr(t))return n=oi(t.length,n),!0}),E(n,function(n){return h(t,A(n))})}function Ar(t,n){if(!t||!t.length)return[];var e=wr(t);return null==n?e:h(e,function(t){return o(n,U,t)})}function kr(t){return(t=e(t)).__chain__=!0,t}function Or(t,n){return n(t)}function Ir(t,n){return(Ro(t)?c:Si)(t,Ge(n,3))}function Er(t,n){return(Ro(t)?function(t,n){for(var e=null==t?0:t.length;e--&&!1!==n(t[e],e,t););return t}:Wi)(t,Ge(n,3))}function Sr(t,n){return(Ro(t)?h:Ln)(t,Ge(n,3))}function Wr(t,n,e){return n=e?U:n,n=t&&null==n?t.length:n,De(t,128,U,U,U,U,n)}function Rr(t,n){var e;if("function"!=typeof n)throw new Ou("Expected a function");return t=Jr(t),function(){return 0<--t&&(e=n.apply(this,arguments)),1>=t&&(n=U),e}}function Mr(t,n,e){function r(n){var e=c,r=f;return c=f=U,d=n,s=t.apply(r,e)}function u(t){var e=t-h;return t-=d,h===U||e>=n||0>e||y&&t>=l}function i(){var t=bo();if(u(t))return o(t);var e,r=qi;e=t-d,t=n-(t-h),e=y?ai(t,l-e):t,p=r(i,e)}function o(t){return p=U,_&&c?r(t):(c=f=U,s)}function a(){var t=bo(),e=u(t);if(c=arguments,f=this,h=t,e){if(p===U)return d=t=h,p=qi(i,n),g?r(t):s;if(y)return p=qi(i,n),r(h)}return p===U&&(p=qi(i,n)),s}var c,f,l,s,p,h,d=0,g=!1,y=!1,_=!0;if("function"!=typeof t)throw new Ou("Expected a function");return n=Qr(n)||0,Nr(e)&&(g=!!e.leading,l=(y="maxWait"in e)?oi(Qr(e.maxWait)||0,n):l,_="trailing"in e?!!e.trailing:_),a.cancel=function(){p!==U&&Ci(p),d=0,c=h=f=p=U},a.flush=function(){return p===U?s:o(bo())},a}function Br(t,n){function e(){var r=arguments,u=n?n.apply(this,r):r[0],i=e.cache;return i.has(u)?i.get(u):(r=t.apply(this,r),e.cache=i.set(u,r)||i,r)}if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new Ou("Expected a function");return e.cache=new(Br.Cache||Et),e}function Lr(t){if("function"!=typeof t)throw new Ou("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Cr(t,n){return t===n||t!=t&&n!=n}function Tr(t){return null!=t&&Ur(t.length)&&!Dr(t)}function zr(t){return qr(t)&&Tr(t)}function Fr(t){if(!qr(t))return!1;var n=xn(t);return"[object Error]"==n||"[object DOMException]"==n||"string"==typeof t.message&&"string"==typeof t.name&&!Kr(t)}function Dr(t){return!!Nr(t)&&("[object Function]"==(t=xn(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function Pr(t){return"number"==typeof t&&t==Jr(t)}function Ur(t){return"number"==typeof t&&-1=t}function Nr(t){var n=void 0===t?"undefined":i(t);return null!=t&&("object"==n||"function"==n)}function qr(t){return null!=t&&"object"==(void 0===t?"undefined":i(t))}function $r(t){return"number"==typeof t||qr(t)&&"[object Number]"==xn(t)}function Kr(t){return!(!qr(t)||"[object Object]"!=xn(t))&&(null===(t=Nu(t))||"function"==typeof(t=Ru.call(t,"constructor")&&t.constructor)&&t instanceof t&&Wu.call(t)==Cu)}function Zr(t){return"string"==typeof t||!Ro(t)&&qr(t)&&"[object String]"==xn(t)}function Vr(t){return"symbol"==(void 0===t?"undefined":i(t))||qr(t)&&"[object Symbol]"==xn(t)}function Hr(t){if(!t)return[];if(Tr(t))return Zr(t)?P(t):ye(t);if(Vu&&t[Vu]){t=t[Vu]();for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}return("[object Map]"==(n=Pi(t))?C:"[object Set]"==n?F:ou)(t)}function Gr(t){return t?(t=Qr(t))===N||t===-N?1.7976931348623157e308*(0>t?-1:1):t==t?t:0:0===t?t:0}function Jr(t){var n=(t=Gr(t))%1;return t==t?n?t-n:t:0}function Yr(t){return t?an(Jr(t),0,4294967295):0}function Qr(t){if("number"==typeof t)return t;if(Vr(t))return q;if(Nr(t)&&(t=Nr(t="function"==typeof t.valueOf?t.valueOf():t)?t+"":t),"string"!=typeof t)return 0===t?t:+t;t=t.replace(ot,"");var n=_t.test(t);return n||bt.test(t)?zt(t.slice(2),n?2:8):yt.test(t)?q:+t}function Xr(t){return _e(t,uu(t))}function tu(t){return null==t?"":Xn(t)}function nu(t,n,e){return(t=null==t?U:bn(t,n))===U?e:t}function eu(t,n){return null!=t&&Xe(t,n,An)}function ru(t){return Tr(t)?Dt(t):Mn(t)}function uu(t){if(Tr(t))t=Dt(t,!0);else if(Nr(t)){var n,e=or(t),r=[];for(n in t)("constructor"!=n||!e&&Ru.call(t,n))&&r.push(n);t=r}else{if(n=[],null!=t)for(e in wu(t))n.push(e);t=n}return t}function iu(t,n){if(null==t)return{};var e=h(Ze(t),function(t){return[t]});return n=Ge(n),Pn(t,e,function(t,e){return n(t,e[0])})}function ou(t){return null==t?[]:W(t,ru(t))}function au(t){return la(tu(t).toLowerCase())}function cu(t){return(t=tu(t))&&t.replace(xt,Xt).replace(It,"")}function fu(t,n,e){return t=tu(t),(n=e?U:n)===U?Rt.test(t)?t.match(St)||[]:t.match(pt)||[]:t.match(n)||[]}function lu(t){return function(){return t}}function su(t){return t}function pu(t){return Rn("function"==typeof t?t:cn(t,1))}function hu(t,n,e){var r=ru(n),u=vn(n,r);null!=e||Nr(n)&&(u.length||!r.length)||(e=n,n=t,t=this,u=vn(n,ru(n)));var i=!(Nr(e)&&"chain"in e&&!e.chain),o=Dr(t);return c(u,function(e){var r=n[e];t[e]=r,o&&(t.prototype[e]=function(){var n=this.__chain__;if(i||n){var e=t(this.__wrapped__);return(e.__actions__=ye(this.__actions__)).push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,d([this.value()],arguments))})}),t}function du(){}function gu(t){return ur(t)?A(pr(t)):function(t){return function(n){return bn(n,t)}}(t)}function yu(){return[]}function _u(){return!1}var vu=(n=null==n?Pt:en.defaults(Pt.Object(),n,en.pick(Pt,Mt))).Array,bu=n.Date,mu=n.Error,xu=n.Function,ju=n.Math,wu=n.Object,Au=n.RegExp,ku=n.String,Ou=n.TypeError,Iu=vu.prototype,Eu=wu.prototype,Su=n["__core-js_shared__"],Wu=xu.prototype.toString,Ru=Eu.hasOwnProperty,Mu=0,Bu=function(){var t=/[^.]+$/.exec(Su&&Su.keys&&Su.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Lu=Eu.toString,Cu=Wu.call(wu),Tu=Pt._,zu=Au("^"+Wu.call(Ru).replace(ut,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fu=qt?n.Buffer:U,Du=n.Symbol,Pu=n.Uint8Array,Uu=Fu?Fu.g:U,Nu=T(wu.getPrototypeOf,wu),qu=wu.create,$u=Eu.propertyIsEnumerable,Ku=Iu.splice,Zu=Du?Du.isConcatSpreadable:U,Vu=Du?Du.iterator:U,Hu=Du?Du.toStringTag:U,Gu=function(){try{var t=Qe(wu,"defineProperty");return t({},"",{}),t}catch(t){}}(),Ju=n.clearTimeout!==Pt.clearTimeout&&n.clearTimeout,Yu=bu&&bu.now!==Pt.Date.now&&bu.now,Qu=n.setTimeout!==Pt.setTimeout&&n.setTimeout,Xu=ju.ceil,ti=ju.floor,ni=wu.getOwnPropertySymbols,ei=Fu?Fu.isBuffer:U,ri=n.isFinite,ui=Iu.join,ii=T(wu.keys,wu),oi=ju.max,ai=ju.min,ci=bu.now,fi=n.parseInt,li=ju.random,si=Iu.reverse,pi=Qe(n,"DataView"),hi=Qe(n,"Map"),di=Qe(n,"Promise"),gi=Qe(n,"Set"),yi=Qe(n,"WeakMap"),_i=Qe(wu,"create"),vi=yi&&new yi,bi={},mi=hr(pi),xi=hr(hi),ji=hr(di),wi=hr(gi),Ai=hr(yi),ki=Du?Du.prototype:U,Oi=ki?ki.valueOf:U,Ii=ki?ki.toString:U,Ei=function(){function t(){}return function(n){return Nr(n)?qu?qu(n):(t.prototype=n,n=new t,t.prototype=U,n):{}}}();e.templateSettings={escape:Q,evaluate:X,interpolate:tt,variable:"",imports:{_:e}},e.prototype=r.prototype,e.prototype.constructor=e,u.prototype=Ei(r.prototype),u.prototype.constructor=u,k.prototype=Ei(r.prototype),k.prototype.constructor=k,At.prototype.clear=function(){this.__data__=_i?_i(null):{},this.size=0},At.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},At.prototype.get=function(t){var n=this.__data__;return _i?"__lodash_hash_undefined__"===(t=n[t])?U:t:Ru.call(n,t)?n[t]:U},At.prototype.has=function(t){var n=this.__data__;return _i?n[t]!==U:Ru.call(n,t)},At.prototype.set=function(t,n){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=_i&&n===U?"__lodash_hash_undefined__":n,this},kt.prototype.clear=function(){this.__data__=[],this.size=0},kt.prototype.delete=function(t){var n=this.__data__;return!(0>(t=Kt(n,t))||(t==n.length-1?n.pop():Ku.call(n,t,1),--this.size,0))},kt.prototype.get=function(t){var n=this.__data__;return 0>(t=Kt(n,t))?U:n[t][1]},kt.prototype.has=function(t){return-1r?(++this.size,e.push([t,n])):e[r][1]=n,this},Et.prototype.clear=function(){this.size=0,this.__data__={hash:new At,map:new(hi||kt),string:new At}},Et.prototype.delete=function(t){return t=Je(this,t).delete(t),this.size-=t?1:0,t},Et.prototype.get=function(t){return Je(this,t).get(t)},Et.prototype.has=function(t){return Je(this,t).has(t)},Et.prototype.set=function(t,n){var e=Je(this,t),r=e.size;return e.set(t,n),this.size+=e.size==r?0:1,this},Ct.prototype.add=Ct.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Ct.prototype.has=function(t){return this.__data__.has(t)},Ft.prototype.clear=function(){this.__data__=new kt,this.size=0},Ft.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},Ft.prototype.get=function(t){return this.__data__.get(t)},Ft.prototype.has=function(t){return this.__data__.has(t)},Ft.prototype.set=function(t,n){var e=this.__data__;if(e instanceof kt){var r=e.__data__;if(!hi||199>r.length)return r.push([t,n]),this.size=++e.size,this;e=this.__data__=new Et(r)}return e.set(t,n),this.size=e.size,this};var Si=me(yn),Wi=me(_n,!0),Ri=xe(),Mi=xe(!0),Bi=vi?function(t,n){return vi.set(t,n),t}:su,Li=Gu?function(t,n){return Gu(t,"toString",{configurable:!0,enumerable:!1,value:lu(n),writable:!0})}:su,Ci=Ju||function(t){return Pt.clearTimeout(t)},Ti=gi&&1/F(new gi([,-0]))[1]==N?function(t){return new gi(t)}:du,zi=vi?function(t){return vi.get(t)}:du,Fi=ni?function(t){return null==t?[]:(t=wu(t),l(ni(t),function(n){return $u.call(t,n)}))}:yu,Di=ni?function(t){for(var n=[];t;)d(n,Fi(t)),t=Nu(t);return n}:yu,Pi=xn;(pi&&"[object DataView]"!=Pi(new pi(new ArrayBuffer(1)))||hi&&"[object Map]"!=Pi(new hi)||di&&"[object Promise]"!=Pi(di.resolve())||gi&&"[object Set]"!=Pi(new gi)||yi&&"[object WeakMap]"!=Pi(new yi))&&(Pi=function(t){var n=xn(t);if(t=(t="[object Object]"==n?t.constructor:U)?hr(t):"")switch(t){case mi:return"[object DataView]";case xi:return"[object Map]";case ji:return"[object Promise]";case wi:return"[object Set]";case Ai:return"[object WeakMap]"}return n});var Ui=Su?Dr:_u,Ni=lr(Bi),qi=Qu||function(t,n){return Pt.setTimeout(t,n)},$i=lr(Li),Ki=function(t){var n=(t=Br(t,function(t){return 500===n.size&&n.clear(),t})).cache;return t}(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(rt,function(t,e,r,u){n.push(r?u.replace(ht,"$1"):e||t)}),n}),Zi=Kn(function(t,n){return zr(t)?sn(t,gn(n,1,zr,!0)):[]}),Vi=Kn(function(t,n){var e=mr(n);return zr(e)&&(e=U),zr(t)?sn(t,gn(n,1,zr,!0),Ge(e,2)):[]}),Hi=Kn(function(t,n){var e=mr(n);return zr(e)&&(e=U),zr(t)?sn(t,gn(n,1,zr,!0),U,e):[]}),Gi=Kn(function(t){var n=h(t,oe);return n.length&&n[0]===t[0]?kn(n):[]}),Ji=Kn(function(t){var n=mr(t),e=h(t,oe);return n===mr(e)?n=U:e.pop(),e.length&&e[0]===t[0]?kn(e,Ge(n,2)):[]}),Yi=Kn(function(t){var n=mr(t),e=h(t,oe);return(n="function"==typeof n?n:U)&&e.pop(),e.length&&e[0]===t[0]?kn(e,U,n):[]}),Qi=Kn(xr),Xi=$e(function(t,n){var e=null==t?0:t.length,r=on(t,n);return Nn(t,h(n,function(t){return er(t,e)?+t:t}).sort(he)),r}),to=Kn(function(t){return te(gn(t,1,zr,!0))}),no=Kn(function(t){var n=mr(t);return zr(n)&&(n=U),te(gn(t,1,zr,!0),Ge(n,2))}),eo=Kn(function(t){var n="function"==typeof(n=mr(t))?n:U;return te(gn(t,1,zr,!0),U,n)}),ro=Kn(function(t,n){return zr(t)?sn(t,n):[]}),uo=Kn(function(t){return ue(l(t,zr))}),io=Kn(function(t){var n=mr(t);return zr(n)&&(n=U),ue(l(t,zr),Ge(n,2))}),oo=Kn(function(t){var n="function"==typeof(n=mr(t))?n:U;return ue(l(t,zr),U,n)}),ao=Kn(wr),co=Kn(function(t){var n;return Ar(t,n="function"==typeof(n=1<(n=t.length)?t[n-1]:U)?(t.pop(),n):U)}),fo=$e(function(t){function n(n){return on(n,t)}var e=t.length,r=e?t[0]:0,i=this.__wrapped__;return!(1=n}),Wo=In(function(){return arguments}())?In:function(t){return qr(t)&&Ru.call(t,"callee")&&!$u.call(t,"callee")},Ro=vu.isArray,Mo=Zt?S(Zt):function(t){return qr(t)&&"[object ArrayBuffer]"==xn(t)},Bo=ei||_u,Lo=Vt?S(Vt):function(t){return qr(t)&&"[object Date]"==xn(t)},Co=Ht?S(Ht):function(t){return qr(t)&&"[object Map]"==Pi(t)},To=Gt?S(Gt):function(t){return qr(t)&&"[object RegExp]"==xn(t)},zo=Jt?S(Jt):function(t){return qr(t)&&"[object Set]"==Pi(t)},Fo=Yt?S(Yt):function(t){return qr(t)&&Ur(t.length)&&!!Bt[xn(t)]},Do=Ce(Bn),Po=Ce(function(t,n){return t<=n}),Uo=be(function(t,n){if(or(n)||Tr(n))_e(n,ru(n),t);else for(var e in n)Ru.call(n,e)&&$t(t,e,n[e])}),No=be(function(t,n){_e(n,uu(n),t)}),qo=be(function(t,n,e,r){_e(n,uu(n),t,r)}),$o=be(function(t,n,e,r){_e(n,ru(n),t,r)}),Ko=$e(on),Zo=Kn(function(t,n){t=wu(t);var e=-1,r=n.length;for((u=2--t)return n.apply(this,arguments)}},e.ary=Wr,e.assign=Uo,e.assignIn=No,e.assignInWith=qo,e.assignWith=$o,e.at=Ko,e.before=Rr,e.bind=mo,e.bindAll=pa,e.bindKey=xo,e.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ro(t)?t:[t]},e.chain=kr,e.chunk=function(t,n,e){if(n=(e?rr(t,n,e):n===U)?1:oi(Jr(n),0),!(e=null==t?0:t.length)||1>n)return[];for(var r=0,u=0,i=vu(Xu(e/n));r(n=e||n===U?1:Jr(n))?0:n,r):[]},e.dropRight=function(t,n,e){var r=null==t?0:t.length;return r?Vn(t,0,0>(n=r-(n=e||n===U?1:Jr(n)))?0:n):[]},e.dropRightWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!0,!0):[]},e.dropWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!0):[]},e.fill=function(t,n,e,r){var u=null==t?0:t.length;if(!u)return[];for(e&&"number"!=typeof e&&rr(t,n,e)&&(e=0,r=u),u=t.length,0>(e=Jr(e))&&(e=-e>u?0:u+e),0>(r=r===U||r>u?u:Jr(r))&&(r+=u),r=e>r?0:Yr(r);e>>0)?(t=tu(t))&&("string"==typeof n||null!=n&&!To(n))&&(!(n=Xn(n))&&Wt.test(t))?fe(P(t),0,e):t.split(n,e):[]},e.spread=function(t,n){if("function"!=typeof t)throw new Ou("Expected a function");return n=null==n?0:oi(Jr(n),0),Kn(function(e){var r=e[n];return e=fe(e,0,n),r&&d(e,r),o(t,this,e)})},e.tail=function(t){var n=null==t?0:t.length;return n?Vn(t,1,n):[]},e.take=function(t,n,e){return t&&t.length?Vn(t,0,0>(n=e||n===U?1:Jr(n))?0:n):[]},e.takeRight=function(t,n,e){var r=null==t?0:t.length;return r?Vn(t,0>(n=r-(n=e||n===U?1:Jr(n)))?0:n,r):[]},e.takeRightWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!1,!0):[]},e.takeWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3)):[]},e.tap=function(t,n){return n(t),t},e.throttle=function(t,n,e){var r=!0,u=!0;if("function"!=typeof t)throw new Ou("Expected a function");return Nr(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),Mr(t,n,{leading:r,maxWait:n,trailing:u})},e.thru=Or,e.toArray=Hr,e.toPairs=na,e.toPairsIn=ea,e.toPath=function(t){return Ro(t)?h(t,pr):Vr(t)?[t]:ye(Ki(tu(t)))},e.toPlainObject=Xr,e.transform=function(t,n,e){var r=Ro(t),u=r||Bo(t)||Fo(t);if(n=Ge(n,4),null==e){var i=t&&t.constructor;e=u?r?new i:[]:Nr(t)&&Dr(i)?Ei(Nu(t)):{}}return(u?c:yn)(t,function(t,r,u){return n(e,t,r,u)}),e},e.unary=function(t){return Wr(t,1)},e.union=to,e.unionBy=no,e.unionWith=eo,e.uniq=function(t){return t&&t.length?te(t):[]},e.uniqBy=function(t,n){return t&&t.length?te(t,Ge(n,2)):[]},e.uniqWith=function(t,n){return n="function"==typeof n?n:U,t&&t.length?te(t,U,n):[]},e.unset=function(t,n){return null==t||ne(t,n)},e.unzip=wr,e.unzipWith=Ar,e.update=function(t,n,e){return null==t?t:Zn(t,n,ae(e)(bn(t,n)),void 0)},e.updateWith=function(t,n,e,r){return r="function"==typeof r?r:U,null!=t&&(t=Zn(t,n,ae(e)(bn(t,n)),r)),t},e.values=ou,e.valuesIn=function(t){return null==t?[]:W(t,uu(t))},e.without=ro,e.words=fu,e.wrap=function(t,n){return ko(ae(n),t)},e.xor=uo,e.xorBy=io,e.xorWith=oo,e.zip=ao,e.zipObject=function(t,n){return ie(t||[],n||[],$t)},e.zipObjectDeep=function(t,n){return ie(t||[],n||[],Zn)},e.zipWith=co,e.entries=na,e.entriesIn=ea,e.extend=No,e.extendWith=qo,hu(e,e),e.add=ja,e.attempt=sa,e.camelCase=ra,e.capitalize=au,e.ceil=wa,e.clamp=function(t,n,e){return e===U&&(e=n,n=U),e!==U&&(e=(e=Qr(e))==e?e:0),n!==U&&(n=(n=Qr(n))==n?n:0),an(Qr(t),n,e)},e.clone=function(t){return cn(t,4)},e.cloneDeep=function(t){return cn(t,5)},e.cloneDeepWith=function(t,n){return cn(t,5,n="function"==typeof n?n:U)},e.cloneWith=function(t,n){return cn(t,4,n="function"==typeof n?n:U)},e.conformsTo=function(t,n){return null==n||fn(t,n,ru(n))},e.deburr=cu,e.defaultTo=function(t,n){return null==t||t!=t?n:t},e.divide=Aa,e.endsWith=function(t,n,e){t=tu(t),n=Xn(n);var r=t.length;r=e=e===U?r:an(Jr(e),0,r);return 0<=(e-=n.length)&&t.slice(e,r)==n},e.eq=Cr,e.escape=function(t){return(t=tu(t))&&Y.test(t)?t.replace(G,tn):t},e.escapeRegExp=function(t){return(t=tu(t))&&it.test(t)?t.replace(ut,"\\$&"):t},e.every=function(t,n,e){var r=Ro(t)?f:pn;return e&&rr(t,n,e)&&(n=U),r(t,Ge(n,3))},e.find=so,e.findIndex=yr,e.findKey=function(t,n){return v(t,Ge(n,3),yn)},e.findLast=po,e.findLastIndex=_r,e.findLastKey=function(t,n){return v(t,Ge(n,3),_n)},e.floor=ka,e.forEach=Ir,e.forEachRight=Er,e.forIn=function(t,n){return null==t?t:Ri(t,Ge(n,3),uu)},e.forInRight=function(t,n){return null==t?t:Mi(t,Ge(n,3),uu)},e.forOwn=function(t,n){return t&&yn(t,Ge(n,3))},e.forOwnRight=function(t,n){return t&&_n(t,Ge(n,3))},e.get=nu,e.gt=Eo,e.gte=So,e.has=function(t,n){return null!=t&&Xe(t,n,wn)},e.hasIn=eu,e.head=br,e.identity=su,e.includes=function(t,n,e,r){return t=Tr(t)?t:ou(t),e=e&&!r?Jr(e):0,r=t.length,0>e&&(e=oi(r+e,0)),Zr(t)?e<=r&&-1(e=null==e?0:Jr(e))&&(e=oi(r+e,0)),m(t,n,e)):-1},e.inRange=function(t,n,e){return n=Gr(n),e===U?(e=n,n=0):e=Gr(e),(t=Qr(t))>=ai(n,e)&&t=t},e.isSet=zo,e.isString=Zr,e.isSymbol=Vr,e.isTypedArray=Fo,e.isUndefined=function(t){return t===U},e.isWeakMap=function(t){return qr(t)&&"[object WeakMap]"==Pi(t)},e.isWeakSet=function(t){return qr(t)&&"[object WeakSet]"==xn(t)},e.join=function(t,n){return null==t?"":ui.call(t,n)},e.kebabCase=ua,e.last=mr,e.lastIndexOf=function(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r;if(e!==U&&(u=0>(u=Jr(e))?oi(r+u,0):ai(u,r-1)),n==n){for(e=u+1;e--&&t[e]!==n;);t=e}else t=b(t,j,u,!0);return t},e.lowerCase=ia,e.lowerFirst=oa,e.lt=Do,e.lte=Po,e.max=function(t){return t&&t.length?hn(t,su,jn):U},e.maxBy=function(t,n){return t&&t.length?hn(t,Ge(n,2),jn):U},e.mean=function(t){return w(t,su)},e.meanBy=function(t,n){return w(t,Ge(n,2))},e.min=function(t){return t&&t.length?hn(t,su,Bn):U},e.minBy=function(t,n){return t&&t.length?hn(t,Ge(n,2),Bn):U},e.stubArray=yu,e.stubFalse=_u,e.stubObject=function(){return{}},e.stubString=function(){return""},e.stubTrue=function(){return!0},e.multiply=Oa,e.nth=function(t,n){return t&&t.length?Fn(t,Jr(n)):U},e.noConflict=function(){return Pt._===this&&(Pt._=Tu),this},e.noop=du,e.now=bo,e.pad=function(t,n,e){t=tu(t);var r=(n=Jr(n))?D(t):0;return!n||r>=n?t:Me(ti(n=(n-r)/2),e)+t+Me(Xu(n),e)},e.padEnd=function(t,n,e){t=tu(t);var r=(n=Jr(n))?D(t):0;return n&&rn){var r=t;t=n,n=r}return e||t%1||n%1?(e=li(),ai(t+e*(n-t+Tt("1e-"+((e+"").length-1))),n)):qn(t,n)},e.reduce=function(t,n,e){var r=Ro(t)?g:O,u=3>arguments.length;return r(t,Ge(n,4),e,u,Si)},e.reduceRight=function(t,n,e){var r=Ro(t)?y:O,u=3>arguments.length;return r(t,Ge(n,4),e,u,Wi)},e.repeat=function(t,n,e){return n=(e?rr(t,n,e):n===U)?1:Jr(n),$n(tu(t),n)},e.replace=function(){var t=arguments,n=tu(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},e.result=function(t,n,e){var r=-1,u=(n=ce(n,t)).length;for(u||(u=1,t=U);++r(t=Jr(t))||9007199254740991=i)return t;if(1>(i=e-D(r)))return r;if(e=o?fe(o,0,i).join(""):t.slice(0,i),u===U)return e+r;if(o&&(i+=e.length-i),To(u)){if(t.slice(i).search(u)){var a=e;for(u.global||(u=Au(u.source,tu(gt.exec(u))+"g")),u.lastIndex=0;o=u.exec(a);)var c=o.index;e=e.slice(0,c===U?i:c)}}else t.indexOf(Xn(u),i)!=i&&(-1<(u=e.lastIndexOf(u))&&(e=e.slice(0,u)));return e+r},e.unescape=function(t){return(t=tu(t))&&J.test(t)?t.replace(H,nn):t},e.uniqueId=function(t){var n=++Mu;return tu(t)+n},e.upperCase=fa,e.upperFirst=la,e.each=Ir,e.eachRight=Er,e.first=br,hu(e,function(){var t={};return yn(e,function(n,r){Ru.call(e.prototype,r)||(t[r]=n)}),t}(),{chain:!1}),e.VERSION="4.17.10",c("bind bindKey curry curryRight partial partialRight".split(" "),function(t){e[t].placeholder=e}),c(["drop","take"],function(t,n){k.prototype[t]=function(e){e=e===U?1:oi(Jr(e),0);var r=this.__filtered__&&!n?new k(this):this.clone();return r.__filtered__?r.__takeCount__=ai(e,r.__takeCount__):r.__views__.push({size:ai(e,4294967295),type:t+(0>r.__dir__?"Right":"")}),r},k.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),c(["filter","map","takeWhile"],function(t,n){var e=n+1,r=1==e||3==e;k.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Ge(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),c(["head","last"],function(t,n){var e="take"+(n?"Right":"");k.prototype[t]=function(){return this[e](1).value()[0]}}),c(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");k.prototype[t]=function(){return this.__filtered__?new k(this):this[e](1)}}),k.prototype.compact=function(){return this.filter(su)},k.prototype.find=function(t){return this.filter(t).head()},k.prototype.findLast=function(t){return this.reverse().find(t)},k.prototype.invokeMap=Kn(function(t,n){return"function"==typeof t?new k(this):this.map(function(e){return On(e,t,n)})}),k.prototype.reject=function(t){return this.filter(Lr(Ge(t)))},k.prototype.slice=function(t,n){t=Jr(t);var e=this;return e.__filtered__&&(0n)?new k(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==U&&(e=0>(n=Jr(n))?e.dropRight(-n):e.take(n-t)),e)},k.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},k.prototype.toArray=function(){return this.take(4294967295)},yn(k.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),o=e[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);o&&(e.prototype[n]=function(){function n(t){return t=o.apply(e,d([t],f)),i&&h?t[0]:t}var c=this.__wrapped__,f=i?[1]:arguments,l=c instanceof k,s=f[0],p=l||Ro(c);p&&r&&"function"==typeof s&&1!=s.length&&(l=p=!1);var h=this.__chain__,g=!!this.__actions__.length;s=a&&!h,l=l&&!g;return!a&&p?(c=l?c:new k(this),(c=t.apply(c,f)).__actions__.push({func:Or,args:[n],thisArg:U}),new u(c,h)):s&&l?t.apply(this,f):(c=this.thru(n),s?i?c.value()[0]:c.value():c)})}),c("pop push shift sort splice unshift".split(" "),function(t){var n=Iu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",u=/^(?:pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;if(u&&!this.__chain__){var e=this.value();return n.apply(Ro(e)?e:[],t)}return this[r](function(e){return n.apply(Ro(e)?e:[],t)})}}),yn(k.prototype,function(t,n){var r=e[n];if(r){var u=r.name+"";(bi[u]||(bi[u]=[])).push({name:n,func:r})}}),bi[Ee(U,2).name]=[{name:"wrapper",func:U}],k.prototype.clone=function(){var t=new k(this.__wrapped__);return t.__actions__=ye(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ye(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ye(this.__views__),t},k.prototype.reverse=function(){if(this.__filtered__){var t=new k(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},k.prototype.value=function(){var t,n=this.__wrapped__.value(),e=this.__dir__,r=Ro(n),u=0>e,i=r?n.length:0;t=i;for(var o=this.__views__,a=0,c=-1,f=o.length;++c=this.__values__.length;return{done:t,value:t?U:this.__values__[this.__index__++]}},e.prototype.plant=function(t){for(var n,e=this;e instanceof r;){var u=gr(e);u.__index__=0,u.__values__=U,n?i.__wrapped__=u:n=u;var i=u;e=e.__wrapped__}return i.__wrapped__=t,n},e.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof k?(this.__actions__.length&&(t=new k(this)),(t=t.reverse()).__actions__.push({func:Or,args:[jr],thisArg:U}),new u(t,this.__chain__)):this.thru(jr)},e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=function(){return re(this.__wrapped__,this.__actions__)},e.prototype.first=e.prototype.head,Vu&&(e.prototype[Vu]=function(){return this}),e}();"object"==i(e("./node_modules/webpack/buildin/amd-options.js"))&&e("./node_modules/webpack/buildin/amd-options.js")?(Pt._=en,void 0===(u=function(){return en}.call(n,e,n,r))||(r.exports=u)):Nt?((Nt.exports=en)._=en,Ut._=en):Pt._=en}).call(void 0)}).call(this,e("./node_modules/webpack/buildin/global.js"),e("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/webpack/buildin/amd-options.js":function(t,n){(function(n){t.exports=n}).call(this,{})},"./node_modules/webpack/buildin/global.js":function(t,n,e){"use strict";var r,u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"===("undefined"==typeof window?"undefined":u(window))&&(r=window)}t.exports=r},"./node_modules/webpack/buildin/module.js":function(t,n,e){"use strict";t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./src/web/index.js":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,n){var e=[],r=!0,u=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){u=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(u)throw i}}return e}(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,n){for(var e=0;e0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=e;u||(this.regenCache(),u=[].concat(a(document.querySelectorAll("[data-huron-id][data-huron-type]")))),t=this.getModuleListFromTags(u),Object.keys(t).forEach(function(e){var u=n._modules[e],i=t[e];n.loadModule(e,u,i,!0,r)})}},{key:"cycleSections",value:function(){this.cycleModules(!1,{property:"type",values:["section"],include:!0})}},{key:"cycleStyleguide",value:function(){var t=document.querySelector("[huron-sections]"),n=document.querySelector("[huron-menu]");if(t&&(t.innerHTML="",this.outputSections(null,t),this.cycleSections()),n){if(n.innerHTML="",null===document.querySelector(".section-menu__expand")){var e=document.createElement("button");e.classList.add("section-menu__expand"),e.innerHTML="Sections Menu",document.body.insertBefore(n.appendChild(e),document.body.childNodes[0]),e.addEventListener("click",function(){document.body.classList.toggle("section-menu-open")})}this.outputMenu(null,n)}}},{key:"generateModuleReplaceKey",value:function(t){var n=t;return t.includes("-section.json")?n=this._sectionTemplatePath:t.includes(".json")&&(n=this._templates[t]),"_"+n.replace(/[/.]/g,"_")}},{key:"getMetaFromPath",value:function(t,n){var e=this,r=this._sections.sectionsByPath,i=this._types.filter(function(t){return"prototype"!==t}),o=!1,a=!1;if(-1!==t.indexOf("./prototypes")){var c=Object.keys(this._prototypes).filter(function(n){return e._prototypes[n]===t});if(c.length)o=u(c,1)[0],a="prototype"}else if(t===this._sectionTemplatePath)o="sections-template",a="sections-template";else{var f=[],l=Object.keys(r).filter(function(n){var e=i.filter(function(e){return r[n][e+"Path"]===t});return!!e.length&&(f=e,!0)});if(l&&l.length&&f&&f.length)o=r[l[0]].referenceURI,a=u(f,1)[0]}if(o&&a){var s=this.getModuleRender(a,t,n),p=this.generateModuleReplaceKey(t);if(s)return Object.assign({id:o,type:a,key:t,replaceKey:p,module:n},s)}return console.warn("Module '"+t+"' does not exist on the page\n or is no longer in use"),!1}},{key:"getModuleKeyFromTag",value:function(n){var e=t.getDataAttribute(n,"huron-type"),r=t.getDataAttribute(n,"huron-id"),u=this._sections.sectionsByURI[r];if(r&&e){if(u)return u[e+"Path"];if("prototype"===e)return this._prototypes[r]}return!1}},{key:"getModuleListFromTags",value:function(t){var n=this,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r={},u={};return t&&t.length&&t.forEach(function(t){var i=n.getModuleKeyFromTag(t);i?(r[i]||(r[i]=[]),r[i].push(t)):e&&(u=n.getModuleListFromTags([].concat(a(t.querySelectorAll("[data-huron-id][data-huron-type]"))),!1),Object.keys(u).forEach(function(t){r[t]=r[t]?r[t].concat(u[t]):u[t]}))}),r}},{key:"getModuleRender",value:function(t,n,e){var u=!1,i=!1;return"template"===t&&"function"==typeof e?(u=e,i=this._modules[this._templates[n]]):"sections-template"===t&&"function"==typeof e?u=e:"section"===t&&"object"===(void 0===e?"undefined":r(e))?(u=this._modules[this._sectionTemplatePath],i=e):"template"!==t&&"description"!==t&&"prototype"!==t||"string"!=typeof e?"data"===t&&"object"===(void 0===e?"undefined":r(e))&&(u=this._modules[this._templates[n]],i=e):u=function(){return e},!!u&&{render:u,data:i}}},{key:"loadModule",value:function(n,e,r){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=!0,a=!1;u?a=this.meta[n]:(this.meta[n]=this.getMetaFromPath(n,e),a=this.meta[n]),a&&(i&&(o=t.filterModules(i,a)),o&&this.replaceTemplate(a,r))}},{key:"outputMenu",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=n;Object.keys(r).forEach(function(n){var o=Object.keys(r[n]).length,a=void 0,c=void 0;if(u=t?t+"-"+n:n,i){var f=e._sections.sectionsByURI[u]?e._sections.sectionsByURI[u].header:u,l=document.createElement("ul"),s=document.createElement("li"),p=''+f+"";l.classList.add("section-menu"),s.classList.add("section-menu__item"),s.innerHTML=p,"UL"!==i.tagName&&(a=l.cloneNode(),i.appendChild(a),i=a),o&&((c=l.cloneNode()).classList.add("section-menu--submenu"),s.classList.add("section-menu__item--has-submenu"),s.appendChild(c)),i.appendChild(s),o&&e.outputMenu(u,c,r[n])}})}},{key:"outputSections",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=null;Object.keys(r).forEach(function(o){var a=!1,c=null,f=null,l=n;t?u=t+"-"+o:(u=o,a=!0),n&&((i=document.createElement("div")).dataset.huronId=u,i.dataset.huronType="section",a?((c=document.createElement("div")).classList.add("section--top-level__wrapper"),(f=document.createElement("div")).classList.add("section","section--top-level"),f.appendChild(i),c.appendChild(f),n.appendChild(c),l=c):n.appendChild(i)),Object.keys(r[o]).length&&i&&e.outputSections(u,l,r[o])})}},{key:"provideClassnames",value:function(t){return this._classNames?Object.assign({},t,{classNames:this._classNames}):t}},{key:"regenCache",value:function(){var t=this;Object.keys(this._modules).forEach(function(n){t.meta[n]=t.getMetaFromPath(n,t._modules[n])})}},{key:"removeOldTags",value:function(n,e){if(e){var r=t.getDataAttribute(e,"parent-module"),u=t.getDataAttribute(e,"self-module");if(r===n&&u!==n){var i=u,o=e.previousSibling;i&&(this.removeOldTags(i,o),o=e.previousSibling),e.parentNode.removeChild(e),this.removeOldTags(n,o)}}}},{key:"replaceTemplate",value:function(n,e){var r=this,u=this.validateType(n.type),i=[],c=e,f=!1;c||(c=document.querySelectorAll("[data-huron-id][data-huron-type]")),u?(c.forEach(function(e){var r=t.getDataAttribute(e,"huron-type");t.getDataAttribute(e,"huron-id")===n.id&&r===u&&i.push(e)}),i&&i.length&&n.render&&i.forEach(function(e){var u=e,i=t.getDataAttribute(u,"huron-modifier"),c=u.parentNode,l=(0,o.compose)(r.provideClassnames.bind(r),t.applyModifier)(n.data,i),s=n.render(l),p=t.convertToElement(s).querySelector("template"),h=null;r.removeOldTags(n.replaceKey,u.previousSibling),(h=[].concat(a(p.content.children))).forEach(function(e){var r=e;1===r.nodeType&&(r.dataset.parentModule=n.replaceKey,f=f||t.isSectionHelper(r,n),c.insertBefore(r,u))}),u.dataset.selfModule=n.replaceKey,u.style.display="none",r.cycleModules(h,{property:"key",values:[n.key,r._sectionTemplatePath],include:!1}),f&&r.cycleStyleguide()})):console.warn("Could not render module\n section: "+n.id+"\n type: "+n.type)}},{key:"validateType",value:function(t){return"data"===t?"template":!!this._types.includes(t)&&t}},{key:"modules",set:function(t){this._modules=t,this._moduleIds=Object.keys(t)}},{key:"store",set:function(t){if(this._store=t,this._config=t.config,this._sections=t.sections,this._templates=t.templates,this._prototypes=t.prototypes,this._types=t.types,this._sectionTemplatePath=t.sectionTemplatePath,!(0,o.isEqual)(this._classNames,t.classNames)){var n=!this._classNames;this._classNames=t.classNames,n||this.cycleModules()}}}],[{key:"applyModifier",value:function(t,n){return n&&t&&t[n]?Object.assign({},t[n],{modifier:n}):t}},{key:"convertToElement",value:function(t){var n=document.createElement("div");return n.innerHTML=t,n.firstElementChild}},{key:"filterModules",value:function(t,n){var e=!0;return"object"===(void 0===t?"undefined":r(t))&&{}.hasOwnProperty.call(t,"property")&&{}.hasOwnProperty.call(t,"values")&&{}.hasOwnProperty.call(t,"include")?(e=t.values.filter(function(e){return n[t.property]===e}),Boolean(e.length)===t.include):(console.log(" // eslint-disable-line no-console\n filter "+t+" is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n "),e)}},{key:"getDataAttribute",value:function(t,n){var e=!1;return t.dataset&&(e=t.dataset[n]),!e&&t.getAttribute&&(e=t.getAttribute("data-"+n)),e}},{key:"isSectionHelper",value:function(t,n){return"prototype"===n.type&&(t.hasAttribute("huron-sections")||t.hasAttribute("huron-menu"))}}]),t}();n.default=c},0:function(t,n,e){t.exports=e("./src/web/index.js")}}); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js.map b/dist/web/index.js.map index b17a1e6..0006bca 100644 --- a/dist/web/index.js.map +++ b/dist/web/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap","webpack://huron/./node_modules/lodash/lodash.min.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\\s\\S]+?)%>/g,Y=/<%([\\s\\S]+?)%>/g,Q=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,nn=/^\\w*$/,tn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,rn=/[\\\\^$.*+?()[\\]{}|]/g,en=RegExp(rn.source),un=/^\\s+|\\s+$/g,on=/^\\s+/,fn=/\\s+$/,cn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,an=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ln=/,? & /,sn=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,hn=/\\\\(\\\\)?/g,pn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,_n=/\\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\\[object .+?Constructor\\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\\d*)$/,xn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,jn=/($^)/,wn=/['\\n\\r\\u2028\\u2029\\\\]/g,mn=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",An=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+mn,En=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",kn=RegExp(\"['\\u2019]\",\"g\"),Sn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),On=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+En+mn,\"g\"),In=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])|\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])|\\\\d+\",An].join(\"|\"),\"g\"),Rn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Bn={};\nBn[\"[object Float32Array]\"]=Bn[\"[object Float64Array]\"]=Bn[\"[object Int8Array]\"]=Bn[\"[object Int16Array]\"]=Bn[\"[object Int32Array]\"]=Bn[\"[object Uint8Array]\"]=Bn[\"[object Uint8ClampedArray]\"]=Bn[\"[object Uint16Array]\"]=Bn[\"[object Uint32Array]\"]=true,Bn[\"[object Arguments]\"]=Bn[\"[object Array]\"]=Bn[\"[object ArrayBuffer]\"]=Bn[\"[object Boolean]\"]=Bn[\"[object DataView]\"]=Bn[\"[object Date]\"]=Bn[\"[object Error]\"]=Bn[\"[object Function]\"]=Bn[\"[object Map]\"]=Bn[\"[object Number]\"]=Bn[\"[object Object]\"]=Bn[\"[object RegExp]\"]=Bn[\"[object Set]\"]=Bn[\"[object String]\"]=Bn[\"[object WeakMap]\"]=false;\nvar Ln={};Ln[\"[object Arguments]\"]=Ln[\"[object Array]\"]=Ln[\"[object ArrayBuffer]\"]=Ln[\"[object DataView]\"]=Ln[\"[object Boolean]\"]=Ln[\"[object Date]\"]=Ln[\"[object Float32Array]\"]=Ln[\"[object Float64Array]\"]=Ln[\"[object Int8Array]\"]=Ln[\"[object Int16Array]\"]=Ln[\"[object Int32Array]\"]=Ln[\"[object Map]\"]=Ln[\"[object Number]\"]=Ln[\"[object Object]\"]=Ln[\"[object RegExp]\"]=Ln[\"[object Set]\"]=Ln[\"[object String]\"]=Ln[\"[object Symbol]\"]=Ln[\"[object Uint8Array]\"]=Ln[\"[object Uint8ClampedArray]\"]=Ln[\"[object Uint16Array]\"]=Ln[\"[object Uint32Array]\"]=true,\nLn[\"[object Error]\"]=Ln[\"[object Function]\"]=Ln[\"[object WeakMap]\"]=false;var Un={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Cn=parseFloat,Dn=parseInt,Mn=typeof global==\"object\"&&global&&global.Object===Object&&global,Tn=typeof self==\"object\"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function(\"return this\")(),Fn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){\ntry{var n=Nn&&Nn.f&&Nn.f(\"util\").types;return n?n:Zn&&Zn.binding&&Zn.binding(\"util\")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b(\"length\"),Xn=x({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\n\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\n\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\n\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\n\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\n\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),nt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),tt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,\"__wrapped__\"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,\nthis.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(cf(n))return Ir(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),\ni=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!=\"function\")throw new ni(\"Expected a function\");\nreturn yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),\nl[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&\"[object Arguments]\"==Ot(n)}function Ct(n){\nreturn du(n)&&\"[object ArrayBuffer]\"==Ot(n)}function Dt(n){return du(n)&&\"[object Date]\"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?\"[object Array]\":_o(n),c=o?\"[object Array]\":_o(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{\nif(!(1&r)&&(i=a&&ii.call(n,\"__wrapped__\"),f=o&&ii.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),\nn=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),\nt}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),\no-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(\"\"):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){\nreturn n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){\nreturn t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!=\"function\")throw new ni(\"Expected a function\");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,\nn}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),\ns}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Li(ku(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ni(\"Expected a function\");\nreturn r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!=\"function\")throw new ni(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!bu(n);\n}function pu(n){return!!gu(n)&&(n=Ot(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function _u(n){return typeof n==\"number\"&&n==Au(n)}function vu(n){return typeof n==\"number\"&&-1=n}function gu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function du(n){return null!=n&&typeof n==\"object\"}function yu(n){return typeof n==\"number\"||du(n)&&\"[object Number]\"==Ot(n)}function bu(n){return!(!du(n)||\"[object Object]\"!=Ot(n))&&(n=gi(n),\nnull===n||(n=ii.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n==\"string\"||!of(n)&&du(n)&&\"[object String]\"==Ot(n)}function ju(n){return typeof n==\"symbol\"||du(n)&&\"[object Symbol]\"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),(\"[object Map]\"==t?W:\"[object Set]\"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),\nn===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n==\"number\")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=gu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;n=n.replace(un,\"\");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?\"\":yr(n);\n}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));\n}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,\"\")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n==\"function\"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&\"chain\"in e&&!e.chain),f=pu(n);return r(i,function(r){\nvar e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn[\"__core-js_shared__\"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){\nvar n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu(\"^\"+ui.call(ii).replace(rn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,\"defineProperty\");\nreturn n({},\"\",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,\"DataView\"),Fi=je(mn,\"Map\"),Ni=je(mn,\"Promise\"),Pi=je(mn,\"Set\"),Zi=je(mn,\"WeakMap\"),qi=je(Yu,\"create\"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){\nfunction n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:\"\",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],\"__lodash_hash_undefined__\"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?\"__lodash_hash_undefined__\":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),\n--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);\n},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){\nreturn this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,\"toString\",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){\nreturn $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&\"[object DataView]\"!=_o(new $i(new ArrayBuffer(1)))||Fi&&\"[object Map]\"!=_o(new Fi)||Ni&&\"[object Promise]\"!=_o(Ni.resolve())||Pi&&\"[object Set]\"!=_o(new Pi)||Zi&&\"[object WeakMap]\"!=_o(new Zi))&&(_o=function(n){\nvar t=Ot(n);if(n=(n=\"[object Object]\"==t?n.constructor:T)?Me(n):\"\")switch(n){case Gi:return\"[object DataView]\";case Hi:return\"[object Map]\";case Ji:return\"[object Promise]\";case Yi:return\"[object Set]\";case Qi:return\"[object WeakMap]\"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(tn,function(n,r,e,u){\nt.push(e?u.replace(hn,\"$1\"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t==\"function\"?t:T)&&r.pop(),\nr.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),\nmr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,\"callee\")&&!yi.call(n,\"callee\")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){\nif(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];\n},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t==\"string\"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!=\"function\")throw new ni(\"Expected a function\");return r=null==r?0:Li(Au(r),0),\nfr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),\nn},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return gu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};\n}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t==\"function\"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){\nreturn e=typeof e==\"function\"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,\nAn.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){\nn=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,\"\\\\$&\"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);\n},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&\"[object WeakMap]\"==_o(n)},An.isWeakSet=function(n){return du(n)&&\"[object WeakSet]\"==Ot(n)},An.join=function(n,t){return null==n?\"\":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),\nt===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){\nreturn\"\"},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn(\"1e-\"+((r+\"\").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;\nreturn e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(\"\"):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+\"g\")),\nu.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Un.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({\niteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);\n},Un.prototype.invokeMap=fr(function(n,t){return typeof n==\"function\"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);\n},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l==\"function\"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({\nfunc:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+\"\";\n(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:\"wrapper\",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;\n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){\nvar e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),\nAn}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);\n"],"mappings":"AACA;;;;ACGA","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"],"mappings":"AACA","sourceRoot":""} \ No newline at end of file diff --git a/src/cli/server.js b/src/cli/server.js index 5e24028..c2d5ebd 100644 --- a/src/cli/server.js +++ b/src/cli/server.js @@ -18,7 +18,7 @@ import { removeTrailingSlash } from './utils'; export default function startWebpack(config) { const { huron, - webpackConfig, + webpack: webpackConfig, } = config; const compiler = webpack(webpackConfig); diff --git a/src/defaultConfig/webpack.config.js b/src/defaultConfig/webpack.config.js index f2f62b2..0a24d36 100644 --- a/src/defaultConfig/webpack.config.js +++ b/src/defaultConfig/webpack.config.js @@ -3,58 +3,56 @@ import path from 'path'; import program from '../cli/parseArgs'; -export default (huron) => { - const cwd = process.cwd(); - - return { - entry: {}, - output: { - path: path.join(cwd, huron.root), - publicPath: program.production ? '' : - `/${huron.root}`, - filename: '[name].js', - chunkFilename: '[name].chunk.min.js', - }, - plugins: [ - new webpack.HotModuleReplacementPlugin(), - new webpack.NamedModulesPlugin(), +export default ({ root, output }) => ({ + entry: {}, + output: { + path: path.join(process.cwd(), root), + publicPath: program.production ? '' : + `/${root}`, + filename: '[name].js', + chunkFilename: '[name].chunk.min.js', + }, + optimization: { + namedModules: true, + }, + plugins: [ + new webpack.HotModuleReplacementPlugin(), + ], + resolve: { + modulesDirectories: [ + path.resolve(__dirname, '../src/js'), ], - resolve: { - modulesDirectories: [ - path.resolve(__dirname, '../src/js'), - ], - }, - resolveLoader: { - modulesDirectories: [ - 'web_loaders', - 'web_modules', - 'node_loaders', - 'node_modules', - path.resolve(__dirname, '../node_modules'), - ], - }, - module: { - rules: [ - { - test: /\.html$/, - include: [path.join(cwd, huron.root, huron.output)], - use: 'html-loader', - }, - { - test: /\.(hbs|handlebars)$/, - include: [path.join(cwd, huron.root, 'huron-assets')], - use: { - loader: 'handlebars-loader', - options: { - helperDirs: [path.join( - __dirname, - '../../', - 'templates/handlebarsHelpers' - )], - }, + }, + resolveLoader: { + modulesDirectories: [ + 'web_loaders', + 'web_modules', + 'node_loaders', + 'node_modules', + path.resolve(__dirname, '../node_modules'), + ], + }, + module: { + rules: [ + { + test: /\.html$/, + include: [path.join(process.cwd(), root, output)], + use: 'html-loader', + }, + { + test: /\.(hbs|handlebars)$/, + include: [path.join(process.cwd(), root, 'huron-assets')], + use: { + loader: 'handlebars-loader', + options: { + helperDirs: [path.join( + __dirname, + '../../', + 'templates/handlebarsHelpers' + )], }, }, - ], - }, - }; -}; + }, + ], + }, +}); From 816dd4c961ed74e85302dfd3aa7355dc4842e389 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Fri, 18 May 2018 15:33:28 -0700 Subject: [PATCH 03/24] Working to the point of 'cannot find uglify plugin' --- dist/cli/index.js | 2 +- package-lock.json | 367 +++++----------------------- package.json | 3 +- src/cli/parseArgs.js | 2 + src/defaultConfig/webpack.config.js | 3 +- 5 files changed, 68 insertions(+), 309 deletions(-) diff --git a/dist/cli/index.js b/dist/cli/index.js index 849d27e..1aa7996 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",options:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 222faaf..ac2c957 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2247,9 +2247,9 @@ } }, "caniuse-db": { - "version": "1.0.30000842", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000842.tgz", - "integrity": "sha1-ioLDd7iz1vJZRHjoQx/0/TA+Fgw=" + "version": "1.0.30000843", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000843.tgz", + "integrity": "sha1-T36FAfVX3JvNN90zrIWQXHZe/sI=" }, "caniuse-lite": { "version": "1.0.30000842", @@ -3693,22 +3693,23 @@ } }, "es5-ext": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.31.tgz", - "integrity": "sha1-e7k4yVp/G59ygJLcCcQe3MOY7v4=", + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "requires": { - "es6-iterator": "~2.0.1", - "es6-symbol": "~3.1.1" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { "d": "1", - "es5-ext": "^0.10.14", - "es6-symbol": "^3.1" + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-symbol": { @@ -4379,6 +4380,37 @@ "is-extglob": "^1.0.0" } }, + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "^4.14.0" + } + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -6410,82 +6442,25 @@ } }, "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "version": "github:jantimon/html-webpack-plugin#b6df42c7eaacc72bf519e4c084cd747c38df0881", + "from": "github:jantimon/html-webpack-plugin#webpack-4", "requires": { "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", + "loader-utils": "^1.1.0", "lodash": "^4.17.3", "pretty-error": "^2.0.2", "tapable": "^1.0.0", - "toposort": "^1.0.0", "util.promisify": "1.0.0" }, "dependencies": { - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "clean-css": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", - "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", - "requires": { - "source-map": "0.5.x" - } - }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "html-minifier": { - "version": "3.5.15", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz", - "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.1.x", - "commander": "2.15.x", - "he": "1.1.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.3.x" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "uglify-js": { - "version": "3.3.25", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz", - "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==", + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "requires": { - "commander": "~2.15.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } @@ -6872,29 +6847,6 @@ "postcss": "^6.0.1" }, "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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "postcss": { "version": "6.0.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", @@ -6909,14 +6861,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } } } }, @@ -9588,6 +9532,11 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==" }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, "nice-try": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", @@ -10640,29 +10589,6 @@ "postcss": "^6.0.1" }, "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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "postcss": { "version": "6.0.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", @@ -10677,14 +10603,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } } } }, @@ -10697,29 +10615,6 @@ "postcss": "^6.0.1" }, "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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "postcss": { "version": "6.0.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", @@ -10734,14 +10629,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } } } }, @@ -10754,29 +10641,6 @@ "postcss": "^6.0.1" }, "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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "postcss": { "version": "6.0.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", @@ -10791,14 +10655,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } } } }, @@ -10811,29 +10667,6 @@ "postcss": "^6.0.1" }, "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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "postcss": { "version": "6.0.22", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", @@ -10848,14 +10681,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } } } }, @@ -13915,11 +13740,6 @@ } } }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, "tough-cookie": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", @@ -15569,11 +15389,6 @@ } } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, "chokidar": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", @@ -15825,11 +15640,6 @@ } } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -15956,19 +15766,6 @@ } } }, - "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" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, "yargs": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", @@ -15987,14 +15784,6 @@ "y18n": "^3.2.1", "yargs-parser": "^9.0.2" } - }, - "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" - } } } }, @@ -16007,39 +15796,6 @@ "log-symbols": "^2.1.0", "loglevelnext": "^1.0.1", "uuid": "^3.1.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.0" - } - }, - "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.3.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "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" - } - } } }, "webpack-node-externals": { @@ -16131,8 +15887,7 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "window-size": { "version": "0.1.0", diff --git a/package.json b/package.json index e0234ac..4f555db 100644 --- a/package.json +++ b/package.json @@ -39,12 +39,13 @@ "concurrently": "^3.5.1", "css-loader": "^0.28.11", "dom-loader": "^1.0.4", + "extract-text-webpack-plugin": "^4.0.0-beta.0", "fs-extra": "^6.0.1", "gaze": "^1.1.2", "handlebars": "^4.0.11", "handlebars-loader": "^1.7.0", "html-loader": "^0.5.5", - "html-webpack-plugin": "^3.2.0", + "html-webpack-plugin": "jantimon/html-webpack-plugin#webpack-4", "immutable": "^3.8.2", "json-loader": "^0.5.7", "kss": "^3.0.0-beta.20", diff --git a/src/cli/parseArgs.js b/src/cli/parseArgs.js index 51589cd..0e531cc 100644 --- a/src/cli/parseArgs.js +++ b/src/cli/parseArgs.js @@ -7,6 +7,8 @@ import path from 'path'; // Requires /** @global */ +// @todo this may be deprecated with webpack 4 + /** * Process huron CLI arguments * diff --git a/src/defaultConfig/webpack.config.js b/src/defaultConfig/webpack.config.js index 0a24d36..5551563 100644 --- a/src/defaultConfig/webpack.config.js +++ b/src/defaultConfig/webpack.config.js @@ -4,6 +4,7 @@ import path from 'path'; import program from '../cli/parseArgs'; export default ({ root, output }) => ({ + mode: 'development', entry: {}, output: { path: path.join(process.cwd(), root), @@ -44,7 +45,7 @@ export default ({ root, output }) => ({ include: [path.join(process.cwd(), root, 'huron-assets')], use: { loader: 'handlebars-loader', - options: { + query: { helperDirs: [path.join( __dirname, '../../', From 23eff04fa88036d3d4b1b4d3aa2383448140fe68 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Fri, 18 May 2018 17:04:46 -0700 Subject: [PATCH 04/24] Refactor function to work for build and watch tasks. --- dist/cli/index.js | 2 +- src/cli/generateConfig.js | 45 ++++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/dist/cli/index.js b/dist/cli/index.js index 1aa7996..3e22493 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function(e,t){const n=t.entry[e.entry],r=t;return r.entry={},u.default.production?r.entry[e.entry]=[o.default.join(p,e.root,"huron-assets/index")].concat(n):r.entry[e.entry]=[`webpack-dev-server/client/index.js?http://localhost:${e.port}/`,"webpack/hot/dev-server",o.default.join(p,e.root,"huron-assets/index")].concat(n),r}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function({entry:e,root:t,port:n},r){const s=r.entry[e],l=u.default.production?[]:[`webpack-dev-server/client/index.js?http://localhost:${n}/`,"webpack/hot/dev-server"];return Object.assign({},r,{entry:{[e]:Array.prototype.concat(l,o.default.join(p,t,"huron-assets/index"),s)}})}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/cli/generateConfig.js b/src/cli/generateConfig.js index 7649333..a54201b 100644 --- a/src/cli/generateConfig.js +++ b/src/cli/generateConfig.js @@ -75,29 +75,30 @@ export default function generateConfig() { /** * Configure and manage webpack entry points - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store + * @param {object} huron.entry Entry from huron config + * @param {string} huron.root Path to root + * @param {string} huron.port Port process is running on + * @param {object} config Webpack config object + * @return {object} Webpack config object with modified entries */ -function configureEntries(huron, config) { - const entry = config.entry[huron.entry]; - const newConfig = config; - - newConfig.entry = {}; - if (!program.production) { - newConfig.entry[huron.entry] = [ - `webpack-dev-server/client/index.js?http://localhost:${huron.port}/`, - 'webpack/hot/dev-server', - path.join(cwd, huron.root, 'huron-assets/index'), - ].concat(entry); - } else { - newConfig.entry[huron.entry] = [ - path.join(cwd, huron.root, 'huron-assets/index'), - ].concat(entry); - } - - return newConfig; +function configureEntries({ entry, root, port }, config) { + const originalEntry = config.entry[entry]; + const devServerEntries = program.production ? [] : [ + `webpack-dev-server/client/index.js?http://localhost:${port}/`, + 'webpack/hot/dev-server', + ]; + + return Object.assign({}, + config, + { + entry: { + [entry]: Array.prototype.concat( + devServerEntries, + path.join(cwd, root, 'huron-assets/index'), + originalEntry + ), + }, + }); } /** From 5bb5f38b4eb11dc4e55821020d3a14a773034276 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Fri, 18 May 2018 17:10:22 -0700 Subject: [PATCH 05/24] Remove unnecessary eslint disables. --- src/cli/actions.js | 2 +- src/cli/utils.js | 1 - src/web/index.js | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cli/actions.js b/src/cli/actions.js index df3a183..d5b321c 100644 --- a/src/cli/actions.js +++ b/src/cli/actions.js @@ -173,7 +173,7 @@ export function deleteFile(filepath, store) { break; default: - console.warn( // eslint-disable-line no-console + console.warn( chalk.red(`Could not delete: ${file.name}`)); break; } diff --git a/src/cli/utils.js b/src/cli/utils.js index 98b49d1..1f317e6 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -55,7 +55,6 @@ export function writeSectionData(store, section, sectionPath = false) { ); } - // eslint-disable-next-line no-console console.warn(chalk.red(`Failed to write data for ${section.referenceURI}`)); return false; } diff --git a/src/web/index.js b/src/web/index.js index 010afaf..5f86d3a 100644 --- a/src/web/index.js +++ b/src/web/index.js @@ -97,7 +97,7 @@ export default class InsertNodes { return Boolean(match.length) === filter.include; } - console.log(` // eslint-disable-line no-console + console.log(` filter ${filter} is not in a valid format. module filters must include 'property', 'values', and 'include' properties `); @@ -307,7 +307,7 @@ export default class InsertNodes { } } - console.warn( // eslint-disable-line no-console + console.warn( `Module '${key}' does not exist on the page or is no longer in use` ); @@ -724,7 +724,7 @@ export default class InsertNodes { }); } } else { - console.warn( // eslint-disable-line no-console + console.warn( `Could not render module section: ${meta.id} type: ${meta.type}` From e60f845354c78aa365c50e85eac05aaa514481b4 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Fri, 18 May 2018 17:10:48 -0700 Subject: [PATCH 06/24] Bump package version to 3.0 Breaking change with earlier versions of webpack. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4f555db..f1e8ca6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "huron", "description": "An in-browser prototyping tool built on top of webpack and kss-node", "author": "Alley Interactive", - "version": "2.3.4", + "version": "3.0", "license": "GPL-2.0", "repository": { "type": "git", From dcf332ae2cdb2651600c3846afb5eaec2ba39ae5 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Fri, 18 May 2018 17:30:44 -0700 Subject: [PATCH 07/24] Fix semantic versioning. --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac2c957..cbba68b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "huron", - "version": "2.3.4", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f1e8ca6..8685a2d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "huron", "description": "An in-browser prototyping tool built on top of webpack and kss-node", "author": "Alley Interactive", - "version": "3.0", + "version": "3.0.0", "license": "GPL-2.0", "repository": { "type": "git", From 3ac65b4364487a799096ea19d03a046ff867a5af Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:16:47 -0400 Subject: [PATCH 08/24] Add travis.yml --- travis.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 travis.yml diff --git a/travis.yml b/travis.yml new file mode 100644 index 0000000..251a8c6 --- /dev/null +++ b/travis.yml @@ -0,0 +1,39 @@ +sudo: false +dist: trusty +language: node_js + +node_js: + - 8 + +env: + global: + - NODE_ENV=production + - REACT_APP_WPAPI_ROOT=https://api.onbeing.org/wp-json + +branches: + only: + - master + - beta + +notifications: + email: false + +# Ensure node and npm major version matches from package.json +before_install: + - nvm install "$(jq -r '.engines.node' package.json | egrep -oe "[0-9]+" | head -n1)" + - npm i -g npm@$(jq -r '.engines.npm' package.json | egrep -oe "[0-9]+" | head -n1) + +install: + - npm ci + +cache: + directories: + - "$HOME/.npm" + +script: + - npm run test + - npm run start & + - sleep 10 # Give server enough time to spin up + +# Disabling sanity test curl test until REACT_APP_WPAPI_ROOT is ready +# - curl -s --fail "http://localhost:3001" > /dev/null \ No newline at end of file From 29c52813f98fc61ad10d1454c01e9f9bf06fa422 Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:18:09 -0400 Subject: [PATCH 09/24] Woops, rename to `.travis.yml`! --- travis.yml => .travis.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename travis.yml => .travis.yml (100%) diff --git a/travis.yml b/.travis.yml similarity index 100% rename from travis.yml rename to .travis.yml From 93cb4ff0e63015d827e8ad6dacacda2cb41965b3 Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:25:50 -0400 Subject: [PATCH 10/24] Fix html-webpack-plugin reference --- .travis.yml | 3 +-- package-lock.json | 12 +++++++++--- package.json | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 251a8c6..b03e5c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,8 +31,7 @@ cache: - "$HOME/.npm" script: - - npm run test - - npm run start & + - npm run build - sleep 10 # Give server enough time to spin up # Disabling sanity test curl test until REACT_APP_WPAPI_ROOT is ready diff --git a/package-lock.json b/package-lock.json index cbba68b..0d1b939 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,6 +46,11 @@ "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true }, + "@types/tapable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz", + "integrity": "sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ==" + }, "@webassemblyjs/ast": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", @@ -6442,12 +6447,13 @@ } }, "html-webpack-plugin": { - "version": "github:jantimon/html-webpack-plugin#b6df42c7eaacc72bf519e4c084cd747c38df0881", - "from": "github:jantimon/html-webpack-plugin#webpack-4", + "version": "git+ssh://git@github.com/jantimon/html-webpack-plugin.git#8e4e32463891439d543f79543b53ddd73307c983", + "from": "git+ssh://git@github.com/jantimon/html-webpack-plugin.git#webpack-4", "requires": { + "@types/tapable": "1.0.2", "html-minifier": "^3.2.3", "loader-utils": "^1.1.0", - "lodash": "^4.17.3", + "lodash": "^4.17.10", "pretty-error": "^2.0.2", "tapable": "^1.0.0", "util.promisify": "1.0.0" diff --git a/package.json b/package.json index 8685a2d..257e68c 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "handlebars": "^4.0.11", "handlebars-loader": "^1.7.0", "html-loader": "^0.5.5", - "html-webpack-plugin": "jantimon/html-webpack-plugin#webpack-4", + "html-webpack-plugin": "git@github.com:jantimon/html-webpack-plugin.git#webpack-4", "immutable": "^3.8.2", "json-loader": "^0.5.7", "kss": "^3.0.0-beta.20", From acf20dd762f9d752fa3cb0af3b923ad8df984d76 Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:29:20 -0400 Subject: [PATCH 11/24] Reinstall html-webpack-plugin --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d1b939..0c59e85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6447,8 +6447,8 @@ } }, "html-webpack-plugin": { - "version": "git+ssh://git@github.com/jantimon/html-webpack-plugin.git#8e4e32463891439d543f79543b53ddd73307c983", - "from": "git+ssh://git@github.com/jantimon/html-webpack-plugin.git#webpack-4", + "version": "github:jantimon/html-webpack-plugin#8e4e32463891439d543f79543b53ddd73307c983", + "from": "github:jantimon/html-webpack-plugin#webpack-4", "requires": { "@types/tapable": "1.0.2", "html-minifier": "^3.2.3", diff --git a/package.json b/package.json index 257e68c..e47f2dd 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "handlebars": "^4.0.11", "handlebars-loader": "^1.7.0", "html-loader": "^0.5.5", - "html-webpack-plugin": "git@github.com:jantimon/html-webpack-plugin.git#webpack-4", + "html-webpack-plugin": "github:jantimon/html-webpack-plugin#webpack-4", "immutable": "^3.8.2", "json-loader": "^0.5.7", "kss": "^3.0.0-beta.20", From 2a49309fc71e220a18905ab7aff4f62949367d0c Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:39:21 -0400 Subject: [PATCH 12/24] Move webpack-cli into dependencies (not devDependencies) --- .travis.yml | 1 - package-lock.json | 605 +++++++++++----------------------------------- package.json | 2 +- 3 files changed, 139 insertions(+), 469 deletions(-) diff --git a/.travis.yml b/.travis.yml index b03e5c7..2e314e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,6 @@ node_js: env: global: - NODE_ENV=production - - REACT_APP_WPAPI_ROOT=https://api.onbeing.org/wp-json branches: only: diff --git a/package-lock.json b/package-lock.json index 0c59e85..1836f7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, "requires": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" @@ -37,14 +36,12 @@ "@nodelib/fs.stat": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.0.2.tgz", - "integrity": "sha512-vCpf75JDcdomXvUd7Rn6DfYAVqPAFI66FVjxiWGwh85OLdvfo3paBoPJaam5keIYRyUolnS7SleS/ZPCidCvzw==", - "dev": true + "integrity": "sha512-vCpf75JDcdomXvUd7Rn6DfYAVqPAFI66FVjxiWGwh85OLdvfo3paBoPJaam5keIYRyUolnS7SleS/ZPCidCvzw==" }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "dev": true + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" }, "@types/tapable": { "version": "1.0.2", @@ -359,8 +356,7 @@ "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-html": { "version": "0.0.7", @@ -383,8 +379,7 @@ "any-observable": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", - "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", - "dev": true + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=" }, "anymatch": { "version": "1.3.2", @@ -457,8 +452,7 @@ "array-differ": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, "array-equal": { "version": "1.0.0", @@ -506,8 +500,7 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asap": { "version": "2.0.6", @@ -748,7 +741,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", @@ -759,7 +751,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, "requires": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", @@ -770,7 +761,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -782,7 +772,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", @@ -794,7 +783,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", @@ -805,7 +793,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true, "requires": { "babel-helper-bindify-decorators": "^6.24.1", "babel-runtime": "^6.22.0", @@ -817,7 +804,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, "requires": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", @@ -830,7 +816,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -840,7 +825,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -850,7 +834,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -860,7 +843,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", @@ -871,7 +853,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -884,7 +865,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, "requires": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", @@ -978,7 +958,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1036,74 +1015,62 @@ "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, "babel-plugin-syntax-async-generators": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" }, "babel-plugin-syntax-class-constructor-call": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", - "dev": true + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=" }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" }, "babel-plugin-syntax-decorators": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" }, "babel-plugin-syntax-export-extensions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", - "dev": true + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=" }, "babel-plugin-syntax-flow": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, "babel-plugin-transform-async-generator-functions": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true, "requires": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-generators": "^6.5.0", @@ -1114,7 +1081,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, "requires": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", @@ -1125,7 +1091,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", - "dev": true, "requires": { "babel-plugin-syntax-class-constructor-call": "^6.18.0", "babel-runtime": "^6.22.0", @@ -1136,7 +1101,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-plugin-syntax-class-properties": "^6.8.0", @@ -1148,7 +1112,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true, "requires": { "babel-helper-explode-class": "^6.24.1", "babel-plugin-syntax-decorators": "^6.13.0", @@ -1161,7 +1124,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1170,7 +1132,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1179,7 +1140,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", @@ -1192,7 +1152,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, "requires": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", @@ -1209,7 +1168,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" @@ -1219,7 +1177,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1228,7 +1185,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1238,7 +1194,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1247,7 +1202,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1258,7 +1212,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1267,7 +1220,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1278,7 +1230,6 @@ "version": "6.26.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", @@ -1290,7 +1241,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1301,7 +1251,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1312,7 +1261,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, "requires": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" @@ -1322,7 +1270,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, "requires": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", @@ -1336,7 +1283,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1346,7 +1292,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1355,7 +1300,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1366,7 +1310,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1375,7 +1318,6 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } @@ -1384,7 +1326,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", @@ -1395,7 +1336,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, "requires": { "regenerate": "^1.2.1", "regjsgen": "^0.2.0", @@ -1408,7 +1348,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", "babel-plugin-syntax-exponentiation-operator": "^6.8.0", @@ -1419,7 +1358,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "dev": true, "requires": { "babel-plugin-syntax-export-extensions": "^6.8.0", "babel-runtime": "^6.22.0" @@ -1429,7 +1367,6 @@ "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, "requires": { "babel-plugin-syntax-flow": "^6.18.0", "babel-runtime": "^6.22.0" @@ -1439,7 +1376,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "^6.8.0", "babel-runtime": "^6.26.0" @@ -1449,7 +1385,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, "requires": { "regenerator-transform": "^0.10.0" } @@ -1458,7 +1393,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" @@ -1543,7 +1477,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", @@ -1585,7 +1518,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", - "dev": true, "requires": { "babel-plugin-transform-class-constructor-call": "^6.24.1", "babel-plugin-transform-export-extensions": "^6.22.0", @@ -1596,7 +1528,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true, "requires": { "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-class-properties": "^6.24.1", @@ -1608,7 +1539,6 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, "requires": { "babel-plugin-syntax-trailing-function-commas": "^6.22.0", "babel-plugin-transform-async-generator-functions": "^6.24.1", @@ -1843,8 +1773,7 @@ "binaryextensions": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", - "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==", - "dev": true + "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==" }, "bluebird": { "version": "3.5.1", @@ -2132,7 +2061,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "dev": true, "requires": { "clone-response": "1.0.2", "get-stream": "3.0.0", @@ -2146,14 +2074,12 @@ "lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "normalize-url": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, "requires": { "prepend-http": "^2.0.0", "query-string": "^5.0.1", @@ -2163,14 +2089,12 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, "requires": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", @@ -2181,7 +2105,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, "requires": { "is-plain-obj": "^1.0.0" } @@ -2191,8 +2114,7 @@ "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "caller-path": { "version": "0.1.0", @@ -2309,8 +2231,7 @@ "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" }, "chokidar": { "version": "1.7.0", @@ -2439,7 +2360,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "^2.0.0" } @@ -2447,14 +2367,12 @@ "cli-spinners": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", - "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", - "dev": true + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=" }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, "requires": { "colors": "1.0.3" }, @@ -2462,8 +2380,7 @@ "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, @@ -2471,7 +2388,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", - "dev": true, "requires": { "slice-ansi": "0.0.4", "string-width": "^1.0.1" @@ -2480,16 +2396,14 @@ "slice-ansi": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" } } }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { "version": "2.1.0", @@ -2518,14 +2432,12 @@ "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -2533,14 +2445,12 @@ "clone-stats": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "cloneable-readable": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -2550,14 +2460,12 @@ "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==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2572,7 +2480,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -3158,8 +3065,7 @@ "dargs": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", - "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", - "dev": true + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=" }, "dashdash": { "version": "1.14.1", @@ -3194,8 +3100,7 @@ "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" }, "debug": { "version": "2.6.9", @@ -3219,7 +3124,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -3232,8 +3136,7 @@ "deep-extend": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" }, "deep-is": { "version": "0.1.3", @@ -3354,8 +3257,7 @@ "detect-conflict": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", - "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=", - "dev": true + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" }, "detect-indent": { "version": "4.0.0", @@ -3379,8 +3281,7 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" }, "diffie-hellman": { "version": "5.0.3", @@ -3396,7 +3297,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, "requires": { "arrify": "^1.0.1", "path-type": "^3.0.0" @@ -3406,7 +3306,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, "requires": { "pify": "^3.0.0" } @@ -3414,8 +3313,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -3529,8 +3427,7 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.6.0", @@ -3556,8 +3453,7 @@ "editions": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", - "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", - "dev": true + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==" }, "ee-first": { "version": "1.1.1", @@ -3567,8 +3463,7 @@ "ejs": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", - "dev": true + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==" }, "electron-to-chromium": { "version": "1.3.47", @@ -3578,8 +3473,7 @@ "elegant-spinner": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", - "dev": true + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=" }, "elliptic": { "version": "6.4.0", @@ -3646,8 +3540,7 @@ "envinfo": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-4.4.2.tgz", - "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ==", - "dev": true + "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ==" }, "errno": { "version": "0.1.4", @@ -3661,7 +3554,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "dev": true, "requires": { "string-template": "~0.2.1", "xtend": "~4.0.0" @@ -4255,8 +4147,7 @@ "exit-hook": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" }, "expand-brackets": { "version": "0.1.5", @@ -4278,7 +4169,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } @@ -4370,7 +4260,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, "requires": { "chardet": "^0.4.0", "iconv-lite": "^0.4.17", @@ -4432,7 +4321,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", - "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.0.1", @@ -4445,20 +4333,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -4476,7 +4361,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4487,7 +4371,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -4502,7 +4385,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -4511,7 +4393,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4520,7 +4401,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4529,7 +4409,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4540,7 +4419,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4549,7 +4427,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4560,7 +4437,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -4570,8 +4446,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -4579,7 +4454,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -4595,7 +4469,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -4604,7 +4477,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4615,7 +4487,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -4627,7 +4498,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4638,7 +4508,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -4648,7 +4517,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -4659,7 +4527,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4668,7 +4535,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4677,7 +4543,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4687,14 +4552,12 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -4703,7 +4566,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4712,7 +4574,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4722,20 +4583,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -4814,7 +4672,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } @@ -4894,7 +4751,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "dev": true, "requires": { "readable-stream": "^2.0.2" } @@ -4919,8 +4775,7 @@ "flow-parser": { "version": "0.72.0", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.72.0.tgz", - "integrity": "sha512-kFaDtviKlD/rHi6NRp42KTbnPgz/nKcWUJQhqDnLDeKA8uGcRVSy0YlQjaf9M3pFo5PgC3SNFnCPpQGLtHjH2w==", - "dev": true + "integrity": "sha512-kFaDtviKlD/rHi6NRp42KTbnPgz/nKcWUJQhqDnLDeKA8uGcRVSy0YlQjaf9M3pFo5PgC3SNFnCPpQGLtHjH2w==" }, "flush-write-stream": { "version": "1.0.3", @@ -5885,7 +5740,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", - "dev": true, "requires": { "got": "^7.0.0", "is-plain-obj": "^1.1.0" @@ -5895,7 +5749,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dev": true, "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -5916,14 +5769,12 @@ "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dev": true, "requires": { "p-finally": "^1.0.0" } @@ -5932,7 +5783,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, "requires": { "prepend-http": "^1.0.1" } @@ -5943,7 +5793,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", - "dev": true, "requires": { "gh-got": "^6.0.0" } @@ -5965,7 +5814,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", - "dev": true, "requires": { "glob": "^7.0.5", "yargs": "~1.2.6" @@ -5974,14 +5822,12 @@ "minimist": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", - "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", - "dev": true + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=" }, "yargs": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", - "dev": true, "requires": { "minimist": "^0.1.0" } @@ -6008,14 +5854,12 @@ "glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -6026,7 +5870,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -6068,7 +5911,6 @@ "version": "8.3.1", "resolved": "https://registry.npmjs.org/got/-/got-8.3.1.tgz", "integrity": "sha512-tiLX+bnYm5A56T5N/n9Xo89vMaO1mrS9qoDqj3u/anVooqGozvY/HbXzEpDfbNeKsHCBpK40gSbz8wGYSp3i1w==", - "dev": true, "requires": { "@sindresorhus/is": "^0.7.0", "cacheable-request": "^2.1.1", @@ -6092,8 +5934,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -6106,7 +5947,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", - "dev": true, "requires": { "lodash": "^4.17.2" } @@ -6206,8 +6046,7 @@ "has-color": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" }, "has-flag": { "version": "1.0.0", @@ -6217,8 +6056,7 @@ "has-symbol-support-x": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-symbols": { "version": "1.0.0", @@ -6229,7 +6067,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, "requires": { "has-symbol-support-x": "^1.4.1" } @@ -6352,7 +6189,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -6511,8 +6347,7 @@ "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==", - "dev": true + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, "http-deceiver": { "version": "1.2.7", @@ -6883,8 +6718,7 @@ "ignore": { "version": "3.3.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", - "dev": true + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==" }, "immutable": { "version": "3.8.2", @@ -6958,8 +6792,7 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { "version": "3.3.0", @@ -7068,14 +6901,12 @@ "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, "into-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "dev": true, "requires": { "from2": "^2.1.1", "p-is-promise": "^1.1.0" @@ -7251,14 +7082,12 @@ "is-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, "is-observable": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", - "dev": true, "requires": { "symbol-observable": "^0.2.2" }, @@ -7266,8 +7095,7 @@ "symbol-observable": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", - "dev": true + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=" } } }, @@ -7340,8 +7168,7 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-regex": { "version": "1.0.4", @@ -7360,14 +7187,12 @@ "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-scoped": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", - "dev": true, "requires": { "scoped-regex": "^1.0.0" } @@ -7419,8 +7244,7 @@ "isbinaryfile": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", - "dev": true + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=" }, "isexe": { "version": "2.0.0", @@ -7594,7 +7418,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", - "dev": true, "requires": { "binaryextensions": "2", "editions": "^1.3.3", @@ -7605,7 +7428,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, "requires": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -8216,7 +8038,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.5.0.tgz", "integrity": "sha512-JAcQINNMFpdzzpKJN8k5xXjF3XDuckB1/48uScSzcnNyK199iWEc9AxKL9OoX5144M2w5zEx9Qs4/E/eBZZUlw==", - "dev": true, "requires": { "babel-plugin-transform-flow-strip-types": "^6.8.0", "babel-preset-es2015": "^6.9.0", @@ -8238,26 +8059,22 @@ "ast-types": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", - "dev": true + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==" }, "babylon": { "version": "7.0.0-beta.47", "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==", - "dev": true + "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==" }, "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "recast": { "version": "0.14.7", "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", - "dev": true, "requires": { "ast-types": "0.11.3", "esprima": "~4.0.0", @@ -8268,14 +8085,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "write-file-atomic": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -8354,8 +8169,7 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-loader": { "version": "0.5.7", @@ -8365,8 +8179,7 @@ "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==", - "dev": true + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-schema": { "version": "0.2.3", @@ -8449,7 +8262,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -8637,7 +8449,6 @@ "version": "0.13.0", "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", - "dev": true, "requires": { "chalk": "^1.1.3", "cli-truncate": "^0.2.1", @@ -8661,14 +8472,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8681,7 +8490,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" @@ -8691,7 +8499,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, "requires": { "chalk": "^1.0.0" } @@ -8699,22 +8506,19 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "listr-silent-renderer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", - "dev": true + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=" }, "listr-update-renderer": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", - "dev": true, "requires": { "chalk": "^1.1.3", "cli-truncate": "^0.2.1", @@ -8729,14 +8533,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8749,7 +8551,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" @@ -8758,14 +8559,12 @@ "indent-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" }, "log-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, "requires": { "chalk": "^1.0.0" } @@ -8773,8 +8572,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -8782,7 +8580,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", - "dev": true, "requires": { "chalk": "^1.1.3", "cli-cursor": "^1.0.2", @@ -8793,14 +8590,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8813,7 +8608,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, "requires": { "restore-cursor": "^1.0.1" } @@ -8822,7 +8616,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" @@ -8831,14 +8624,12 @@ "onetime": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, "restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, "requires": { "exit-hook": "^1.0.0", "onetime": "^1.0.0" @@ -8847,8 +8638,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -8982,7 +8772,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", - "dev": true, "requires": { "ansi-escapes": "^1.0.0", "cli-cursor": "^1.0.2" @@ -8991,14 +8780,12 @@ "ansi-escapes": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "cli-cursor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, "requires": { "restore-cursor": "^1.0.1" } @@ -9006,14 +8793,12 @@ "onetime": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, "restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, "requires": { "exit-hook": "^1.0.0", "onetime": "^1.0.0" @@ -9070,8 +8855,7 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "macaddress": { "version": "0.2.8", @@ -9154,7 +8938,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", - "dev": true, "requires": { "through2": "^2.0.0", "vinyl": "^1.1.0", @@ -9165,7 +8948,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-4.0.2.tgz", "integrity": "sha512-QHvdXLLNmwJXxKdf7x27aNUren6IoPxwcM8Sfd+S6/ddQQMcYdEtVKsh6ilpqMrU18VQuKZEaH0aCGt3JDbA0g==", - "dev": true, "requires": { "commondir": "^1.0.1", "deep-extend": "^0.5.1", @@ -9183,20 +8965,17 @@ "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "globby": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, "requires": { "array-union": "^1.0.1", "dir-glob": "^2.0.0", @@ -9210,20 +8989,17 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "vinyl": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", - "dev": true, "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -9291,8 +9067,7 @@ "merge2": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", - "dev": true + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" }, "methods": { "version": "1.1.2", @@ -9354,8 +9129,7 @@ "mimic-response": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", - "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", - "dev": true + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" }, "minimalistic-assert": { "version": "1.0.0", @@ -9466,7 +9240,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, "requires": { "array-differ": "^1.0.0", "array-union": "^1.0.1", @@ -9477,8 +9250,7 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nan": { "version": "2.7.0", @@ -9546,8 +9318,7 @@ "nice-try": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", - "dev": true + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==" }, "no-case": { "version": "2.3.2", @@ -9560,8 +9331,7 @@ "node-dir": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz", - "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=", - "dev": true + "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=" }, "node-fetch": { "version": "1.7.3", @@ -9659,7 +9429,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "dev": true, "requires": { "chalk": "~0.4.0", "underscore": "~1.6.0" @@ -9668,14 +9437,12 @@ "ansi-styles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" }, "chalk": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, "requires": { "ansi-styles": "~1.0.0", "has-color": "~0.1.0", @@ -9685,14 +9452,12 @@ "strip-ansi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" }, "underscore": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, @@ -9942,7 +9707,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -9990,7 +9754,6 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", - "dev": true, "requires": { "chalk": "^1.1.1", "cli-cursor": "^1.0.2", @@ -10001,14 +9764,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -10021,7 +9782,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, "requires": { "restore-cursor": "^1.0.1" } @@ -10029,14 +9789,12 @@ "onetime": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, "restore-cursor": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, "requires": { "exit-hook": "^1.0.0", "onetime": "^1.0.0" @@ -10045,8 +9803,7 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -10095,14 +9852,12 @@ "p-cancelable": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" }, "p-each-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "dev": true, "requires": { "p-reduce": "^1.0.0" } @@ -10115,14 +9870,12 @@ "p-is-promise": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" }, "p-lazy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", - "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=", - "dev": true + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=" }, "p-limit": { "version": "1.1.0", @@ -10145,14 +9898,12 @@ "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dev": true, "requires": { "p-finally": "^1.0.0" } @@ -10243,8 +9994,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "parse5": { "version": "4.0.0", @@ -10815,14 +10565,12 @@ "prettier": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", - "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", - "dev": true + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=" }, "pretty-bytes": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, "pretty-error": { "version": "2.1.1", @@ -11074,7 +10822,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", - "dev": true, "requires": { "pify": "^3.0.0", "safe-buffer": "^5.1.1" @@ -11083,8 +10830,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, @@ -11162,7 +10908,6 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, "requires": { "resolve": "^1.1.6" } @@ -11209,7 +10954,6 @@ "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, "requires": { "babel-runtime": "^6.18.0", "babel-types": "^6.19.0", @@ -11312,8 +11056,7 @@ "replace-ext": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "request": { "version": "2.86.0", @@ -11409,8 +11152,7 @@ "resolve": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" }, "resolve-cwd": { "version": "2.0.0", @@ -11431,7 +11173,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -11452,7 +11193,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -11461,7 +11201,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -11508,7 +11247,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, "requires": { "is-promise": "^2.1.0" } @@ -11545,7 +11283,6 @@ "version": "5.5.10", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", - "dev": true, "requires": { "symbol-observable": "1.0.1" } @@ -12448,8 +12185,7 @@ "scoped-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", - "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=", - "dev": true + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "select-hose": { "version": "2.0.0", @@ -12586,7 +12322,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", - "dev": true, "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -12629,8 +12364,7 @@ "slide": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, "slugg": { "version": "1.2.1", @@ -13038,7 +12772,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", - "dev": true, "requires": { "any-observable": "^0.2.0" } @@ -13078,8 +12811,7 @@ "string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { "version": "1.0.2", @@ -13116,7 +12848,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "dev": true, "requires": { "first-chunk-stream": "^2.0.0", "strip-bom": "^2.0.0" @@ -13194,8 +12925,7 @@ "symbol-observable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" }, "symbol-tree": { "version": "3.2.2", @@ -13300,7 +13030,6 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "dev": true, "requires": { "os-tmpdir": "^1.0.0", "rimraf": "~2.2.6" @@ -13309,8 +13038,7 @@ "rimraf": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" } } }, @@ -13606,14 +13334,12 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", - "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==", - "dev": true + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==" }, "throat": { "version": "4.1.0", @@ -13672,8 +13398,7 @@ "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { "version": "2.0.10", @@ -13687,7 +13412,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } @@ -14112,10 +13836,9 @@ } }, "untildify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", - "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=", - "dev": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" }, "upath": { "version": "1.1.0", @@ -14181,7 +13904,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" }, @@ -14189,16 +13911,14 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" } } }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { "version": "3.1.0", @@ -14268,8 +13988,7 @@ "v8-compile-cache": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", - "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", - "dev": true + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" }, "v8flags": { "version": "2.1.1", @@ -14314,7 +14033,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, "requires": { "clone": "^1.0.0", "clone-stats": "^0.0.1", @@ -14325,7 +14043,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.3.0", @@ -15047,7 +14764,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", - "dev": true, "requires": { "jscodeshift": "^0.4.0" }, @@ -15055,20 +14771,17 @@ "ast-types": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", - "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==", - "dev": true + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==" }, "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "jscodeshift": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz", "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==", - "dev": true, "requires": { "async": "^1.5.0", "babel-plugin-transform-flow-strip-types": "^6.8.0", @@ -15091,7 +14804,6 @@ "version": "0.12.9", "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", - "dev": true, "requires": { "ast-types": "0.10.1", "core-js": "^2.4.1", @@ -15103,14 +14815,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "write-file-atomic": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -15123,7 +14833,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.1.3.tgz", "integrity": "sha512-5AsKoL/Ccn8iTrwk3uErdyhetGH+c7VRQ7Itim2GL0IhBRq5rtojVDk00buMRmFmBpw1RvHXq97Gup965LbozA==", - "dev": true, "requires": { "chalk": "^2.3.2", "cross-spawn": "^6.0.5", @@ -15156,14 +14865,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -15174,7 +14881,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -15187,7 +14893,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -15196,7 +14901,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", - "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", @@ -15216,14 +14920,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -15234,7 +14936,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -15244,14 +14945,12 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -15261,7 +14960,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -15270,7 +14968,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -16008,7 +15705,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.1.1.tgz", "integrity": "sha512-IBLwCUrJrDxBYuwdYm1wuF3O/CR2LpXR0rFS684QOrU6x69DPPrsdd20dZOFaedZ/M9sON7po73WhO3I1CbgNQ==", - "dev": true, "requires": { "chalk": "^2.1.0", "cross-spawn": "^6.0.5", @@ -16030,14 +15726,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -16050,7 +15744,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -16059,7 +15752,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, "requires": { "array-union": "^1.0.1", "dir-glob": "^2.0.0", @@ -16074,7 +15766,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", - "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", @@ -16094,26 +15785,22 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -16123,7 +15810,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -16134,7 +15820,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.5.tgz", "integrity": "sha512-rV6tJ8oYzm4mmdF2T3wjY+Q42jKF2YiiD0VKfJ8/0ZYwmhCKC9Xs2346HVLPj/xE13i68psnFJv7iS6gWRkeAg==", - "dev": true, "requires": { "async": "^2.6.0", "chalk": "^2.3.0", @@ -16164,19 +15849,17 @@ }, "dependencies": { "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "^4.14.0" + "lodash": "^4.17.10" } }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -16189,7 +15872,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -16198,7 +15880,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -16207,7 +15888,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -16219,7 +15899,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, "requires": { "pify": "^3.0.0" } @@ -16227,14 +15906,12 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -16244,7 +15921,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, "requires": { "pify": "^3.0.0" } @@ -16252,14 +15928,12 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -16270,7 +15944,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -16279,14 +15952,12 @@ "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } } diff --git a/package.json b/package.json index e47f2dd..4f97d3b 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "opn": "^5.3.0", "style-loader": "^0.21.0", "webpack": "^4.8.3", + "webpack-cli": "^2.1.3", "webpack-dev-server": "^3.1.4" }, "devDependencies": { @@ -73,7 +74,6 @@ "mock-fs": "^4.5.0", "raw-loader": "^0.5.1", "regenerator-runtime": "^0.11.1", - "webpack-cli": "^2.1.3", "webpack-node-externals": "^1.7.2" } } From 644ba94b165c5fa31b8cb9518a3b278a62bf123b Mon Sep 17 00:00:00 2001 From: Owen Stowe Date: Mon, 21 May 2018 13:45:28 -0400 Subject: [PATCH 13/24] Move everything into dependencies for travis' sake --- package-lock.json | 760 ++++++++++------------------------------------ package.json | 12 +- 2 files changed, 159 insertions(+), 613 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1836f7e..502f6ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "version": "7.0.0-beta.47", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz", "integrity": "sha512-W7IeG4MoVf4oUvWfHUx9VG9if3E0xSUDf1urrnNYtC2ow1dz2ptvQ6YsJfyVXDuPTFXz66jkHhzMW7a5Eld7TA==", - "dev": true, "requires": { "@babel/highlight": "7.0.0-beta.47" } @@ -17,7 +16,6 @@ "version": "7.0.0-beta.47", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.47.tgz", "integrity": "sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg==", - "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -249,8 +247,7 @@ "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" }, "accepts": { "version": "1.3.5", @@ -293,7 +290,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", - "dev": true, "requires": { "acorn": "^5.0.0" } @@ -302,7 +298,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, "requires": { "acorn": "^3.0.4" }, @@ -310,8 +305,7 @@ "acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" } } }, @@ -319,7 +313,6 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, "requires": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", @@ -330,8 +323,7 @@ "ajv-keywords": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" }, "align-text": { "version": "0.1.4", @@ -395,7 +387,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "dev": true, "requires": { "default-require-extensions": "^1.0.0" } @@ -417,7 +408,6 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz", "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=", - "dev": true, "requires": { "ast-types-flow": "0.0.7", "commander": "^2.11.0" @@ -426,8 +416,7 @@ "commander": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" } } }, @@ -457,8 +446,7 @@ "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" }, "array-find-index": { "version": "1.0.2", @@ -510,8 +498,7 @@ "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "asn1.js": { "version": "4.10.1", @@ -534,8 +521,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -550,14 +536,12 @@ "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, "async": { "version": "1.5.2", @@ -572,14 +556,12 @@ "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.1", @@ -602,20 +584,17 @@ "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=", - "dev": true + "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==", - "dev": true + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "axobject-query": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=", - "dev": true, "requires": { "ast-types-flow": "0.0.7" } @@ -624,7 +603,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, "requires": { "babel-core": "^6.26.0", "babel-polyfill": "^6.26.0", @@ -887,7 +865,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.3.tgz", "integrity": "sha512-BgSjmtl3mW3i+VeVHEr9d2zFSAT66G++pJcHQiUjd00pkW+voYXFctIm/indcqOWWXw5a1nUpR1XWszD9fJ1qg==", - "dev": true, "requires": { "babel-plugin-istanbul": "^4.1.5", "babel-preset-jest": "^22.4.3" @@ -897,7 +874,6 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", - "dev": true, "requires": { "find-cache-dir": "^1.0.0", "loader-utils": "^1.0.2", @@ -908,7 +884,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^1.0.0", @@ -919,7 +894,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -928,7 +902,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -939,7 +912,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, "requires": { "find-up": "^2.1.0" } @@ -966,7 +938,6 @@ "version": "4.1.6", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", - "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "^6.13.0", "find-up": "^2.1.0", @@ -978,7 +949,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -986,14 +956,12 @@ "istanbul-lib-coverage": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-instrument": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, "requires": { "babel-generator": "^6.18.0", "babel-template": "^6.16.0", @@ -1009,8 +977,7 @@ "babel-plugin-jest-hoist": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz", - "integrity": "sha512-zhvv4f6OTWy2bYevcJftwGCWXMFe7pqoz41IhMi4xna7xNsX5NygdagsrE0y6kkfuXq8UalwvPwKTyAxME2E/g==", - "dev": true + "integrity": "sha512-zhvv4f6OTWy2bYevcJftwGCWXMFe7pqoz41IhMi4xna7xNsX5NygdagsrE0y6kkfuXq8UalwvPwKTyAxME2E/g==" }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", @@ -1402,7 +1369,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", @@ -1412,8 +1378,7 @@ "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" } } }, @@ -1421,7 +1386,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", @@ -1459,7 +1423,6 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz", "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30000835", "electron-to-chromium": "^1.3.45" @@ -1468,8 +1431,7 @@ "electron-to-chromium": { "version": "1.3.47", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz", - "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=", - "dev": true + "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=" } } }, @@ -1508,7 +1470,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz", "integrity": "sha512-a+M3LTEXTq3gxv0uBN9Qm6ahUl7a8pj923nFbCUdqFUSsf3YrX8Uc+C3MEwji5Af3LiQjSC7w4ooYewlz8HRTA==", - "dev": true, "requires": { "babel-plugin-jest-hoist": "^22.4.3", "babel-plugin-syntax-object-rest-spread": "^6.13.0" @@ -1754,7 +1715,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, "optional": true, "requires": { "tweetnacl": "^0.14.3" @@ -1824,7 +1784,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, "requires": { "hoek": "4.x.x" } @@ -1863,14 +1822,12 @@ "browser-process-hrtime": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", - "dev": true + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" }, "browser-resolve": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, "requires": { "resolve": "1.1.7" } @@ -1952,7 +1909,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "dev": true, "requires": { "node-int64": "^0.4.0" } @@ -1970,8 +1926,7 @@ "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==", - "dev": true + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" }, "buffer-indexof": { "version": "1.1.1", @@ -2120,7 +2075,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, "requires": { "callsites": "^0.2.0" } @@ -2128,8 +2082,7 @@ "callsites": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camel-case": { "version": "3.0.0", @@ -2181,14 +2134,12 @@ "caniuse-lite": { "version": "1.0.30000842", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000842.tgz", - "integrity": "sha512-juspQHLwQRgptEM03HN66SpM/ggZUB+m49NAgJIaIS11aXVNeRB57sEY1X6tEzeK2THGvYWKZZu1wIbh+W7YTA==", - "dev": true + "integrity": "sha512-juspQHLwQRgptEM03HN66SpM/ggZUB+m49NAgJIaIS11aXVNeRB57sEY1X6tEzeK2THGvYWKZZu1wIbh+W7YTA==" }, "capture-exit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", - "dev": true, "requires": { "rsvp": "^3.3.3" } @@ -2196,14 +2147,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "catharsis": { "version": "0.8.9", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", - "dev": true, "requires": { "underscore-contrib": "~0.3.0" } @@ -2263,8 +2212,7 @@ "ci-info": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==" }, "cipher-base": { "version": "1.0.4", @@ -2278,8 +2226,7 @@ "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" }, "clap": { "version": "1.2.3", @@ -2351,7 +2298,6 @@ "version": "0.1.19", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz", "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==", - "dev": true, "requires": { "rimraf": "^2.6.1" } @@ -2489,8 +2435,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "coa": { "version": "1.0.4", @@ -2564,7 +2509,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -2582,8 +2526,7 @@ "compare-versions": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.2.1.tgz", - "integrity": "sha512-2y2nHcopMG/NAyk6vWXlLs86XeM9sik4jmx1tKIgzMi9/RQ2eo758RGpxQO3ErihHmg0RlQITPqgz73y6s7quA==", - "dev": true + "integrity": "sha512-2y2nHcopMG/NAyk6vWXlLs86XeM9sik4jmx1tKIgzMi9/RQ2eo758RGpxQO3ErihHmg0RlQITPqgz73y6s7quA==" }, "component-emitter": { "version": "1.2.1", @@ -2754,8 +2697,7 @@ "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" }, "content-disposition": { "version": "0.5.2", @@ -2869,7 +2811,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dev": true, "requires": { "boom": "5.x.x" }, @@ -2878,7 +2819,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, "requires": { "hoek": "4.x.x" } @@ -3023,14 +2963,12 @@ "cssom": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "dev": true + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=" }, "cssstyle": { "version": "0.2.37", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, "requires": { "cssom": "0.3.x" } @@ -3059,8 +2997,7 @@ "damerau-levenshtein": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", - "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", - "dev": true + "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=" }, "dargs": { "version": "5.1.0", @@ -3071,7 +3008,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -3080,7 +3016,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz", "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==", - "dev": true, "requires": { "abab": "^1.0.4", "whatwg-mimetype": "^2.0.0", @@ -3141,14 +3076,12 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "default-require-extensions": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "dev": true, "requires": { "strip-bom": "^2.0.0" } @@ -3218,7 +3151,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, "requires": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", @@ -3232,8 +3164,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "1.1.2", @@ -3270,8 +3201,7 @@ "detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" }, "detect-node": { "version": "2.0.3", @@ -3343,7 +3273,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, "requires": { "esutils": "^2.0.2", "isarray": "^1.0.0" @@ -3402,7 +3331,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, "requires": { "webidl-conversions": "^4.0.2" } @@ -3444,7 +3372,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, "optional": true, "requires": { "jsbn": "~0.1.0" @@ -3492,8 +3419,7 @@ "emoji-regex": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", - "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", - "dev": true + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" }, "emojis-list": { "version": "2.1.0", @@ -3509,7 +3435,6 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, "requires": { "iconv-lite": "~0.4.13" } @@ -3641,7 +3566,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "dev": true, "requires": { "esprima": "^3.1.3", "estraverse": "^4.2.0", @@ -3653,14 +3577,12 @@ "esprima": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true } } @@ -3669,7 +3591,6 @@ "version": "4.19.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, "requires": { "ajv": "^5.3.0", "babel-code-frame": "^6.22.0", @@ -3714,14 +3635,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "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==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -3730,7 +3649,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3741,7 +3659,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3750,7 +3667,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -3758,26 +3674,22 @@ "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "globals": { "version": "11.5.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", - "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", - "dev": true + "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "js-yaml": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -3787,7 +3699,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -3796,7 +3707,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -3807,7 +3717,6 @@ "version": "16.1.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz", "integrity": "sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw==", - "dev": true, "requires": { "eslint-config-airbnb-base": "^12.1.0" } @@ -3816,7 +3725,6 @@ "version": "12.1.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", - "dev": true, "requires": { "eslint-restricted-globals": "^0.1.1" } @@ -3825,7 +3733,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "dev": true, "requires": { "debug": "^2.6.9", "resolve": "^1.5.0" @@ -3835,7 +3742,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, "requires": { "path-parse": "^1.0.5" } @@ -3846,7 +3752,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.0.0.tgz", "integrity": "sha512-VxxGDI4bXzLk0+/jMt/0EkGMRKS9ox6Czx+yapMb9WJmcS/ZHhlhqcVUNgUjFBNp02j/2pZLdGOrG7EXyjoz/g==", - "dev": true, "requires": { "loader-fs-cache": "^1.0.0", "loader-utils": "^1.0.2", @@ -3859,7 +3764,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -3872,7 +3776,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "dev": true, "requires": { "debug": "^2.6.8", "pkg-dir": "^1.0.0" @@ -3882,7 +3785,6 @@ "version": "2.12.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz", "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=", - "dev": true, "requires": { "contains-path": "^0.1.0", "debug": "^2.6.8", @@ -3900,7 +3802,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -3909,7 +3810,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -3921,7 +3821,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, "requires": { "pify": "^2.0.0" } @@ -3930,7 +3829,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, "requires": { "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", @@ -3941,7 +3839,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" @@ -3951,7 +3848,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, "requires": { "path-parse": "^1.0.5" } @@ -3959,22 +3855,19 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } }, "eslint-plugin-jest": { "version": "21.15.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.15.1.tgz", - "integrity": "sha512-Op9AFHQXFXD0pWubu2v7K7NydSEBopIYVyZM2CxbiIoVXMa6AnqJt+v+HkBxbwS5aYvPQYoHthZO18A4QVeF1Q==", - "dev": true + "integrity": "sha512-Op9AFHQXFXD0pWubu2v7K7NydSEBopIYVyZM2CxbiIoVXMa6AnqJt+v+HkBxbwS5aYvPQYoHthZO18A4QVeF1Q==" }, "eslint-plugin-jsx-a11y": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz", "integrity": "sha1-VFg9GuRCSDFi4EDhPMMYZUZRAOU=", - "dev": true, "requires": { "aria-query": "^0.7.0", "array-includes": "^3.0.3", @@ -3989,7 +3882,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", - "dev": true, "requires": { "array-includes": "^3.0.3" } @@ -4000,7 +3892,6 @@ "version": "7.8.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.8.2.tgz", "integrity": "sha512-H3ne8ob4Bn6NXSN9N9twsn7t8dyHT5bF/ibQepxIHi6JiPIdC2gXlfYvZYucbdrWio4FxBq7Z4mSauQP+qmMkQ==", - "dev": true, "requires": { "doctrine": "^2.0.2", "has": "^1.0.1", @@ -4012,7 +3903,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -4022,8 +3912,7 @@ "eslint-restricted-globals": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", - "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", - "dev": true + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=" }, "eslint-scope": { "version": "3.7.1", @@ -4037,14 +3926,12 @@ "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" }, "espree": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, "requires": { "acorn": "^5.5.0", "acorn-jsx": "^3.0.0" @@ -4059,7 +3946,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, "requires": { "estraverse": "^4.0.0" } @@ -4119,7 +4005,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", - "dev": true, "requires": { "merge": "^1.1.3" } @@ -4141,8 +4026,7 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" }, "exit-hook": { "version": "1.1.1", @@ -4177,7 +4061,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", - "dev": true, "requires": { "ansi-styles": "^3.2.0", "jest-diff": "^22.4.3", @@ -4234,8 +4117,7 @@ "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "extend-shallow": { "version": "3.0.2", @@ -4308,14 +4190,12 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "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=", - "dev": true + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-glob": { "version": "2.2.2", @@ -4620,8 +4500,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastparse": { "version": "1.1.1", @@ -4640,7 +4519,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "dev": true, "requires": { "bser": "^2.0.0" } @@ -4649,7 +4527,6 @@ "version": "0.8.16", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", - "dev": true, "requires": { "core-js": "^1.0.0", "isomorphic-fetch": "^2.1.1", @@ -4663,8 +4540,7 @@ "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" } } }, @@ -4680,7 +4556,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, "requires": { "flat-cache": "^1.2.1", "object-assign": "^4.0.1" @@ -4695,7 +4570,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, "requires": { "glob": "^7.0.3", "minimatch": "^3.0.3" @@ -4731,7 +4605,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, "requires": { "commondir": "^1.0.1", "mkdirp": "^0.5.1", @@ -4759,7 +4632,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, "requires": { "circular-json": "^0.3.1", "del": "^2.0.2", @@ -4830,14 +4702,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "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=", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "1.0.6", @@ -4884,8 +4754,7 @@ "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" }, "fs-write-stream-atomic": { "version": "1.0.10", @@ -5696,8 +5565,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gaze": { "version": "1.1.2", @@ -5731,7 +5599,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -5887,7 +5754,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, "requires": { "array-union": "^1.0.1", "arrify": "^1.0.0", @@ -5954,8 +5820,7 @@ "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" }, "handle-thing": { "version": "1.2.5", @@ -6014,14 +5879,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, "requires": { "ajv": "^5.1.0", "har-schema": "^2.0.0" @@ -6147,7 +6010,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "dev": true, "requires": { "boom": "4.x.x", "cryptiles": "3.x.x", @@ -6173,8 +6035,7 @@ "hoek": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "home-or-tmp": { "version": "2.0.0", @@ -6218,7 +6079,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, "requires": { "whatwg-encoding": "^1.0.1" } @@ -6658,7 +6518,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6798,7 +6657,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", @@ -6819,20 +6677,17 @@ "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "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==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -6841,7 +6696,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6851,20 +6705,17 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -6874,7 +6725,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -6883,7 +6733,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -6983,7 +6832,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, "requires": { "ci-info": "^1.0.0" } @@ -7060,8 +6908,7 @@ "is-generator-fn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=" }, "is-glob": { "version": "2.0.1", @@ -7181,8 +7028,7 @@ "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, "is-retry-allowed": { "version": "1.1.0", @@ -7218,8 +7064,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", @@ -7263,7 +7108,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -7272,14 +7116,12 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", - "dev": true, "requires": { "async": "^2.1.4", "compare-versions": "^3.1.0", @@ -7299,7 +7141,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, "requires": { "lodash": "^4.14.0" } @@ -7308,7 +7149,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -7317,7 +7157,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz", "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==", - "dev": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^1.2.0", @@ -7331,14 +7170,12 @@ "istanbul-lib-coverage": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==" }, "istanbul-lib-hook": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz", "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==", - "dev": true, "requires": { "append-transform": "^0.4.0" } @@ -7347,7 +7184,6 @@ "version": "1.10.1", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, "requires": { "babel-generator": "^6.18.0", "babel-template": "^6.16.0", @@ -7362,7 +7198,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", - "dev": true, "requires": { "istanbul-lib-coverage": "^1.2.0", "mkdirp": "^0.5.1", @@ -7374,7 +7209,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, "requires": { "has-flag": "^1.0.0" } @@ -7385,7 +7219,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", - "dev": true, "requires": { "debug": "^3.1.0", "istanbul-lib-coverage": "^1.1.2", @@ -7398,7 +7231,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -7409,7 +7241,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", - "dev": true, "requires": { "handlebars": "^4.0.3" } @@ -7437,7 +7268,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest/-/jest-22.4.3.tgz", "integrity": "sha512-FFCdU/pXOEASfHxFDOWUysI/+FFoqiXJADEIXgDKuZyqSmBD3tZ4BEGH7+M79v7czj7bbkhwtd2LaEDcJiM/GQ==", - "dev": true, "requires": { "import-local": "^1.0.0", "jest-cli": "^22.4.3" @@ -7446,20 +7276,17 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -7470,7 +7297,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -7478,14 +7304,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "jest-cli": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.3.tgz", "integrity": "sha512-IiHybF0DJNqZPsbjn4Cy4vcqcmImpoFwNFnkehzVw8lTUSl4axZh5DHewu5bdpZF2Y5gUqFKYzH0FH4Qx2k+UA==", - "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.1", @@ -7527,7 +7351,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -7538,7 +7361,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -7548,7 +7370,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7557,7 +7378,6 @@ "version": "10.1.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", - "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -7577,7 +7397,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true, "requires": { "camelcase": "^4.1.0" } @@ -7588,7 +7407,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz", "integrity": "sha512-83Dh0w1aSkUNFhy5d2dvqWxi/y6weDwVVLU6vmK0cV9VpRxPzhTeGimbsbRDSnEoszhF937M4sDLLeS7Cu/Tmw==", - "dev": true, "requires": { "throat": "^4.0.0" } @@ -7597,7 +7415,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.3.tgz", "integrity": "sha512-KSg3EOToCgkX+lIvenKY7J8s426h6ahXxaUFJxvGoEk0562Z6inWj1TnKoGycTASwiLD+6kSYFALcjdosq9KIQ==", - "dev": true, "requires": { "chalk": "^2.0.1", "glob": "^7.1.1", @@ -7616,7 +7433,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz", "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==", - "dev": true, "requires": { "chalk": "^2.0.1", "diff": "^3.2.0", @@ -7628,7 +7444,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz", "integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==", - "dev": true, "requires": { "detect-newline": "^2.1.0" } @@ -7637,7 +7452,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz", "integrity": "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==", - "dev": true, "requires": { "jest-mock": "^22.4.3", "jest-util": "^22.4.3", @@ -7648,7 +7462,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz", "integrity": "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==", - "dev": true, "requires": { "jest-mock": "^22.4.3", "jest-util": "^22.4.3" @@ -7657,14 +7470,12 @@ "jest-get-type": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", - "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", - "dev": true + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==" }, "jest-haste-map": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz", "integrity": "sha512-4Q9fjzuPVwnaqGKDpIsCSoTSnG3cteyk2oNVjBX12HHOaF1oxql+uUiqZb5Ndu7g/vTZfdNwwy4WwYogLh29DQ==", - "dev": true, "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", @@ -7679,7 +7490,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz", "integrity": "sha512-yZCPCJUcEY6R5KJB/VReo1AYI2b+5Ky+C+JA1v34jndJsRcLpU4IZX4rFJn7yDTtdNbO/nNqg+3SDIPNH2ecnw==", - "dev": true, "requires": { "chalk": "^2.0.1", "co": "^4.6.0", @@ -7697,14 +7507,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -7716,7 +7524,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz", "integrity": "sha512-NZpR/Ls7+ndO57LuXROdgCGz2RmUdC541tTImL9bdUtU3WadgFGm0yV+Ok4Fuia/1rLAn5KaJ+i76L6e3zGJYQ==", - "dev": true, "requires": { "pretty-format": "^22.4.3" } @@ -7725,7 +7532,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz", "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", - "dev": true, "requires": { "chalk": "^2.0.1", "jest-get-type": "^22.4.3", @@ -7736,7 +7542,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz", "integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0-beta.35", "chalk": "^2.0.1", @@ -7748,20 +7553,17 @@ "jest-mock": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz", - "integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==", - "dev": true + "integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==" }, "jest-regex-util": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz", - "integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==", - "dev": true + "integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==" }, "jest-resolve": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz", "integrity": "sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw==", - "dev": true, "requires": { "browser-resolve": "^1.11.2", "chalk": "^2.0.1" @@ -7771,7 +7573,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz", "integrity": "sha512-06czCMVToSN8F2U4EvgSB1Bv/56gc7MpCftZ9z9fBgUQM7dzHGCMBsyfVA6dZTx8v0FDcnALf7hupeQxaBCvpA==", - "dev": true, "requires": { "jest-regex-util": "^22.4.3" } @@ -7780,7 +7581,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.3.tgz", "integrity": "sha512-U7PLlQPRlWNbvOHWOrrVay9sqhBJmiKeAdKIkvX4n1G2tsvzLlf77nBD28GL1N6tGv4RmuTfI8R8JrkvCa+IBg==", - "dev": true, "requires": { "exit": "^0.1.2", "jest-config": "^22.4.3", @@ -7799,7 +7599,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.3.tgz", "integrity": "sha512-Eat/esQjevhx9BgJEC8udye+FfoJ2qvxAZfOAWshYGS22HydHn5BgsvPdTtt9cp0fSl5LxYOFA1Pja9Iz2Zt8g==", - "dev": true, "requires": { "babel-core": "^6.0.0", "babel-jest": "^22.4.3", @@ -7826,20 +7625,17 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -7850,7 +7646,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -7858,14 +7653,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", @@ -7876,7 +7669,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -7886,7 +7678,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7894,14 +7685,12 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "yargs": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", - "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", @@ -7921,7 +7710,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "dev": true, "requires": { "camelcase": "^4.1.0" } @@ -7931,14 +7719,12 @@ "jest-serializer": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", - "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==", - "dev": true + "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==" }, "jest-snapshot": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz", "integrity": "sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ==", - "dev": true, "requires": { "chalk": "^2.0.1", "jest-diff": "^22.4.3", @@ -7952,7 +7738,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz", "integrity": "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==", - "dev": true, "requires": { "callsites": "^2.0.0", "chalk": "^2.0.1", @@ -7966,14 +7751,12 @@ "callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -7981,7 +7764,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.3.tgz", "integrity": "sha512-CfFM18W3GSP/xgmA4UouIx0ljdtfD2mjeBC6c89Gg17E44D4tQhAcTrZmf9djvipwU30kSTnk6CzcxdCCeSXfA==", - "dev": true, "requires": { "chalk": "^2.0.1", "jest-config": "^22.4.3", @@ -7994,7 +7776,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz", "integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==", - "dev": true, "requires": { "merge-stream": "^1.0.1" } @@ -8022,7 +7803,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, "requires": { "xmlcreate": "^1.0.1" } @@ -8031,7 +7811,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, "optional": true }, "jscodeshift": { @@ -8103,7 +7882,6 @@ "version": "3.5.5", "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", - "dev": true, "requires": { "babylon": "7.0.0-beta.19", "bluebird": "~3.5.0", @@ -8122,8 +7900,7 @@ "babylon": { "version": "7.0.0-beta.19", "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", - "dev": true + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==" } } }, @@ -8131,7 +7908,6 @@ "version": "11.10.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz", "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==", - "dev": true, "requires": { "abab": "^1.0.4", "acorn": "^5.3.0", @@ -8184,8 +7960,7 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.3.1", @@ -8196,7 +7971,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, "requires": { "jsonify": "~0.0.0" } @@ -8204,14 +7978,12 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "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=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.2", @@ -8234,14 +8006,12 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -8253,7 +8023,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", - "dev": true, "requires": { "array-includes": "^3.0.3" } @@ -8283,7 +8052,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", - "dev": true, "requires": { "graceful-fs": "^4.1.9" } @@ -8426,20 +8194,17 @@ "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -8658,7 +8423,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, "requires": { "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" @@ -8719,8 +8483,7 @@ "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" }, "lodash.uniq": { "version": "4.5.0", @@ -8874,7 +8637,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, "requires": { "tmpl": "1.0.x" } @@ -9047,8 +8809,7 @@ "merge": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", - "dev": true + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" }, "merge-descriptors": { "version": "1.0.1", @@ -9059,7 +8820,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, "requires": { "readable-stream": "^2.0.1" } @@ -9201,8 +8961,7 @@ "mock-fs": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.5.0.tgz", - "integrity": "sha512-qqudNfOX7ZmX9vm1WIAU+gWlmxVNAnwY6UG3RkFutNywmRCUGP83tujP6IxX2DS1TmcaEZBOhYwDuYEmJYE+3w==", - "dev": true + "integrity": "sha512-qqudNfOX7ZmX9vm1WIAU+gWlmxVNAnwY6UG3RkFutNywmRCUGP83tujP6IxX2DS1TmcaEZBOhYwDuYEmJYE+3w==" }, "move-concurrently": { "version": "1.0.1", @@ -9297,8 +9056,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "negotiator": { "version": "0.6.1", @@ -9337,7 +9095,6 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, "requires": { "encoding": "^0.1.11", "is-stream": "^1.0.1" @@ -9351,8 +9108,7 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, "node-libs-browser": { "version": "2.1.0", @@ -9417,7 +9173,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", - "dev": true, "requires": { "growly": "^1.3.0", "semver": "^5.4.1", @@ -9573,14 +9328,12 @@ "nwmatcher": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==" }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { "version": "4.1.1", @@ -9610,8 +9363,7 @@ "object-hash": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", - "dev": true + "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==" }, "object-keys": { "version": "1.0.11", @@ -9732,7 +9484,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.4", @@ -9745,8 +9496,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, @@ -9842,7 +9592,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true, "requires": { "graceful-fs": "^4.1.4", "mkdirp": "^0.5.1", @@ -9999,8 +9748,7 @@ "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" }, "parseurl": { "version": "1.3.2", @@ -10080,8 +9828,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "2.3.0", @@ -10105,7 +9852,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, "requires": { "find-up": "^1.0.0" } @@ -10113,14 +9859,12 @@ "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" }, "portfinder": { "version": "1.0.13", @@ -10549,8 +10293,7 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", @@ -10585,7 +10328,6 @@ "version": "22.4.3", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz", "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", - "dev": true, "requires": { "ansi-regex": "^3.0.0", "ansi-styles": "^3.2.0" @@ -10594,8 +10336,7 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" } } }, @@ -10617,14 +10358,12 @@ "progress": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, "requires": { "asap": "~2.0.3" } @@ -10638,7 +10377,6 @@ "version": "15.6.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", - "dev": true, "requires": { "fbjs": "^0.8.16", "loose-envify": "^1.3.1", @@ -10815,8 +10553,7 @@ "raw-loader": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" }, "read-chunk": { "version": "2.1.0", @@ -10881,7 +10618,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", - "dev": true, "requires": { "util.promisify": "^1.0.0" } @@ -10947,8 +10683,7 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regenerator-transform": { "version": "0.10.1", @@ -10980,8 +10715,7 @@ "regexpp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==" }, "regexpu-core": { "version": "1.0.0", @@ -11062,7 +10796,6 @@ "version": "2.86.0", "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.6.0", @@ -11091,7 +10824,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "dev": true, "requires": { "lodash": "^4.13.1" } @@ -11100,7 +10832,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "dev": true, "requires": { "request-promise-core": "1.1.1", "stealthy-require": "^1.1.0", @@ -11121,7 +10852,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, "requires": { "caller-path": "^0.1.0", "resolve-from": "^1.0.0" @@ -11136,7 +10866,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", - "dev": true, "requires": { "underscore": "~1.6.0" }, @@ -11144,8 +10873,7 @@ "underscore": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, @@ -11181,8 +10909,7 @@ "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" }, "resolve-url": { "version": "0.2.1", @@ -11240,8 +10967,7 @@ "rsvp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==" }, "run-async": { "version": "2.3.0", @@ -11267,14 +10993,12 @@ "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" }, "rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, "requires": { "rx-lite": "*" } @@ -11304,7 +11028,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, "requires": { "anymatch": "^2.0.0", "capture-exit": "^1.2.0", @@ -11321,7 +11044,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -11330,20 +11052,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -11361,7 +11080,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11372,7 +11090,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -11387,7 +11104,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11396,7 +11112,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11405,7 +11120,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -11414,7 +11128,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11425,7 +11138,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -11434,7 +11146,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11445,7 +11156,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -11455,8 +11165,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -11464,7 +11173,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -11480,7 +11188,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -11489,7 +11196,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11500,7 +11206,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -11512,7 +11217,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11523,7 +11227,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, "optional": true, "requires": { "nan": "^2.9.2", @@ -11533,24 +11236,20 @@ "abbrev": { "version": "1.1.1", "bundled": true, - "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true + "bundled": true }, "aproba": { "version": "1.2.0", "bundled": true, - "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", "bundled": true, - "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", @@ -11559,13 +11258,11 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, - "dev": true + "bundled": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11574,34 +11271,28 @@ "chownr": { "version": "1.0.1", "bundled": true, - "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "concat-map": { "version": "0.0.1", - "bundled": true, - "dev": true + "bundled": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, - "dev": true + "bundled": true }, "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "debug": { "version": "2.6.9", "bundled": true, - "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -11610,25 +11301,21 @@ "deep-extend": { "version": "0.5.1", "bundled": true, - "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, - "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", "bundled": true, - "dev": true, "optional": true, "requires": { "minipass": "^2.2.1" @@ -11637,13 +11324,11 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, - "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", @@ -11659,7 +11344,6 @@ "glob": { "version": "7.1.2", "bundled": true, - "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -11673,13 +11357,11 @@ "has-unicode": { "version": "2.0.1", "bundled": true, - "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", "bundled": true, - "dev": true, "optional": true, "requires": { "safer-buffer": "^2.1.0" @@ -11688,7 +11370,6 @@ "ignore-walk": { "version": "3.0.1", "bundled": true, - "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" @@ -11697,7 +11378,6 @@ "inflight": { "version": "1.0.6", "bundled": true, - "dev": true, "optional": true, "requires": { "once": "^1.3.0", @@ -11706,19 +11386,16 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, - "dev": true + "bundled": true }, "ini": { "version": "1.3.5", "bundled": true, - "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -11726,26 +11403,22 @@ "isarray": { "version": "1.0.0", "bundled": true, - "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, - "dev": true + "bundled": true }, "minipass": { "version": "2.2.4", "bundled": true, - "dev": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -11754,7 +11427,6 @@ "minizlib": { "version": "1.1.0", "bundled": true, - "dev": true, "optional": true, "requires": { "minipass": "^2.2.1" @@ -11763,7 +11435,6 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true, "requires": { "minimist": "0.0.8" } @@ -11771,13 +11442,11 @@ "ms": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "needle": { "version": "2.2.0", "bundled": true, - "dev": true, "optional": true, "requires": { "debug": "^2.1.2", @@ -11788,7 +11457,6 @@ "node-pre-gyp": { "version": "0.10.0", "bundled": true, - "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -11806,7 +11474,6 @@ "nopt": { "version": "4.0.1", "bundled": true, - "dev": true, "optional": true, "requires": { "abbrev": "1", @@ -11816,13 +11483,11 @@ "npm-bundled": { "version": "1.0.3", "bundled": true, - "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", "bundled": true, - "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -11832,7 +11497,6 @@ "npmlog": { "version": "4.1.2", "bundled": true, - "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -11843,19 +11507,16 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, - "dev": true + "bundled": true }, "object-assign": { "version": "4.1.1", "bundled": true, - "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, - "dev": true, "requires": { "wrappy": "1" } @@ -11863,19 +11524,16 @@ "os-homedir": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, - "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -11885,19 +11543,16 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "rc": { "version": "1.2.7", "bundled": true, - "dev": true, "optional": true, "requires": { "deep-extend": "^0.5.1", @@ -11909,7 +11564,6 @@ "minimist": { "version": "1.2.0", "bundled": true, - "dev": true, "optional": true } } @@ -11917,7 +11571,6 @@ "readable-stream": { "version": "2.3.6", "bundled": true, - "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -11932,7 +11585,6 @@ "rimraf": { "version": "2.6.2", "bundled": true, - "dev": true, "optional": true, "requires": { "glob": "^7.0.5" @@ -11940,43 +11592,36 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true, - "dev": true + "bundled": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, - "dev": true, "optional": true }, "sax": { "version": "1.2.4", "bundled": true, - "dev": true, "optional": true }, "semver": { "version": "5.5.0", "bundled": true, - "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, - "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, - "dev": true, "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -11986,7 +11631,6 @@ "string_decoder": { "version": "1.1.1", "bundled": true, - "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -11995,7 +11639,6 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -12003,13 +11646,11 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, - "dev": true, "optional": true }, "tar": { "version": "4.4.1", "bundled": true, - "dev": true, "optional": true, "requires": { "chownr": "^1.0.1", @@ -12024,13 +11665,11 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", "bundled": true, - "dev": true, "optional": true, "requires": { "string-width": "^1.0.2" @@ -12038,13 +11677,11 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, - "dev": true + "bundled": true }, "yallist": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true } } }, @@ -12052,7 +11689,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -12061,7 +11697,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -12070,7 +11705,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -12081,7 +11715,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -12090,7 +11723,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -12100,20 +11732,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12133,14 +11762,12 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, "optional": true } } @@ -12331,8 +11958,7 @@ "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" }, "signal-exit": { "version": "3.0.2", @@ -12348,7 +11974,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0" }, @@ -12356,8 +11981,7 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" } } }, @@ -12472,7 +12096,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "dev": true, "requires": { "hoek": "4.x.x" } @@ -12648,7 +12271,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -12671,8 +12293,7 @@ "stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", - "dev": true + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=" }, "static-extend": { "version": "0.1.2", @@ -12701,8 +12322,7 @@ "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" }, "stream-browserify": { "version": "2.0.1", @@ -12785,7 +12405,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "dev": true, "requires": { "astral-regex": "^1.0.0", "strip-ansi": "^4.0.0" @@ -12794,14 +12413,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -12869,8 +12486,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { "version": "0.21.0", @@ -12930,14 +12546,12 @@ "symbol-tree": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, "requires": { "ajv": "^5.2.3", "ajv-keywords": "^2.1.0", @@ -12950,14 +12564,12 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "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==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -12966,7 +12578,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -12976,20 +12587,17 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -12999,7 +12607,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -13008,7 +12615,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -13018,8 +12624,7 @@ "taffydb": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" }, "tapable": { "version": "1.0.0", @@ -13046,7 +12651,6 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "dev": true, "requires": { "arrify": "^1.0.1", "micromatch": "^3.1.8", @@ -13058,20 +12662,17 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -13089,7 +12690,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13100,7 +12700,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -13115,7 +12714,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13124,7 +12722,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13133,7 +12730,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -13142,7 +12738,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -13153,7 +12748,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -13162,7 +12756,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -13173,7 +12766,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -13183,8 +12775,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -13192,7 +12783,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -13208,7 +12798,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -13217,7 +12806,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13228,7 +12816,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -13240,7 +12827,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13251,7 +12837,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13260,7 +12845,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13269,7 +12853,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -13280,7 +12863,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -13289,7 +12871,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -13299,20 +12880,17 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -13344,8 +12922,7 @@ "throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" }, "through": { "version": "2.3.8", @@ -13419,8 +12996,7 @@ "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" }, "to-arraybuffer": { "version": "1.0.1", @@ -13474,7 +13050,6 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, "requires": { "punycode": "^1.4.1" } @@ -13483,7 +13058,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, "requires": { "punycode": "^2.1.0" }, @@ -13491,8 +13065,7 @@ "punycode": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" } } }, @@ -13520,7 +13093,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -13529,7 +13101,6 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, "optional": true }, "twig": { @@ -13555,7 +13126,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "~1.1.2" } @@ -13592,8 +13162,7 @@ "ua-parser-js": { "version": "0.7.18", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==", - "dev": true + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" }, "uglify-js": { "version": "2.8.29", @@ -13698,14 +13267,12 @@ "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "underscore-contrib": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", - "dev": true, "requires": { "underscore": "1.6.0" }, @@ -13713,8 +13280,7 @@ "underscore": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, @@ -13938,8 +13504,7 @@ "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "util": { "version": "0.10.3", @@ -13994,7 +13559,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, "requires": { "user-home": "^1.1.1" } @@ -14022,7 +13586,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -14064,7 +13627,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "dev": true, "requires": { "browser-process-hrtime": "^0.1.2" } @@ -14081,7 +13643,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, "requires": { "makeerror": "1.0.x" } @@ -14090,7 +13651,6 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", - "dev": true, "requires": { "exec-sh": "^0.2.0", "minimist": "^1.2.0" @@ -14099,8 +13659,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -14447,8 +14006,7 @@ "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { "version": "4.8.3", @@ -15504,8 +15062,7 @@ "webpack-node-externals": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz", - "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==", - "dev": true + "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==" }, "webpack-sources": { "version": "1.1.0", @@ -15546,7 +15103,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, "requires": { "iconv-lite": "0.4.19" } @@ -15554,20 +15110,17 @@ "whatwg-fetch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", - "dev": true + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, "whatwg-mimetype": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", - "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==", - "dev": true + "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==" }, "whatwg-url": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz", "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==", - "dev": true, "requires": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -15621,7 +15174,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, "requires": { "mkdirp": "^0.5.1" } @@ -15630,7 +15182,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -15641,7 +15192,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "dev": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0" @@ -15650,14 +15200,12 @@ "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, "xmlcreate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=" }, "xtend": { "version": "4.0.1", diff --git a/package.json b/package.json index 4f97d3b..00c67f8 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,11 @@ "templates" ], "dependencies": { + "babel-cli": "^6.26.0", "babel-core": "^6.26.3", + "babel-jest": "^22.4.3", + "babel-loader": "^7.1.4", + "babel-preset-env": "^1.7.0", "chalk": "^2.4.1", "commander": "^2.15.1", "concurrently": "^3.5.1", @@ -54,13 +58,7 @@ "style-loader": "^0.21.0", "webpack": "^4.8.3", "webpack-cli": "^2.1.3", - "webpack-dev-server": "^3.1.4" - }, - "devDependencies": { - "babel-cli": "^6.26.0", - "babel-jest": "^22.4.3", - "babel-loader": "^7.1.4", - "babel-preset-env": "^1.7.0", + "webpack-dev-server": "^3.1.4", "clean-webpack-plugin": "^0.1.19", "eslint": "^4.19.1", "eslint-config-airbnb": "^16.1.0", From ab0572b8544bb671b4f221c06664ba0966746a4e Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Mon, 21 May 2018 15:40:47 -0700 Subject: [PATCH 14/24] Restore exclusion on node_modules. --- config/webpack.browser.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/webpack.browser.config.js b/config/webpack.browser.config.js index 51dc3e0..1affd4c 100644 --- a/config/webpack.browser.config.js +++ b/config/webpack.browser.config.js @@ -32,7 +32,7 @@ module.exports = { }, { test: /\.js$/, - // exclude: /node_modules/, + exclude: /node_modules/, use: 'babel-loader', }, ], From ce80ceec273e342ffce59c601124c9c5ec49a97f Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Mon, 21 May 2018 15:41:40 -0700 Subject: [PATCH 15/24] Put console func on same line. --- src/cli/actions.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cli/actions.js b/src/cli/actions.js index d5b321c..e69383c 100644 --- a/src/cli/actions.js +++ b/src/cli/actions.js @@ -173,8 +173,7 @@ export function deleteFile(filepath, store) { break; default: - console.warn( - chalk.red(`Could not delete: ${file.name}`)); + console.warn(chalk.red(`Could not delete: ${file.name}`)); break; } From b306f142b475ff61877ad4b78184210bda290764 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Mon, 21 May 2018 15:42:22 -0700 Subject: [PATCH 16/24] Make this more readable. --- src/cli/server.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cli/server.js b/src/cli/server.js index c2d5ebd..2f58347 100644 --- a/src/cli/server.js +++ b/src/cli/server.js @@ -37,10 +37,12 @@ export default function startWebpack(config) { } if (stats.hasErrors()) { - console.error(chalk.red( - 'Webpack encountered errors during compile: ', - info.errors - )); + console.error( + chalk.red( + 'Webpack encountered errors during compile: ', + info.errors + ) + ); } if (stats.hasWarnings()) { From de9b7bdab584ddeeb4b5252b389e4a6707d89cca Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Tue, 5 Jun 2018 14:28:20 -0700 Subject: [PATCH 17/24] Non-working attempt at redoing classnames as a single file. --- dist/cli/index.js | 2 +- dist/web/index.js | 2152 ++++++++++++++++++++++++++++++++++++++- dist/web/index.js.map | 2 +- package-lock.json | 10 +- src/cli/actions.js | 2 +- src/cli/defaultStore.js | 4 +- src/cli/fileWatcher.js | 3 +- src/cli/utils.js | 87 +- 8 files changed, 2214 insertions(+), 48 deletions(-) diff --git a/dist/cli/index.js b/dist/cli/index.js index 3e22493..fe8b2df 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2 +1,2 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.mergeClassnameJSON=function(e){let t;if(!e)return{};try{t=r.default.readdirSync(e)}catch(e){console.warn(s.default.red(e))}return t.reduce((t,n)=>{const l=o.default.parse(n);let a={};if(".json"===l.ext)try{const t=r.default.readFileSync(o.default.join(e,n),"utf8");a=JSON.parse(t)}catch(e){console.warn(s.default.red(e))}return Object.assign({},t,{[l.name]:a})},{})},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(u.huron),classNames:(0,a.mergeClassnameJSON)(u.huron.classNames),sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(`${l.default.resolve(u.get("classNames"))}/*.json`),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function({entry:e,root:t,port:n},r){const s=r.entry[e],l=u.default.production?[]:[`webpack-dev-server/client/index.js?http://localhost:${n}/`,"webpack/hot/dev-server"];return Object.assign({},r,{entry:{[e]:Array.prototype.concat(l,o.default.join(p,t,"huron-assets/index"),s)}})}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.mergeClassnameJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.getClassnamesFromJSON=function(e){let t={};if(".json"===o.default.parse(e).ext)try{const n=r.default.readFileSync(e,"utf8");t=JSON.parse(n)}catch(e){console.warn(s.default.red(e))}return{[e]:t}},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16);const l=(0,((o=s)&&o.__esModule?o:{default:o}).default)();l.huron.kss=[].concat(l.huron.kss);const a=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(l.huron),classNames:l.huron.classNames,sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=a,t.config=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(l.default.resolve(u.get("classNames"))),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function({entry:e,root:t,port:n},r){const s=r.entry[e],l=u.default.production?[]:[`webpack-dev-server/client/index.js?http://localhost:${n}/`,"webpack/hot/dev-server"];return Object.assign({},r,{entry:{[e]:Array.prototype.concat(l,o.default.join(p,t,"huron-assets/index"),s)}})}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.getClassnamesFromJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js b/dist/web/index.js index e4de4a3..08791f7 100644 --- a/dist/web/index.js +++ b/dist/web/index.js @@ -1,2 +1,2152 @@ -module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="../",e(e.s=0)}({"./node_modules/lodash/fp.js":function(t,n,e){"use strict";var r=e("./node_modules/lodash/lodash.min.js").runInContext();t.exports=e("./node_modules/lodash/fp/_baseConvert.js")(r,r)},"./node_modules/lodash/fp/_baseConvert.js":function(t,n,e){"use strict";var r=e("./node_modules/lodash/fp/_mapping.js"),u=e("./node_modules/lodash/fp/placeholder.js"),i=Array.prototype.push;function o(t,n){return 2==n?function(n,e){return t(n,e)}:function(n){return t(n)}}function a(t){for(var n=t?t.length:0,e=Array(n);n--;)e[n]=t[n];return e}function c(t,n){return function(){var e=arguments.length;if(e){for(var r=Array(e);e--;)r[e]=arguments[e];var u=r[0]=n.apply(void 0,r);return t.apply(void 0,r),u}}}t.exports=function t(n,e,f,l){var s,p="function"==typeof e,h=e===Object(e);if(h&&(l=f,f=e,e=void 0),null==f)throw new TypeError;l||(l={});var d={cap:!("cap"in l)||l.cap,curry:!("curry"in l)||l.curry,fixed:!("fixed"in l)||l.fixed,immutable:!("immutable"in l)||l.immutable,rearg:!("rearg"in l)||l.rearg},g="curry"in l&&l.curry,y="fixed"in l&&l.fixed,_="rearg"in l&&l.rearg,v=p?f:u,b=p?f.runInContext():void 0,m=p?f:{ary:n.ary,assign:n.assign,clone:n.clone,curry:n.curry,forEach:n.forEach,isArray:n.isArray,isError:n.isError,isFunction:n.isFunction,isWeakMap:n.isWeakMap,iteratee:n.iteratee,keys:n.keys,rearg:n.rearg,toInteger:n.toInteger,toPath:n.toPath},x=m.ary,j=m.assign,w=m.clone,A=m.curry,k=m.forEach,O=m.isArray,I=m.isError,E=m.isFunction,S=m.isWeakMap,W=m.keys,R=m.rearg,M=m.toInteger,B=m.toPath,L=W(r.aryMethod),C={castArray:function(t){return function(){var n=arguments[0];return O(n)?t(a(n)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var n=arguments[0],e=arguments[1],r=t(n,e),u=r.length;return d.cap&&"number"==typeof e?(e=e>2?e-2:1,u&&u<=e?r:o(r,e)):r}},mixin:function(t){return function(n){var e=this;if(!E(e))return t(e,Object(n));var r=[];return k(W(n),function(t){E(n[t])&&r.push([t,e.prototype[t]])}),t(e,Object(n)),k(r,function(t){var n=t[1];E(n)?e.prototype[t[0]]=n:delete e.prototype[t[0]]}),e}},nthArg:function(t){return function(n){var e=n<0?1:M(n)+1;return A(t(n),e)}},rearg:function(t){return function(n,e){var r=e?e.length:0;return A(t(n,e),r)}},runInContext:function(e){return function(r){return t(n,e(r),l)}}};function T(t,n){if(d.cap){var e=r.iterateeRearg[t];if(e)return function(t,n){return U(t,function(t){var e=n.length;return function(t,n){return 2==n?function(n,e){return t.apply(void 0,arguments)}:function(n){return t.apply(void 0,arguments)}}(R(o(t,e),n),e)})}(n,e);var u=!p&&r.iterateeAry[t];if(u)return function(t,n){return U(t,function(t){return"function"==typeof t?o(t,n):t})}(n,u)}return n}function z(t,n,e){if(d.fixed&&(y||!r.skipFixed[t])){var u=r.methodSpread[t],o=u&&u.start;return void 0===o?x(n,e):function(t,n){return function(){for(var e=arguments.length,r=e-1,u=Array(e);e--;)u[e]=arguments[e];var o=u[n],a=u.slice(0,n);return o&&i.apply(a,o),n!=r&&i.apply(a,u.slice(n+1)),t.apply(this,a)}}(n,o)}return n}function F(t,n,e){return d.rearg&&e>1&&(_||!r.skipRearg[t])?R(n,r.methodRearg[t]||r.aryRearg[e]):n}function D(t,n){for(var e=-1,r=(n=B(n)).length,u=r-1,i=w(Object(t)),o=i;null!=o&&++e1?A(c,f):c,!1}var c,f}),!e}),e||(e=i),e==n&&(e=g?A(e,1):function(){return n.apply(this,arguments)}),e.convert=P(u,n),r.placeholder[u]&&(s=!0,e.placeholder=n.placeholder=v),e}if(!h)return N(e,f);var q=f,$=[];return k(L,function(t){k(r.aryMethod[t],function(t){var n=q[r.remap[t]||t];n&&$.push([t,N(t,n)])})}),k(W(q),function(t){var n=q[t];if("function"==typeof n){for(var e=$.length;e--;)if($[e][0]==t)return;n.convert=P(t,n),$.push([t,n])}}),k($,function(t){q[t[0]]=t[1]}),q.convert=function(t){return q.runInContext.convert(t)(void 0)},s&&(q.placeholder=v),k(W(q),function(t){k(r.realToAlias[t]||[],function(n){q[n]=q[t]})}),q}},"./node_modules/lodash/fp/_mapping.js":function(t,n,e){"use strict";n.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},n.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},n.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},n.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},n.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},n.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},n.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},n.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},n.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},n.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=n.aliasToReal,r={};for(var u in e){var i=e[u];t.call(r,i)?r[i].push(u):r[i]=[u]}return r}(),n.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},n.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},n.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},"./node_modules/lodash/fp/placeholder.js":function(t,n,e){"use strict";t.exports={}},"./node_modules/lodash/lodash.min.js":function(t,n,e){"use strict";(function(t,r){var u,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};(function(){function o(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function a(t,n,e,r){for(var u=-1,i=null==t?0:t.length;++u"']/g,J=RegExp(H.source),Y=RegExp(G.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,tt=/<%=([\s\S]+?)%>/g,nt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,et=/^\w*$/,rt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ut=/[\\^$.*+?()[\]{}|]/g,it=RegExp(ut.source),ot=/^\s+|\s+$/g,at=/^\s+/,ct=/\s+$/,ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,lt=/\{\n\/\* \[wrapped with (.+)\] \*/,st=/,? & /,pt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ht=/\\(\\)?/g,dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,gt=/\w*$/,yt=/^[-+]0x[0-9a-f]+$/i,_t=/^0b[01]+$/i,vt=/^\[object .+?Constructor\]$/,bt=/^0o[0-7]+$/i,mt=/^(?:0|[1-9]\d*)$/,xt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jt=/($^)/,wt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",kt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,Ot=RegExp("['’]","g"),It=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),Et=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+At,"g"),St=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",kt].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Mt="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bt={};Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object Boolean]"]=Bt["[object DataView]"]=Bt["[object Date]"]=Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object WeakMap]"]=!1;var Lt={};Lt["[object Arguments]"]=Lt["[object Array]"]=Lt["[object ArrayBuffer]"]=Lt["[object DataView]"]=Lt["[object Boolean]"]=Lt["[object Date]"]=Lt["[object Float32Array]"]=Lt["[object Float64Array]"]=Lt["[object Int8Array]"]=Lt["[object Int16Array]"]=Lt["[object Int32Array]"]=Lt["[object Map]"]=Lt["[object Number]"]=Lt["[object Object]"]=Lt["[object RegExp]"]=Lt["[object Set]"]=Lt["[object String]"]=Lt["[object Symbol]"]=Lt["[object Uint8Array]"]=Lt["[object Uint8ClampedArray]"]=Lt["[object Uint16Array]"]=Lt["[object Uint32Array]"]=!0,Lt["[object Error]"]=Lt["[object Function]"]=Lt["[object WeakMap]"]=!1;var Ct={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tt=parseFloat,zt=parseInt,Ft="object"==(void 0===t?"undefined":i(t))&&t&&t.Object===Object&&t,Dt="object"==("undefined"==typeof self?"undefined":i(self))&&self&&self.Object===Object&&self,Pt=Ft||Dt||Function("return this")(),Ut="object"==i(n)&&n&&!n.nodeType&&n,Nt=Ut&&"object"==i(r)&&r&&!r.nodeType&&r,qt=Nt&&Nt.exports===Ut,$t=qt&&Ft.process,Kt=function(){try{var t=Nt&&Nt.f&&Nt.f("util").types;return t||$t&&$t.binding&&$t.binding("util")}catch(t){}}(),Zt=Kt&&Kt.isArrayBuffer,Vt=Kt&&Kt.isDate,Ht=Kt&&Kt.isMap,Gt=Kt&&Kt.isRegExp,Jt=Kt&&Kt.isSet,Yt=Kt&&Kt.isTypedArray,Qt=A("length"),Xt=k({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),tn=k({"&":"&","<":"<",">":">",'"':""","'":"'"}),nn=k({"&":"&","<":"<",">":">",""":'"',"'":"'"}),en=function t(n){function e(t){if(qr(t)&&!Ro(t)&&!(t instanceof k)){if(t instanceof u)return t;if(Ru.call(t,"__wrapped__"))return gr(t)}return new u(t)}function r(){}function u(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=U}function k(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function At(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function cn(t,n,e,r,u,i){var o,a=1&n,f=2&n,l=4&n;if(e&&(o=u?e(t,r,u,i):e(t)),o!==U)return o;if(!Nr(t))return t;if(r=Ro(t)){if(o=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&Ru.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!a)return ye(t,o)}else{var s=Pi(t),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(Bo(t))return le(t,a);if("[object Object]"==s||"[object Arguments]"==s||p&&!u){if(o=f||p?{}:tr(t),!a)return f?function(t,n){return _e(t,Di(t),n)}(t,function(t,n){return t&&_e(n,uu(n),t)}(o,t)):function(t,n){return _e(t,Fi(t),n)}(t,rn(o,t))}else{if(!Lt[s])return u?t:{};o=function(t,n,e){var r=t.constructor;switch(n){case"[object ArrayBuffer]":return se(t);case"[object Boolean]":case"[object Date]":return new r(+t);case"[object DataView]":return n=e?se(t.buffer):t.buffer,new t.constructor(n,t.byteOffset,t.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return pe(t,e);case"[object Map]":return new r;case"[object Number]":case"[object String]":return new r(t);case"[object RegExp]":return(n=new t.constructor(t.source,gt.exec(t))).lastIndex=t.lastIndex,n;case"[object Set]":return new r;case"[object Symbol]":return Oi?wu(Oi.call(t)):{}}}(t,s,a)}}if(i||(i=new Ft),u=i.get(t))return u;if(i.set(t,o),zo(t))return t.forEach(function(r){o.add(cn(r,n,e,r,t,i))}),o;if(Co(t))return t.forEach(function(r,u){o.set(u,cn(r,n,e,u,t,i))}),o;f=l?f?Ze:Ke:f?uu:ru;var h=r?U:f(t);return c(h||t,function(r,u){h&&(r=t[u=r]),$t(o,u,cn(r,n,e,u,t,i))}),o}function fn(t,n,e){var r=e.length;if(null==t)return!r;for(t=wu(t);r--;){var u=e[r],i=n[u],o=t[u];if(o===U&&!(u in t)||!i(o))return!1}return!0}function ln(t,n,e){if("function"!=typeof t)throw new Ou("Expected a function");return qi(function(){t.apply(U,e)},n)}function sn(t,n,e,r){var u=-1,i=s,o=!0,a=t.length,c=[],f=n.length;if(!a)return c;e&&(n=h(n,S(e))),r?(i=p,o=!1):200<=n.length&&(i=R,o=!1,n=new Ct(n));t:for(;++un}function wn(t,n){return null!=t&&Ru.call(t,n)}function An(t,n){return null!=t&&n in wu(t)}function kn(t,n,e){for(var r=e?p:s,u=t[0].length,i=t.length,o=i,a=vu(i),c=1/0,f=[];o--;){var l=t[o];o&&n&&(l=h(l,S(n))),c=ai(l.length,c),a[o]=!e&&(n||120<=u&&120<=l.length)?new Ct(o&&l):U}l=t[0];var d=-1,g=a[0];t:for(;++d(n=ce(n,t)).length?t:bn(t,Vn(n,0,-1)))?t:t[pr(mr(n))])?U:o(n,t,e)}function In(t){return qr(t)&&"[object Arguments]"==xn(t)}function En(t,n,e,r,u){if(t===n)n=!0;else if(null==t||null==n||!qr(t)&&!qr(n))n=t!=t&&n!=n;else t:{var i=Ro(t),o=Ro(n),a=i?"[object Array]":Pi(t),c=o?"[object Array]":Pi(n),f="[object Object]"==(a="[object Arguments]"==a?"[object Object]":a);o="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c);if((c=a==c)&&Bo(t)){if(!Bo(n)){n=!1;break t}i=!0,f=!1}if(c&&!f)u||(u=new Ft),n=i||Fo(t)?qe(t,n,e,r,En,u):function(t,n,e,r,u,i,o){switch(e){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!i(new Pu(t),new Pu(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Cr(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var a=C;case"[object Set]":if(a||(a=F),t.size!=n.size&&!(1&r))break;return(e=o.get(t))?e==n:(r|=2,o.set(t,n),n=qe(a(t),a(n),r,u,i,o),o.delete(t),n);case"[object Symbol]":if(Oi)return Oi.call(t)==Oi.call(n)}return!1}(t,n,a,e,r,En,u);else{if(!(1&e)&&(i=f&&Ru.call(t,"__wrapped__"),a=o&&Ru.call(n,"__wrapped__"),i||a)){t=i?t.value():t,n=a?n.value():n,u||(u=new Ft),n=En(t,n,e,r,u);break t}if(c)n:if(u||(u=new Ft),i=1&e,a=Ke(t),o=a.length,c=Ke(n).length,o==c||i){for(f=o;f--;){var l=a[f];if(!(i?l in n:Ru.call(n,l))){n=!1;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{c=!0,u.set(t,n),u.set(n,t);for(var s=i;++fn?e:0,e)?t[n]:U}function Dn(t,n,e){var r=-1;return n=h(n.length?n:[su],S(Ge())),function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].c;return t}(t=Ln(t,function(t){return{a:h(n,function(n){return n(t)}),b:++r,c:t}}),function(t,n){var r;t:{r=-1;for(var u=t.a,i=n.a,o=u.length,a=e.length;++r=a?c:c*("desc"==e[r]?-1:1);break t}}r=t.b-n.b}return r})}function Pn(t,n,e){for(var r=-1,u=n.length,i={};++rn||9007199254740991n&&(n=-n>u?0:u+n),0>(e=e>u?u:e)&&(e+=u),u=n>e?0:e-n>>>0,n>>>=0,e=vu(u);++r=u){for(;r>>1,o=t[i];null!==o&&!Vr(o)&&(e?o<=n:o(n=ce(n,t)).length?t:bn(t,Vn(n,0,-1)))||delete t[pr(mr(n))]}function ee(t,n,e,r){for(var u=t.length,i=r?u:-1;(r?i--:++ir)return r?te(t[0]):[];for(var u=-1,i=vu(r);++u=r?t:Vn(t,n,e)}function le(t,n){if(n)return t.slice();var e=t.length;e=Uu?Uu(e):new t.constructor(e);return t.copy(e),e}function se(t){var n=new t.constructor(t.byteLength);return new Pu(n).set(new Pu(t)),n}function pe(t,n){return new t.constructor(n?se(t.buffer):t.buffer,t.byteOffset,t.length)}function he(t,n){if(t!==n){var e=t!==U,r=null===t,u=t==t,i=Vr(t),o=n!==U,a=null===n,c=n==n,f=Vr(n);if(!a&&!f&&!i&&t>n||i&&o&&c&&!a&&!f||r&&o&&c||!e&&c||!u)return 1;if(!r&&!i&&!f&&tu?U:i,u=1),n=wu(n);++ri&&a[0]!==f&&a[i-1]!==f?[]:z(a,f)).length)e?e?$n(n,t):n:(e=$n(n,Xu(t/D(n))),Wt.test(n)?fe(P(e),0,t).join(""):e.slice(0,t))}function Be(t,n,e,r){var u=1&n,i=Ae(t);return function n(){for(var a=-1,c=arguments.length,f=-1,l=r.length,s=vu(l+c),p=this&&this!==Pt&&this instanceof n?i:t;++fn||r)&&(1&t&&(i[2]=p[2],n|=1&e?0:4),(e=p[3])&&(r=i[3],i[3]=r?de(r,e,p[4]):e,i[4]=r?z(i[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=i[5],i[5]=r?ge(r,e,p[6]):e,i[6]=r?z(i[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(i[7]=e),128&t&&(i[8]=null==i[8]?p[8]:ai(i[8],p[8])),null==i[9]&&(i[9]=p[9]),i[0]=p[0],i[1]=n),t=i[0],n=i[1],e=i[2],r=i[3],u=i[4],!(a=i[9]=i[9]===U?c?0:t.length:oi(i[9]-f,0))&&24&n&&(n&=-25),fr((p?Bi:Ni)(n&&1!=n?8==n||16==n?ke(t,n,a):32!=n&&33!=n||u.length?Ee.apply(U,i):Be(t,n,e,r):function(t,n,e){var r=1&n,u=Ae(t);return function n(){return(this&&this!==Pt&&this instanceof n?u:t).apply(r?e:this,arguments)}}(t,n,e),i),t,n)}function Pe(t,n,e,r){return t===U||Cr(t,Eu[e])&&!Ru.call(r,e)?n:t}function Ue(t,n,e,r,u,i){return Nr(t)&&Nr(n)&&(i.set(n,t),zn(t,n,U,Ue,i),i.delete(n)),t}function Ne(t){return Kr(t)?U:t}function qe(t,n,e,r,u,i){var o=1&e,a=t.length;if(a!=(c=n.length)&&!(o&&c>a))return!1;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,f=!0,l=2&e?new Ct:U;for(i.set(t,n),i.set(n,t);++c(e=null==e?0:Jr(e))&&(e=oi(r+e,0)),b(t,Ge(n,3),e)):-1}function _r(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r-1;return e!==U&&(u=Jr(e),u=0>e?oi(r+u,0):ai(u,r-1)),b(t,Ge(n,3),u,!0)}function vr(t){return null!=t&&t.length?gn(t,1):[]}function br(t){return t&&t.length?t[0]:U}function mr(t){var n=null==t?0:t.length;return n?t[n-1]:U}function xr(t,n){return t&&t.length&&n&&n.length?Un(t,n):t}function jr(t){return null==t?t:si.call(t)}function wr(t){if(!t||!t.length)return[];var n=0;return t=l(t,function(t){if(zr(t))return n=oi(t.length,n),!0}),E(n,function(n){return h(t,A(n))})}function Ar(t,n){if(!t||!t.length)return[];var e=wr(t);return null==n?e:h(e,function(t){return o(n,U,t)})}function kr(t){return(t=e(t)).__chain__=!0,t}function Or(t,n){return n(t)}function Ir(t,n){return(Ro(t)?c:Si)(t,Ge(n,3))}function Er(t,n){return(Ro(t)?function(t,n){for(var e=null==t?0:t.length;e--&&!1!==n(t[e],e,t););return t}:Wi)(t,Ge(n,3))}function Sr(t,n){return(Ro(t)?h:Ln)(t,Ge(n,3))}function Wr(t,n,e){return n=e?U:n,n=t&&null==n?t.length:n,De(t,128,U,U,U,U,n)}function Rr(t,n){var e;if("function"!=typeof n)throw new Ou("Expected a function");return t=Jr(t),function(){return 0<--t&&(e=n.apply(this,arguments)),1>=t&&(n=U),e}}function Mr(t,n,e){function r(n){var e=c,r=f;return c=f=U,d=n,s=t.apply(r,e)}function u(t){var e=t-h;return t-=d,h===U||e>=n||0>e||y&&t>=l}function i(){var t=bo();if(u(t))return o(t);var e,r=qi;e=t-d,t=n-(t-h),e=y?ai(t,l-e):t,p=r(i,e)}function o(t){return p=U,_&&c?r(t):(c=f=U,s)}function a(){var t=bo(),e=u(t);if(c=arguments,f=this,h=t,e){if(p===U)return d=t=h,p=qi(i,n),g?r(t):s;if(y)return p=qi(i,n),r(h)}return p===U&&(p=qi(i,n)),s}var c,f,l,s,p,h,d=0,g=!1,y=!1,_=!0;if("function"!=typeof t)throw new Ou("Expected a function");return n=Qr(n)||0,Nr(e)&&(g=!!e.leading,l=(y="maxWait"in e)?oi(Qr(e.maxWait)||0,n):l,_="trailing"in e?!!e.trailing:_),a.cancel=function(){p!==U&&Ci(p),d=0,c=h=f=p=U},a.flush=function(){return p===U?s:o(bo())},a}function Br(t,n){function e(){var r=arguments,u=n?n.apply(this,r):r[0],i=e.cache;return i.has(u)?i.get(u):(r=t.apply(this,r),e.cache=i.set(u,r)||i,r)}if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new Ou("Expected a function");return e.cache=new(Br.Cache||Et),e}function Lr(t){if("function"!=typeof t)throw new Ou("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Cr(t,n){return t===n||t!=t&&n!=n}function Tr(t){return null!=t&&Ur(t.length)&&!Dr(t)}function zr(t){return qr(t)&&Tr(t)}function Fr(t){if(!qr(t))return!1;var n=xn(t);return"[object Error]"==n||"[object DOMException]"==n||"string"==typeof t.message&&"string"==typeof t.name&&!Kr(t)}function Dr(t){return!!Nr(t)&&("[object Function]"==(t=xn(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function Pr(t){return"number"==typeof t&&t==Jr(t)}function Ur(t){return"number"==typeof t&&-1=t}function Nr(t){var n=void 0===t?"undefined":i(t);return null!=t&&("object"==n||"function"==n)}function qr(t){return null!=t&&"object"==(void 0===t?"undefined":i(t))}function $r(t){return"number"==typeof t||qr(t)&&"[object Number]"==xn(t)}function Kr(t){return!(!qr(t)||"[object Object]"!=xn(t))&&(null===(t=Nu(t))||"function"==typeof(t=Ru.call(t,"constructor")&&t.constructor)&&t instanceof t&&Wu.call(t)==Cu)}function Zr(t){return"string"==typeof t||!Ro(t)&&qr(t)&&"[object String]"==xn(t)}function Vr(t){return"symbol"==(void 0===t?"undefined":i(t))||qr(t)&&"[object Symbol]"==xn(t)}function Hr(t){if(!t)return[];if(Tr(t))return Zr(t)?P(t):ye(t);if(Vu&&t[Vu]){t=t[Vu]();for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}return("[object Map]"==(n=Pi(t))?C:"[object Set]"==n?F:ou)(t)}function Gr(t){return t?(t=Qr(t))===N||t===-N?1.7976931348623157e308*(0>t?-1:1):t==t?t:0:0===t?t:0}function Jr(t){var n=(t=Gr(t))%1;return t==t?n?t-n:t:0}function Yr(t){return t?an(Jr(t),0,4294967295):0}function Qr(t){if("number"==typeof t)return t;if(Vr(t))return q;if(Nr(t)&&(t=Nr(t="function"==typeof t.valueOf?t.valueOf():t)?t+"":t),"string"!=typeof t)return 0===t?t:+t;t=t.replace(ot,"");var n=_t.test(t);return n||bt.test(t)?zt(t.slice(2),n?2:8):yt.test(t)?q:+t}function Xr(t){return _e(t,uu(t))}function tu(t){return null==t?"":Xn(t)}function nu(t,n,e){return(t=null==t?U:bn(t,n))===U?e:t}function eu(t,n){return null!=t&&Xe(t,n,An)}function ru(t){return Tr(t)?Dt(t):Mn(t)}function uu(t){if(Tr(t))t=Dt(t,!0);else if(Nr(t)){var n,e=or(t),r=[];for(n in t)("constructor"!=n||!e&&Ru.call(t,n))&&r.push(n);t=r}else{if(n=[],null!=t)for(e in wu(t))n.push(e);t=n}return t}function iu(t,n){if(null==t)return{};var e=h(Ze(t),function(t){return[t]});return n=Ge(n),Pn(t,e,function(t,e){return n(t,e[0])})}function ou(t){return null==t?[]:W(t,ru(t))}function au(t){return la(tu(t).toLowerCase())}function cu(t){return(t=tu(t))&&t.replace(xt,Xt).replace(It,"")}function fu(t,n,e){return t=tu(t),(n=e?U:n)===U?Rt.test(t)?t.match(St)||[]:t.match(pt)||[]:t.match(n)||[]}function lu(t){return function(){return t}}function su(t){return t}function pu(t){return Rn("function"==typeof t?t:cn(t,1))}function hu(t,n,e){var r=ru(n),u=vn(n,r);null!=e||Nr(n)&&(u.length||!r.length)||(e=n,n=t,t=this,u=vn(n,ru(n)));var i=!(Nr(e)&&"chain"in e&&!e.chain),o=Dr(t);return c(u,function(e){var r=n[e];t[e]=r,o&&(t.prototype[e]=function(){var n=this.__chain__;if(i||n){var e=t(this.__wrapped__);return(e.__actions__=ye(this.__actions__)).push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,d([this.value()],arguments))})}),t}function du(){}function gu(t){return ur(t)?A(pr(t)):function(t){return function(n){return bn(n,t)}}(t)}function yu(){return[]}function _u(){return!1}var vu=(n=null==n?Pt:en.defaults(Pt.Object(),n,en.pick(Pt,Mt))).Array,bu=n.Date,mu=n.Error,xu=n.Function,ju=n.Math,wu=n.Object,Au=n.RegExp,ku=n.String,Ou=n.TypeError,Iu=vu.prototype,Eu=wu.prototype,Su=n["__core-js_shared__"],Wu=xu.prototype.toString,Ru=Eu.hasOwnProperty,Mu=0,Bu=function(){var t=/[^.]+$/.exec(Su&&Su.keys&&Su.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Lu=Eu.toString,Cu=Wu.call(wu),Tu=Pt._,zu=Au("^"+Wu.call(Ru).replace(ut,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fu=qt?n.Buffer:U,Du=n.Symbol,Pu=n.Uint8Array,Uu=Fu?Fu.g:U,Nu=T(wu.getPrototypeOf,wu),qu=wu.create,$u=Eu.propertyIsEnumerable,Ku=Iu.splice,Zu=Du?Du.isConcatSpreadable:U,Vu=Du?Du.iterator:U,Hu=Du?Du.toStringTag:U,Gu=function(){try{var t=Qe(wu,"defineProperty");return t({},"",{}),t}catch(t){}}(),Ju=n.clearTimeout!==Pt.clearTimeout&&n.clearTimeout,Yu=bu&&bu.now!==Pt.Date.now&&bu.now,Qu=n.setTimeout!==Pt.setTimeout&&n.setTimeout,Xu=ju.ceil,ti=ju.floor,ni=wu.getOwnPropertySymbols,ei=Fu?Fu.isBuffer:U,ri=n.isFinite,ui=Iu.join,ii=T(wu.keys,wu),oi=ju.max,ai=ju.min,ci=bu.now,fi=n.parseInt,li=ju.random,si=Iu.reverse,pi=Qe(n,"DataView"),hi=Qe(n,"Map"),di=Qe(n,"Promise"),gi=Qe(n,"Set"),yi=Qe(n,"WeakMap"),_i=Qe(wu,"create"),vi=yi&&new yi,bi={},mi=hr(pi),xi=hr(hi),ji=hr(di),wi=hr(gi),Ai=hr(yi),ki=Du?Du.prototype:U,Oi=ki?ki.valueOf:U,Ii=ki?ki.toString:U,Ei=function(){function t(){}return function(n){return Nr(n)?qu?qu(n):(t.prototype=n,n=new t,t.prototype=U,n):{}}}();e.templateSettings={escape:Q,evaluate:X,interpolate:tt,variable:"",imports:{_:e}},e.prototype=r.prototype,e.prototype.constructor=e,u.prototype=Ei(r.prototype),u.prototype.constructor=u,k.prototype=Ei(r.prototype),k.prototype.constructor=k,At.prototype.clear=function(){this.__data__=_i?_i(null):{},this.size=0},At.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},At.prototype.get=function(t){var n=this.__data__;return _i?"__lodash_hash_undefined__"===(t=n[t])?U:t:Ru.call(n,t)?n[t]:U},At.prototype.has=function(t){var n=this.__data__;return _i?n[t]!==U:Ru.call(n,t)},At.prototype.set=function(t,n){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=_i&&n===U?"__lodash_hash_undefined__":n,this},kt.prototype.clear=function(){this.__data__=[],this.size=0},kt.prototype.delete=function(t){var n=this.__data__;return!(0>(t=Kt(n,t))||(t==n.length-1?n.pop():Ku.call(n,t,1),--this.size,0))},kt.prototype.get=function(t){var n=this.__data__;return 0>(t=Kt(n,t))?U:n[t][1]},kt.prototype.has=function(t){return-1r?(++this.size,e.push([t,n])):e[r][1]=n,this},Et.prototype.clear=function(){this.size=0,this.__data__={hash:new At,map:new(hi||kt),string:new At}},Et.prototype.delete=function(t){return t=Je(this,t).delete(t),this.size-=t?1:0,t},Et.prototype.get=function(t){return Je(this,t).get(t)},Et.prototype.has=function(t){return Je(this,t).has(t)},Et.prototype.set=function(t,n){var e=Je(this,t),r=e.size;return e.set(t,n),this.size+=e.size==r?0:1,this},Ct.prototype.add=Ct.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Ct.prototype.has=function(t){return this.__data__.has(t)},Ft.prototype.clear=function(){this.__data__=new kt,this.size=0},Ft.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},Ft.prototype.get=function(t){return this.__data__.get(t)},Ft.prototype.has=function(t){return this.__data__.has(t)},Ft.prototype.set=function(t,n){var e=this.__data__;if(e instanceof kt){var r=e.__data__;if(!hi||199>r.length)return r.push([t,n]),this.size=++e.size,this;e=this.__data__=new Et(r)}return e.set(t,n),this.size=e.size,this};var Si=me(yn),Wi=me(_n,!0),Ri=xe(),Mi=xe(!0),Bi=vi?function(t,n){return vi.set(t,n),t}:su,Li=Gu?function(t,n){return Gu(t,"toString",{configurable:!0,enumerable:!1,value:lu(n),writable:!0})}:su,Ci=Ju||function(t){return Pt.clearTimeout(t)},Ti=gi&&1/F(new gi([,-0]))[1]==N?function(t){return new gi(t)}:du,zi=vi?function(t){return vi.get(t)}:du,Fi=ni?function(t){return null==t?[]:(t=wu(t),l(ni(t),function(n){return $u.call(t,n)}))}:yu,Di=ni?function(t){for(var n=[];t;)d(n,Fi(t)),t=Nu(t);return n}:yu,Pi=xn;(pi&&"[object DataView]"!=Pi(new pi(new ArrayBuffer(1)))||hi&&"[object Map]"!=Pi(new hi)||di&&"[object Promise]"!=Pi(di.resolve())||gi&&"[object Set]"!=Pi(new gi)||yi&&"[object WeakMap]"!=Pi(new yi))&&(Pi=function(t){var n=xn(t);if(t=(t="[object Object]"==n?t.constructor:U)?hr(t):"")switch(t){case mi:return"[object DataView]";case xi:return"[object Map]";case ji:return"[object Promise]";case wi:return"[object Set]";case Ai:return"[object WeakMap]"}return n});var Ui=Su?Dr:_u,Ni=lr(Bi),qi=Qu||function(t,n){return Pt.setTimeout(t,n)},$i=lr(Li),Ki=function(t){var n=(t=Br(t,function(t){return 500===n.size&&n.clear(),t})).cache;return t}(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(rt,function(t,e,r,u){n.push(r?u.replace(ht,"$1"):e||t)}),n}),Zi=Kn(function(t,n){return zr(t)?sn(t,gn(n,1,zr,!0)):[]}),Vi=Kn(function(t,n){var e=mr(n);return zr(e)&&(e=U),zr(t)?sn(t,gn(n,1,zr,!0),Ge(e,2)):[]}),Hi=Kn(function(t,n){var e=mr(n);return zr(e)&&(e=U),zr(t)?sn(t,gn(n,1,zr,!0),U,e):[]}),Gi=Kn(function(t){var n=h(t,oe);return n.length&&n[0]===t[0]?kn(n):[]}),Ji=Kn(function(t){var n=mr(t),e=h(t,oe);return n===mr(e)?n=U:e.pop(),e.length&&e[0]===t[0]?kn(e,Ge(n,2)):[]}),Yi=Kn(function(t){var n=mr(t),e=h(t,oe);return(n="function"==typeof n?n:U)&&e.pop(),e.length&&e[0]===t[0]?kn(e,U,n):[]}),Qi=Kn(xr),Xi=$e(function(t,n){var e=null==t?0:t.length,r=on(t,n);return Nn(t,h(n,function(t){return er(t,e)?+t:t}).sort(he)),r}),to=Kn(function(t){return te(gn(t,1,zr,!0))}),no=Kn(function(t){var n=mr(t);return zr(n)&&(n=U),te(gn(t,1,zr,!0),Ge(n,2))}),eo=Kn(function(t){var n="function"==typeof(n=mr(t))?n:U;return te(gn(t,1,zr,!0),U,n)}),ro=Kn(function(t,n){return zr(t)?sn(t,n):[]}),uo=Kn(function(t){return ue(l(t,zr))}),io=Kn(function(t){var n=mr(t);return zr(n)&&(n=U),ue(l(t,zr),Ge(n,2))}),oo=Kn(function(t){var n="function"==typeof(n=mr(t))?n:U;return ue(l(t,zr),U,n)}),ao=Kn(wr),co=Kn(function(t){var n;return Ar(t,n="function"==typeof(n=1<(n=t.length)?t[n-1]:U)?(t.pop(),n):U)}),fo=$e(function(t){function n(n){return on(n,t)}var e=t.length,r=e?t[0]:0,i=this.__wrapped__;return!(1=n}),Wo=In(function(){return arguments}())?In:function(t){return qr(t)&&Ru.call(t,"callee")&&!$u.call(t,"callee")},Ro=vu.isArray,Mo=Zt?S(Zt):function(t){return qr(t)&&"[object ArrayBuffer]"==xn(t)},Bo=ei||_u,Lo=Vt?S(Vt):function(t){return qr(t)&&"[object Date]"==xn(t)},Co=Ht?S(Ht):function(t){return qr(t)&&"[object Map]"==Pi(t)},To=Gt?S(Gt):function(t){return qr(t)&&"[object RegExp]"==xn(t)},zo=Jt?S(Jt):function(t){return qr(t)&&"[object Set]"==Pi(t)},Fo=Yt?S(Yt):function(t){return qr(t)&&Ur(t.length)&&!!Bt[xn(t)]},Do=Ce(Bn),Po=Ce(function(t,n){return t<=n}),Uo=be(function(t,n){if(or(n)||Tr(n))_e(n,ru(n),t);else for(var e in n)Ru.call(n,e)&&$t(t,e,n[e])}),No=be(function(t,n){_e(n,uu(n),t)}),qo=be(function(t,n,e,r){_e(n,uu(n),t,r)}),$o=be(function(t,n,e,r){_e(n,ru(n),t,r)}),Ko=$e(on),Zo=Kn(function(t,n){t=wu(t);var e=-1,r=n.length;for((u=2--t)return n.apply(this,arguments)}},e.ary=Wr,e.assign=Uo,e.assignIn=No,e.assignInWith=qo,e.assignWith=$o,e.at=Ko,e.before=Rr,e.bind=mo,e.bindAll=pa,e.bindKey=xo,e.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ro(t)?t:[t]},e.chain=kr,e.chunk=function(t,n,e){if(n=(e?rr(t,n,e):n===U)?1:oi(Jr(n),0),!(e=null==t?0:t.length)||1>n)return[];for(var r=0,u=0,i=vu(Xu(e/n));r(n=e||n===U?1:Jr(n))?0:n,r):[]},e.dropRight=function(t,n,e){var r=null==t?0:t.length;return r?Vn(t,0,0>(n=r-(n=e||n===U?1:Jr(n)))?0:n):[]},e.dropRightWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!0,!0):[]},e.dropWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!0):[]},e.fill=function(t,n,e,r){var u=null==t?0:t.length;if(!u)return[];for(e&&"number"!=typeof e&&rr(t,n,e)&&(e=0,r=u),u=t.length,0>(e=Jr(e))&&(e=-e>u?0:u+e),0>(r=r===U||r>u?u:Jr(r))&&(r+=u),r=e>r?0:Yr(r);e>>0)?(t=tu(t))&&("string"==typeof n||null!=n&&!To(n))&&(!(n=Xn(n))&&Wt.test(t))?fe(P(t),0,e):t.split(n,e):[]},e.spread=function(t,n){if("function"!=typeof t)throw new Ou("Expected a function");return n=null==n?0:oi(Jr(n),0),Kn(function(e){var r=e[n];return e=fe(e,0,n),r&&d(e,r),o(t,this,e)})},e.tail=function(t){var n=null==t?0:t.length;return n?Vn(t,1,n):[]},e.take=function(t,n,e){return t&&t.length?Vn(t,0,0>(n=e||n===U?1:Jr(n))?0:n):[]},e.takeRight=function(t,n,e){var r=null==t?0:t.length;return r?Vn(t,0>(n=r-(n=e||n===U?1:Jr(n)))?0:n,r):[]},e.takeRightWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3),!1,!0):[]},e.takeWhile=function(t,n){return t&&t.length?ee(t,Ge(n,3)):[]},e.tap=function(t,n){return n(t),t},e.throttle=function(t,n,e){var r=!0,u=!0;if("function"!=typeof t)throw new Ou("Expected a function");return Nr(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),Mr(t,n,{leading:r,maxWait:n,trailing:u})},e.thru=Or,e.toArray=Hr,e.toPairs=na,e.toPairsIn=ea,e.toPath=function(t){return Ro(t)?h(t,pr):Vr(t)?[t]:ye(Ki(tu(t)))},e.toPlainObject=Xr,e.transform=function(t,n,e){var r=Ro(t),u=r||Bo(t)||Fo(t);if(n=Ge(n,4),null==e){var i=t&&t.constructor;e=u?r?new i:[]:Nr(t)&&Dr(i)?Ei(Nu(t)):{}}return(u?c:yn)(t,function(t,r,u){return n(e,t,r,u)}),e},e.unary=function(t){return Wr(t,1)},e.union=to,e.unionBy=no,e.unionWith=eo,e.uniq=function(t){return t&&t.length?te(t):[]},e.uniqBy=function(t,n){return t&&t.length?te(t,Ge(n,2)):[]},e.uniqWith=function(t,n){return n="function"==typeof n?n:U,t&&t.length?te(t,U,n):[]},e.unset=function(t,n){return null==t||ne(t,n)},e.unzip=wr,e.unzipWith=Ar,e.update=function(t,n,e){return null==t?t:Zn(t,n,ae(e)(bn(t,n)),void 0)},e.updateWith=function(t,n,e,r){return r="function"==typeof r?r:U,null!=t&&(t=Zn(t,n,ae(e)(bn(t,n)),r)),t},e.values=ou,e.valuesIn=function(t){return null==t?[]:W(t,uu(t))},e.without=ro,e.words=fu,e.wrap=function(t,n){return ko(ae(n),t)},e.xor=uo,e.xorBy=io,e.xorWith=oo,e.zip=ao,e.zipObject=function(t,n){return ie(t||[],n||[],$t)},e.zipObjectDeep=function(t,n){return ie(t||[],n||[],Zn)},e.zipWith=co,e.entries=na,e.entriesIn=ea,e.extend=No,e.extendWith=qo,hu(e,e),e.add=ja,e.attempt=sa,e.camelCase=ra,e.capitalize=au,e.ceil=wa,e.clamp=function(t,n,e){return e===U&&(e=n,n=U),e!==U&&(e=(e=Qr(e))==e?e:0),n!==U&&(n=(n=Qr(n))==n?n:0),an(Qr(t),n,e)},e.clone=function(t){return cn(t,4)},e.cloneDeep=function(t){return cn(t,5)},e.cloneDeepWith=function(t,n){return cn(t,5,n="function"==typeof n?n:U)},e.cloneWith=function(t,n){return cn(t,4,n="function"==typeof n?n:U)},e.conformsTo=function(t,n){return null==n||fn(t,n,ru(n))},e.deburr=cu,e.defaultTo=function(t,n){return null==t||t!=t?n:t},e.divide=Aa,e.endsWith=function(t,n,e){t=tu(t),n=Xn(n);var r=t.length;r=e=e===U?r:an(Jr(e),0,r);return 0<=(e-=n.length)&&t.slice(e,r)==n},e.eq=Cr,e.escape=function(t){return(t=tu(t))&&Y.test(t)?t.replace(G,tn):t},e.escapeRegExp=function(t){return(t=tu(t))&&it.test(t)?t.replace(ut,"\\$&"):t},e.every=function(t,n,e){var r=Ro(t)?f:pn;return e&&rr(t,n,e)&&(n=U),r(t,Ge(n,3))},e.find=so,e.findIndex=yr,e.findKey=function(t,n){return v(t,Ge(n,3),yn)},e.findLast=po,e.findLastIndex=_r,e.findLastKey=function(t,n){return v(t,Ge(n,3),_n)},e.floor=ka,e.forEach=Ir,e.forEachRight=Er,e.forIn=function(t,n){return null==t?t:Ri(t,Ge(n,3),uu)},e.forInRight=function(t,n){return null==t?t:Mi(t,Ge(n,3),uu)},e.forOwn=function(t,n){return t&&yn(t,Ge(n,3))},e.forOwnRight=function(t,n){return t&&_n(t,Ge(n,3))},e.get=nu,e.gt=Eo,e.gte=So,e.has=function(t,n){return null!=t&&Xe(t,n,wn)},e.hasIn=eu,e.head=br,e.identity=su,e.includes=function(t,n,e,r){return t=Tr(t)?t:ou(t),e=e&&!r?Jr(e):0,r=t.length,0>e&&(e=oi(r+e,0)),Zr(t)?e<=r&&-1(e=null==e?0:Jr(e))&&(e=oi(r+e,0)),m(t,n,e)):-1},e.inRange=function(t,n,e){return n=Gr(n),e===U?(e=n,n=0):e=Gr(e),(t=Qr(t))>=ai(n,e)&&t=t},e.isSet=zo,e.isString=Zr,e.isSymbol=Vr,e.isTypedArray=Fo,e.isUndefined=function(t){return t===U},e.isWeakMap=function(t){return qr(t)&&"[object WeakMap]"==Pi(t)},e.isWeakSet=function(t){return qr(t)&&"[object WeakSet]"==xn(t)},e.join=function(t,n){return null==t?"":ui.call(t,n)},e.kebabCase=ua,e.last=mr,e.lastIndexOf=function(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r;if(e!==U&&(u=0>(u=Jr(e))?oi(r+u,0):ai(u,r-1)),n==n){for(e=u+1;e--&&t[e]!==n;);t=e}else t=b(t,j,u,!0);return t},e.lowerCase=ia,e.lowerFirst=oa,e.lt=Do,e.lte=Po,e.max=function(t){return t&&t.length?hn(t,su,jn):U},e.maxBy=function(t,n){return t&&t.length?hn(t,Ge(n,2),jn):U},e.mean=function(t){return w(t,su)},e.meanBy=function(t,n){return w(t,Ge(n,2))},e.min=function(t){return t&&t.length?hn(t,su,Bn):U},e.minBy=function(t,n){return t&&t.length?hn(t,Ge(n,2),Bn):U},e.stubArray=yu,e.stubFalse=_u,e.stubObject=function(){return{}},e.stubString=function(){return""},e.stubTrue=function(){return!0},e.multiply=Oa,e.nth=function(t,n){return t&&t.length?Fn(t,Jr(n)):U},e.noConflict=function(){return Pt._===this&&(Pt._=Tu),this},e.noop=du,e.now=bo,e.pad=function(t,n,e){t=tu(t);var r=(n=Jr(n))?D(t):0;return!n||r>=n?t:Me(ti(n=(n-r)/2),e)+t+Me(Xu(n),e)},e.padEnd=function(t,n,e){t=tu(t);var r=(n=Jr(n))?D(t):0;return n&&rn){var r=t;t=n,n=r}return e||t%1||n%1?(e=li(),ai(t+e*(n-t+Tt("1e-"+((e+"").length-1))),n)):qn(t,n)},e.reduce=function(t,n,e){var r=Ro(t)?g:O,u=3>arguments.length;return r(t,Ge(n,4),e,u,Si)},e.reduceRight=function(t,n,e){var r=Ro(t)?y:O,u=3>arguments.length;return r(t,Ge(n,4),e,u,Wi)},e.repeat=function(t,n,e){return n=(e?rr(t,n,e):n===U)?1:Jr(n),$n(tu(t),n)},e.replace=function(){var t=arguments,n=tu(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},e.result=function(t,n,e){var r=-1,u=(n=ce(n,t)).length;for(u||(u=1,t=U);++r(t=Jr(t))||9007199254740991=i)return t;if(1>(i=e-D(r)))return r;if(e=o?fe(o,0,i).join(""):t.slice(0,i),u===U)return e+r;if(o&&(i+=e.length-i),To(u)){if(t.slice(i).search(u)){var a=e;for(u.global||(u=Au(u.source,tu(gt.exec(u))+"g")),u.lastIndex=0;o=u.exec(a);)var c=o.index;e=e.slice(0,c===U?i:c)}}else t.indexOf(Xn(u),i)!=i&&(-1<(u=e.lastIndexOf(u))&&(e=e.slice(0,u)));return e+r},e.unescape=function(t){return(t=tu(t))&&J.test(t)?t.replace(H,nn):t},e.uniqueId=function(t){var n=++Mu;return tu(t)+n},e.upperCase=fa,e.upperFirst=la,e.each=Ir,e.eachRight=Er,e.first=br,hu(e,function(){var t={};return yn(e,function(n,r){Ru.call(e.prototype,r)||(t[r]=n)}),t}(),{chain:!1}),e.VERSION="4.17.10",c("bind bindKey curry curryRight partial partialRight".split(" "),function(t){e[t].placeholder=e}),c(["drop","take"],function(t,n){k.prototype[t]=function(e){e=e===U?1:oi(Jr(e),0);var r=this.__filtered__&&!n?new k(this):this.clone();return r.__filtered__?r.__takeCount__=ai(e,r.__takeCount__):r.__views__.push({size:ai(e,4294967295),type:t+(0>r.__dir__?"Right":"")}),r},k.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),c(["filter","map","takeWhile"],function(t,n){var e=n+1,r=1==e||3==e;k.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Ge(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),c(["head","last"],function(t,n){var e="take"+(n?"Right":"");k.prototype[t]=function(){return this[e](1).value()[0]}}),c(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");k.prototype[t]=function(){return this.__filtered__?new k(this):this[e](1)}}),k.prototype.compact=function(){return this.filter(su)},k.prototype.find=function(t){return this.filter(t).head()},k.prototype.findLast=function(t){return this.reverse().find(t)},k.prototype.invokeMap=Kn(function(t,n){return"function"==typeof t?new k(this):this.map(function(e){return On(e,t,n)})}),k.prototype.reject=function(t){return this.filter(Lr(Ge(t)))},k.prototype.slice=function(t,n){t=Jr(t);var e=this;return e.__filtered__&&(0n)?new k(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==U&&(e=0>(n=Jr(n))?e.dropRight(-n):e.take(n-t)),e)},k.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},k.prototype.toArray=function(){return this.take(4294967295)},yn(k.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),o=e[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);o&&(e.prototype[n]=function(){function n(t){return t=o.apply(e,d([t],f)),i&&h?t[0]:t}var c=this.__wrapped__,f=i?[1]:arguments,l=c instanceof k,s=f[0],p=l||Ro(c);p&&r&&"function"==typeof s&&1!=s.length&&(l=p=!1);var h=this.__chain__,g=!!this.__actions__.length;s=a&&!h,l=l&&!g;return!a&&p?(c=l?c:new k(this),(c=t.apply(c,f)).__actions__.push({func:Or,args:[n],thisArg:U}),new u(c,h)):s&&l?t.apply(this,f):(c=this.thru(n),s?i?c.value()[0]:c.value():c)})}),c("pop push shift sort splice unshift".split(" "),function(t){var n=Iu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",u=/^(?:pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;if(u&&!this.__chain__){var e=this.value();return n.apply(Ro(e)?e:[],t)}return this[r](function(e){return n.apply(Ro(e)?e:[],t)})}}),yn(k.prototype,function(t,n){var r=e[n];if(r){var u=r.name+"";(bi[u]||(bi[u]=[])).push({name:n,func:r})}}),bi[Ee(U,2).name]=[{name:"wrapper",func:U}],k.prototype.clone=function(){var t=new k(this.__wrapped__);return t.__actions__=ye(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ye(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ye(this.__views__),t},k.prototype.reverse=function(){if(this.__filtered__){var t=new k(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},k.prototype.value=function(){var t,n=this.__wrapped__.value(),e=this.__dir__,r=Ro(n),u=0>e,i=r?n.length:0;t=i;for(var o=this.__views__,a=0,c=-1,f=o.length;++c=this.__values__.length;return{done:t,value:t?U:this.__values__[this.__index__++]}},e.prototype.plant=function(t){for(var n,e=this;e instanceof r;){var u=gr(e);u.__index__=0,u.__values__=U,n?i.__wrapped__=u:n=u;var i=u;e=e.__wrapped__}return i.__wrapped__=t,n},e.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof k?(this.__actions__.length&&(t=new k(this)),(t=t.reverse()).__actions__.push({func:Or,args:[jr],thisArg:U}),new u(t,this.__chain__)):this.thru(jr)},e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=function(){return re(this.__wrapped__,this.__actions__)},e.prototype.first=e.prototype.head,Vu&&(e.prototype[Vu]=function(){return this}),e}();"object"==i(e("./node_modules/webpack/buildin/amd-options.js"))&&e("./node_modules/webpack/buildin/amd-options.js")?(Pt._=en,void 0===(u=function(){return en}.call(n,e,n,r))||(r.exports=u)):Nt?((Nt.exports=en)._=en,Ut._=en):Pt._=en}).call(void 0)}).call(this,e("./node_modules/webpack/buildin/global.js"),e("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/webpack/buildin/amd-options.js":function(t,n){(function(n){t.exports=n}).call(this,{})},"./node_modules/webpack/buildin/global.js":function(t,n,e){"use strict";var r,u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"===("undefined"==typeof window?"undefined":u(window))&&(r=window)}t.exports=r},"./node_modules/webpack/buildin/module.js":function(t,n,e){"use strict";t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./src/web/index.js":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,n){var e=[],r=!0,u=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){u=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(u)throw i}}return e}(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,n){for(var e=0;e0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=e;u||(this.regenCache(),u=[].concat(a(document.querySelectorAll("[data-huron-id][data-huron-type]")))),t=this.getModuleListFromTags(u),Object.keys(t).forEach(function(e){var u=n._modules[e],i=t[e];n.loadModule(e,u,i,!0,r)})}},{key:"cycleSections",value:function(){this.cycleModules(!1,{property:"type",values:["section"],include:!0})}},{key:"cycleStyleguide",value:function(){var t=document.querySelector("[huron-sections]"),n=document.querySelector("[huron-menu]");if(t&&(t.innerHTML="",this.outputSections(null,t),this.cycleSections()),n){if(n.innerHTML="",null===document.querySelector(".section-menu__expand")){var e=document.createElement("button");e.classList.add("section-menu__expand"),e.innerHTML="Sections Menu",document.body.insertBefore(n.appendChild(e),document.body.childNodes[0]),e.addEventListener("click",function(){document.body.classList.toggle("section-menu-open")})}this.outputMenu(null,n)}}},{key:"generateModuleReplaceKey",value:function(t){var n=t;return t.includes("-section.json")?n=this._sectionTemplatePath:t.includes(".json")&&(n=this._templates[t]),"_"+n.replace(/[/.]/g,"_")}},{key:"getMetaFromPath",value:function(t,n){var e=this,r=this._sections.sectionsByPath,i=this._types.filter(function(t){return"prototype"!==t}),o=!1,a=!1;if(-1!==t.indexOf("./prototypes")){var c=Object.keys(this._prototypes).filter(function(n){return e._prototypes[n]===t});if(c.length)o=u(c,1)[0],a="prototype"}else if(t===this._sectionTemplatePath)o="sections-template",a="sections-template";else{var f=[],l=Object.keys(r).filter(function(n){var e=i.filter(function(e){return r[n][e+"Path"]===t});return!!e.length&&(f=e,!0)});if(l&&l.length&&f&&f.length)o=r[l[0]].referenceURI,a=u(f,1)[0]}if(o&&a){var s=this.getModuleRender(a,t,n),p=this.generateModuleReplaceKey(t);if(s)return Object.assign({id:o,type:a,key:t,replaceKey:p,module:n},s)}return console.warn("Module '"+t+"' does not exist on the page\n or is no longer in use"),!1}},{key:"getModuleKeyFromTag",value:function(n){var e=t.getDataAttribute(n,"huron-type"),r=t.getDataAttribute(n,"huron-id"),u=this._sections.sectionsByURI[r];if(r&&e){if(u)return u[e+"Path"];if("prototype"===e)return this._prototypes[r]}return!1}},{key:"getModuleListFromTags",value:function(t){var n=this,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r={},u={};return t&&t.length&&t.forEach(function(t){var i=n.getModuleKeyFromTag(t);i?(r[i]||(r[i]=[]),r[i].push(t)):e&&(u=n.getModuleListFromTags([].concat(a(t.querySelectorAll("[data-huron-id][data-huron-type]"))),!1),Object.keys(u).forEach(function(t){r[t]=r[t]?r[t].concat(u[t]):u[t]}))}),r}},{key:"getModuleRender",value:function(t,n,e){var u=!1,i=!1;return"template"===t&&"function"==typeof e?(u=e,i=this._modules[this._templates[n]]):"sections-template"===t&&"function"==typeof e?u=e:"section"===t&&"object"===(void 0===e?"undefined":r(e))?(u=this._modules[this._sectionTemplatePath],i=e):"template"!==t&&"description"!==t&&"prototype"!==t||"string"!=typeof e?"data"===t&&"object"===(void 0===e?"undefined":r(e))&&(u=this._modules[this._templates[n]],i=e):u=function(){return e},!!u&&{render:u,data:i}}},{key:"loadModule",value:function(n,e,r){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=!0,a=!1;u?a=this.meta[n]:(this.meta[n]=this.getMetaFromPath(n,e),a=this.meta[n]),a&&(i&&(o=t.filterModules(i,a)),o&&this.replaceTemplate(a,r))}},{key:"outputMenu",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=n;Object.keys(r).forEach(function(n){var o=Object.keys(r[n]).length,a=void 0,c=void 0;if(u=t?t+"-"+n:n,i){var f=e._sections.sectionsByURI[u]?e._sections.sectionsByURI[u].header:u,l=document.createElement("ul"),s=document.createElement("li"),p=''+f+"";l.classList.add("section-menu"),s.classList.add("section-menu__item"),s.innerHTML=p,"UL"!==i.tagName&&(a=l.cloneNode(),i.appendChild(a),i=a),o&&((c=l.cloneNode()).classList.add("section-menu--submenu"),s.classList.add("section-menu__item--has-submenu"),s.appendChild(c)),i.appendChild(s),o&&e.outputMenu(u,c,r[n])}})}},{key:"outputSections",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=null;Object.keys(r).forEach(function(o){var a=!1,c=null,f=null,l=n;t?u=t+"-"+o:(u=o,a=!0),n&&((i=document.createElement("div")).dataset.huronId=u,i.dataset.huronType="section",a?((c=document.createElement("div")).classList.add("section--top-level__wrapper"),(f=document.createElement("div")).classList.add("section","section--top-level"),f.appendChild(i),c.appendChild(f),n.appendChild(c),l=c):n.appendChild(i)),Object.keys(r[o]).length&&i&&e.outputSections(u,l,r[o])})}},{key:"provideClassnames",value:function(t){return this._classNames?Object.assign({},t,{classNames:this._classNames}):t}},{key:"regenCache",value:function(){var t=this;Object.keys(this._modules).forEach(function(n){t.meta[n]=t.getMetaFromPath(n,t._modules[n])})}},{key:"removeOldTags",value:function(n,e){if(e){var r=t.getDataAttribute(e,"parent-module"),u=t.getDataAttribute(e,"self-module");if(r===n&&u!==n){var i=u,o=e.previousSibling;i&&(this.removeOldTags(i,o),o=e.previousSibling),e.parentNode.removeChild(e),this.removeOldTags(n,o)}}}},{key:"replaceTemplate",value:function(n,e){var r=this,u=this.validateType(n.type),i=[],c=e,f=!1;c||(c=document.querySelectorAll("[data-huron-id][data-huron-type]")),u?(c.forEach(function(e){var r=t.getDataAttribute(e,"huron-type");t.getDataAttribute(e,"huron-id")===n.id&&r===u&&i.push(e)}),i&&i.length&&n.render&&i.forEach(function(e){var u=e,i=t.getDataAttribute(u,"huron-modifier"),c=u.parentNode,l=(0,o.compose)(r.provideClassnames.bind(r),t.applyModifier)(n.data,i),s=n.render(l),p=t.convertToElement(s).querySelector("template"),h=null;r.removeOldTags(n.replaceKey,u.previousSibling),(h=[].concat(a(p.content.children))).forEach(function(e){var r=e;1===r.nodeType&&(r.dataset.parentModule=n.replaceKey,f=f||t.isSectionHelper(r,n),c.insertBefore(r,u))}),u.dataset.selfModule=n.replaceKey,u.style.display="none",r.cycleModules(h,{property:"key",values:[n.key,r._sectionTemplatePath],include:!1}),f&&r.cycleStyleguide()})):console.warn("Could not render module\n section: "+n.id+"\n type: "+n.type)}},{key:"validateType",value:function(t){return"data"===t?"template":!!this._types.includes(t)&&t}},{key:"modules",set:function(t){this._modules=t,this._moduleIds=Object.keys(t)}},{key:"store",set:function(t){if(this._store=t,this._config=t.config,this._sections=t.sections,this._templates=t.templates,this._prototypes=t.prototypes,this._types=t.types,this._sectionTemplatePath=t.sectionTemplatePath,!(0,o.isEqual)(this._classNames,t.classNames)){var n=!this._classNames;this._classNames=t.classNames,n||this.cycleModules()}}}],[{key:"applyModifier",value:function(t,n){return n&&t&&t[n]?Object.assign({},t[n],{modifier:n}):t}},{key:"convertToElement",value:function(t){var n=document.createElement("div");return n.innerHTML=t,n.firstElementChild}},{key:"filterModules",value:function(t,n){var e=!0;return"object"===(void 0===t?"undefined":r(t))&&{}.hasOwnProperty.call(t,"property")&&{}.hasOwnProperty.call(t,"values")&&{}.hasOwnProperty.call(t,"include")?(e=t.values.filter(function(e){return n[t.property]===e}),Boolean(e.length)===t.include):(console.log(" // eslint-disable-line no-console\n filter "+t+" is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n "),e)}},{key:"getDataAttribute",value:function(t,n){var e=!1;return t.dataset&&(e=t.dataset[n]),!e&&t.getAttribute&&(e=t.getAttribute("data-"+n)),e}},{key:"isSectionHelper",value:function(t,n){return"prototype"===n.type&&(t.hasAttribute("huron-sections")||t.hasAttribute("huron-menu"))}}]),t}();n.default=c},0:function(t,n,e){t.exports=e("./src/web/index.js")}}); +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "../"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/lodash/fp.js": +/*!***********************************!*\ + !*** ./node_modules/lodash/fp.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var _ = __webpack_require__(/*! ./lodash.min */ "./node_modules/lodash/lodash.min.js").runInContext(); +module.exports = __webpack_require__(/*! ./fp/_baseConvert */ "./node_modules/lodash/fp/_baseConvert.js")(_, _); + + +/***/ }), + +/***/ "./node_modules/lodash/fp/_baseConvert.js": +/*!************************************************!*\ + !*** ./node_modules/lodash/fp/_baseConvert.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var mapping = __webpack_require__(/*! ./_mapping */ "./node_modules/lodash/fp/_mapping.js"), + fallbackHolder = __webpack_require__(/*! ./placeholder */ "./node_modules/lodash/fp/placeholder.js"); + +/** Built-in value reference. */ +var push = Array.prototype.push; + +/** + * Creates a function, with an arity of `n`, that invokes `func` with the + * arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} n The arity of the new function. + * @returns {Function} Returns the new function. + */ +function baseArity(func, n) { + return n == 2 + ? function(a, b) { return func.apply(undefined, arguments); } + : function(a) { return func.apply(undefined, arguments); }; +} + +/** + * Creates a function that invokes `func`, with up to `n` arguments, ignoring + * any additional arguments. + * + * @private + * @param {Function} func The function to cap arguments for. + * @param {number} n The arity cap. + * @returns {Function} Returns the new function. + */ +function baseAry(func, n) { + return n == 2 + ? function(a, b) { return func(a, b); } + : function(a) { return func(a); }; +} + +/** + * Creates a clone of `array`. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the cloned array. + */ +function cloneArray(array) { + var length = array ? array.length : 0, + result = Array(length); + + while (length--) { + result[length] = array[length]; + } + return result; +} + +/** + * Creates a function that clones a given object using the assignment `func`. + * + * @private + * @param {Function} func The assignment function. + * @returns {Function} Returns the new cloner function. + */ +function createCloner(func) { + return function(object) { + return func({}, object); + }; +} + +/** + * A specialized version of `_.spread` which flattens the spread array into + * the arguments of the invoked `func`. + * + * @private + * @param {Function} func The function to spread arguments over. + * @param {number} start The start position of the spread. + * @returns {Function} Returns the new function. + */ +function flatSpread(func, start) { + return function() { + var length = arguments.length, + lastIndex = length - 1, + args = Array(length); + + while (length--) { + args[length] = arguments[length]; + } + var array = args[start], + otherArgs = args.slice(0, start); + + if (array) { + push.apply(otherArgs, array); + } + if (start != lastIndex) { + push.apply(otherArgs, args.slice(start + 1)); + } + return func.apply(this, otherArgs); + }; +} + +/** + * Creates a function that wraps `func` and uses `cloner` to clone the first + * argument it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} cloner The function to clone arguments. + * @returns {Function} Returns the new immutable function. + */ +function wrapImmutable(func, cloner) { + return function() { + var length = arguments.length; + if (!length) { + return; + } + var args = Array(length); + while (length--) { + args[length] = arguments[length]; + } + var result = args[0] = cloner.apply(undefined, args); + func.apply(undefined, args); + return result; + }; +} + +/** + * The base implementation of `convert` which accepts a `util` object of methods + * required to perform conversions. + * + * @param {Object} util The util object. + * @param {string} name The name of the function to convert. + * @param {Function} func The function to convert. + * @param {Object} [options] The options object. + * @param {boolean} [options.cap=true] Specify capping iteratee arguments. + * @param {boolean} [options.curry=true] Specify currying. + * @param {boolean} [options.fixed=true] Specify fixed arity. + * @param {boolean} [options.immutable=true] Specify immutable operations. + * @param {boolean} [options.rearg=true] Specify rearranging arguments. + * @returns {Function|Object} Returns the converted function or object. + */ +function baseConvert(util, name, func, options) { + var setPlaceholder, + isLib = typeof name == 'function', + isObj = name === Object(name); + + if (isObj) { + options = func; + func = name; + name = undefined; + } + if (func == null) { + throw new TypeError; + } + options || (options = {}); + + var config = { + 'cap': 'cap' in options ? options.cap : true, + 'curry': 'curry' in options ? options.curry : true, + 'fixed': 'fixed' in options ? options.fixed : true, + 'immutable': 'immutable' in options ? options.immutable : true, + 'rearg': 'rearg' in options ? options.rearg : true + }; + + var forceCurry = ('curry' in options) && options.curry, + forceFixed = ('fixed' in options) && options.fixed, + forceRearg = ('rearg' in options) && options.rearg, + placeholder = isLib ? func : fallbackHolder, + pristine = isLib ? func.runInContext() : undefined; + + var helpers = isLib ? func : { + 'ary': util.ary, + 'assign': util.assign, + 'clone': util.clone, + 'curry': util.curry, + 'forEach': util.forEach, + 'isArray': util.isArray, + 'isError': util.isError, + 'isFunction': util.isFunction, + 'isWeakMap': util.isWeakMap, + 'iteratee': util.iteratee, + 'keys': util.keys, + 'rearg': util.rearg, + 'toInteger': util.toInteger, + 'toPath': util.toPath + }; + + var ary = helpers.ary, + assign = helpers.assign, + clone = helpers.clone, + curry = helpers.curry, + each = helpers.forEach, + isArray = helpers.isArray, + isError = helpers.isError, + isFunction = helpers.isFunction, + isWeakMap = helpers.isWeakMap, + keys = helpers.keys, + rearg = helpers.rearg, + toInteger = helpers.toInteger, + toPath = helpers.toPath; + + var aryMethodKeys = keys(mapping.aryMethod); + + var wrappers = { + 'castArray': function(castArray) { + return function() { + var value = arguments[0]; + return isArray(value) + ? castArray(cloneArray(value)) + : castArray.apply(undefined, arguments); + }; + }, + 'iteratee': function(iteratee) { + return function() { + var func = arguments[0], + arity = arguments[1], + result = iteratee(func, arity), + length = result.length; + + if (config.cap && typeof arity == 'number') { + arity = arity > 2 ? (arity - 2) : 1; + return (length && length <= arity) ? result : baseAry(result, arity); + } + return result; + }; + }, + 'mixin': function(mixin) { + return function(source) { + var func = this; + if (!isFunction(func)) { + return mixin(func, Object(source)); + } + var pairs = []; + each(keys(source), function(key) { + if (isFunction(source[key])) { + pairs.push([key, func.prototype[key]]); + } + }); + + mixin(func, Object(source)); + + each(pairs, function(pair) { + var value = pair[1]; + if (isFunction(value)) { + func.prototype[pair[0]] = value; + } else { + delete func.prototype[pair[0]]; + } + }); + return func; + }; + }, + 'nthArg': function(nthArg) { + return function(n) { + var arity = n < 0 ? 1 : (toInteger(n) + 1); + return curry(nthArg(n), arity); + }; + }, + 'rearg': function(rearg) { + return function(func, indexes) { + var arity = indexes ? indexes.length : 0; + return curry(rearg(func, indexes), arity); + }; + }, + 'runInContext': function(runInContext) { + return function(context) { + return baseConvert(util, runInContext(context), options); + }; + } + }; + + /*--------------------------------------------------------------------------*/ + + /** + * Casts `func` to a function with an arity capped iteratee if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @returns {Function} Returns the cast function. + */ + function castCap(name, func) { + if (config.cap) { + var indexes = mapping.iterateeRearg[name]; + if (indexes) { + return iterateeRearg(func, indexes); + } + var n = !isLib && mapping.iterateeAry[name]; + if (n) { + return iterateeAry(func, n); + } + } + return func; + } + + /** + * Casts `func` to a curried function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity of `func`. + * @returns {Function} Returns the cast function. + */ + function castCurry(name, func, n) { + return (forceCurry || (config.curry && n > 1)) + ? curry(func, n) + : func; + } + + /** + * Casts `func` to a fixed arity function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity cap. + * @returns {Function} Returns the cast function. + */ + function castFixed(name, func, n) { + if (config.fixed && (forceFixed || !mapping.skipFixed[name])) { + var data = mapping.methodSpread[name], + start = data && data.start; + + return start === undefined ? ary(func, n) : flatSpread(func, start); + } + return func; + } + + /** + * Casts `func` to an rearged function if needed. + * + * @private + * @param {string} name The name of the function to inspect. + * @param {Function} func The function to inspect. + * @param {number} n The arity of `func`. + * @returns {Function} Returns the cast function. + */ + function castRearg(name, func, n) { + return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name])) + ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n]) + : func; + } + + /** + * Creates a clone of `object` by `path`. + * + * @private + * @param {Object} object The object to clone. + * @param {Array|string} path The path to clone by. + * @returns {Object} Returns the cloned object. + */ + function cloneByPath(object, path) { + path = toPath(path); + + var index = -1, + length = path.length, + lastIndex = length - 1, + result = clone(Object(object)), + nested = result; + + while (nested != null && ++index < length) { + var key = path[index], + value = nested[key]; + + if (value != null && + !(isFunction(value) || isError(value) || isWeakMap(value))) { + nested[key] = clone(index == lastIndex ? value : Object(value)); + } + nested = nested[key]; + } + return result; + } + + /** + * Converts `lodash` to an immutable auto-curried iteratee-first data-last + * version with conversion `options` applied. + * + * @param {Object} [options] The options object. See `baseConvert` for more details. + * @returns {Function} Returns the converted `lodash`. + */ + function convertLib(options) { + return _.runInContext.convert(options)(undefined); + } + + /** + * Create a converter function for `func` of `name`. + * + * @param {string} name The name of the function to convert. + * @param {Function} func The function to convert. + * @returns {Function} Returns the new converter function. + */ + function createConverter(name, func) { + var realName = mapping.aliasToReal[name] || name, + methodName = mapping.remap[realName] || realName, + oldOptions = options; + + return function(options) { + var newUtil = isLib ? pristine : helpers, + newFunc = isLib ? pristine[methodName] : func, + newOptions = assign(assign({}, oldOptions), options); + + return baseConvert(newUtil, realName, newFunc, newOptions); + }; + } + + /** + * Creates a function that wraps `func` to invoke its iteratee, with up to `n` + * arguments, ignoring any additional arguments. + * + * @private + * @param {Function} func The function to cap iteratee arguments for. + * @param {number} n The arity cap. + * @returns {Function} Returns the new function. + */ + function iterateeAry(func, n) { + return overArg(func, function(func) { + return typeof func == 'function' ? baseAry(func, n) : func; + }); + } + + /** + * Creates a function that wraps `func` to invoke its iteratee with arguments + * arranged according to the specified `indexes` where the argument value at + * the first index is provided as the first argument, the argument value at + * the second index is provided as the second argument, and so on. + * + * @private + * @param {Function} func The function to rearrange iteratee arguments for. + * @param {number[]} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + */ + function iterateeRearg(func, indexes) { + return overArg(func, function(func) { + var n = indexes.length; + return baseArity(rearg(baseAry(func, n), indexes), n); + }); + } + + /** + * Creates a function that invokes `func` with its first argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function() { + var length = arguments.length; + if (!length) { + return func(); + } + var args = Array(length); + while (length--) { + args[length] = arguments[length]; + } + var index = config.rearg ? 0 : (length - 1); + args[index] = transform(args[index]); + return func.apply(undefined, args); + }; + } + + /** + * Creates a function that wraps `func` and applys the conversions + * rules by `name`. + * + * @private + * @param {string} name The name of the function to wrap. + * @param {Function} func The function to wrap. + * @returns {Function} Returns the converted function. + */ + function wrap(name, func) { + var result, + realName = mapping.aliasToReal[name] || name, + wrapped = func, + wrapper = wrappers[realName]; + + if (wrapper) { + wrapped = wrapper(func); + } + else if (config.immutable) { + if (mapping.mutate.array[realName]) { + wrapped = wrapImmutable(func, cloneArray); + } + else if (mapping.mutate.object[realName]) { + wrapped = wrapImmutable(func, createCloner(func)); + } + else if (mapping.mutate.set[realName]) { + wrapped = wrapImmutable(func, cloneByPath); + } + } + each(aryMethodKeys, function(aryKey) { + each(mapping.aryMethod[aryKey], function(otherName) { + if (realName == otherName) { + var data = mapping.methodSpread[realName], + afterRearg = data && data.afterRearg; + + result = afterRearg + ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey) + : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey); + + result = castCap(realName, result); + result = castCurry(realName, result, aryKey); + return false; + } + }); + return !result; + }); + + result || (result = wrapped); + if (result == func) { + result = forceCurry ? curry(result, 1) : function() { + return func.apply(this, arguments); + }; + } + result.convert = createConverter(realName, func); + if (mapping.placeholder[realName]) { + setPlaceholder = true; + result.placeholder = func.placeholder = placeholder; + } + return result; + } + + /*--------------------------------------------------------------------------*/ + + if (!isObj) { + return wrap(name, func); + } + var _ = func; + + // Convert methods by ary cap. + var pairs = []; + each(aryMethodKeys, function(aryKey) { + each(mapping.aryMethod[aryKey], function(key) { + var func = _[mapping.remap[key] || key]; + if (func) { + pairs.push([key, wrap(key, func)]); + } + }); + }); + + // Convert remaining methods. + each(keys(_), function(key) { + var func = _[key]; + if (typeof func == 'function') { + var length = pairs.length; + while (length--) { + if (pairs[length][0] == key) { + return; + } + } + func.convert = createConverter(key, func); + pairs.push([key, func]); + } + }); + + // Assign to `_` leaving `_.prototype` unchanged to allow chaining. + each(pairs, function(pair) { + _[pair[0]] = pair[1]; + }); + + _.convert = convertLib; + if (setPlaceholder) { + _.placeholder = placeholder; + } + // Assign aliases. + each(keys(_), function(key) { + each(mapping.realToAlias[key] || [], function(alias) { + _[alias] = _[key]; + }); + }); + + return _; +} + +module.exports = baseConvert; + + +/***/ }), + +/***/ "./node_modules/lodash/fp/_mapping.js": +/*!********************************************!*\ + !*** ./node_modules/lodash/fp/_mapping.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** Used to map aliases to their real names. */ +exports.aliasToReal = { + + // Lodash aliases. + 'each': 'forEach', + 'eachRight': 'forEachRight', + 'entries': 'toPairs', + 'entriesIn': 'toPairsIn', + 'extend': 'assignIn', + 'extendAll': 'assignInAll', + 'extendAllWith': 'assignInAllWith', + 'extendWith': 'assignInWith', + 'first': 'head', + + // Methods that are curried variants of others. + 'conforms': 'conformsTo', + 'matches': 'isMatch', + 'property': 'get', + + // Ramda aliases. + '__': 'placeholder', + 'F': 'stubFalse', + 'T': 'stubTrue', + 'all': 'every', + 'allPass': 'overEvery', + 'always': 'constant', + 'any': 'some', + 'anyPass': 'overSome', + 'apply': 'spread', + 'assoc': 'set', + 'assocPath': 'set', + 'complement': 'negate', + 'compose': 'flowRight', + 'contains': 'includes', + 'dissoc': 'unset', + 'dissocPath': 'unset', + 'dropLast': 'dropRight', + 'dropLastWhile': 'dropRightWhile', + 'equals': 'isEqual', + 'identical': 'eq', + 'indexBy': 'keyBy', + 'init': 'initial', + 'invertObj': 'invert', + 'juxt': 'over', + 'omitAll': 'omit', + 'nAry': 'ary', + 'path': 'get', + 'pathEq': 'matchesProperty', + 'pathOr': 'getOr', + 'paths': 'at', + 'pickAll': 'pick', + 'pipe': 'flow', + 'pluck': 'map', + 'prop': 'get', + 'propEq': 'matchesProperty', + 'propOr': 'getOr', + 'props': 'at', + 'symmetricDifference': 'xor', + 'symmetricDifferenceBy': 'xorBy', + 'symmetricDifferenceWith': 'xorWith', + 'takeLast': 'takeRight', + 'takeLastWhile': 'takeRightWhile', + 'unapply': 'rest', + 'unnest': 'flatten', + 'useWith': 'overArgs', + 'where': 'conformsTo', + 'whereEq': 'isMatch', + 'zipObj': 'zipObject' +}; + +/** Used to map ary to method names. */ +exports.aryMethod = { + '1': [ + 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create', + 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow', + 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll', + 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse', + 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart', + 'uniqueId', 'words', 'zipAll' + ], + '2': [ + 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith', + 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith', + 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN', + 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference', + 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', + 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex', + 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach', + 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get', + 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection', + 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', + 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', + 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit', + 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial', + 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll', + 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', + 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex', + 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy', + 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', + 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', + 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', + 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', + 'zipObjectDeep' + ], + '3': [ + 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith', + 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr', + 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith', + 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', + 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd', + 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight', + 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', + 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy', + 'xorWith', 'zipWith' + ], + '4': [ + 'fill', 'setWith', 'updateWith' + ] +}; + +/** Used to map ary to rearg configs. */ +exports.aryRearg = { + '2': [1, 0], + '3': [2, 0, 1], + '4': [3, 2, 0, 1] +}; + +/** Used to map method names to their iteratee ary. */ +exports.iterateeAry = { + 'dropRightWhile': 1, + 'dropWhile': 1, + 'every': 1, + 'filter': 1, + 'find': 1, + 'findFrom': 1, + 'findIndex': 1, + 'findIndexFrom': 1, + 'findKey': 1, + 'findLast': 1, + 'findLastFrom': 1, + 'findLastIndex': 1, + 'findLastIndexFrom': 1, + 'findLastKey': 1, + 'flatMap': 1, + 'flatMapDeep': 1, + 'flatMapDepth': 1, + 'forEach': 1, + 'forEachRight': 1, + 'forIn': 1, + 'forInRight': 1, + 'forOwn': 1, + 'forOwnRight': 1, + 'map': 1, + 'mapKeys': 1, + 'mapValues': 1, + 'partition': 1, + 'reduce': 2, + 'reduceRight': 2, + 'reject': 1, + 'remove': 1, + 'some': 1, + 'takeRightWhile': 1, + 'takeWhile': 1, + 'times': 1, + 'transform': 2 +}; + +/** Used to map method names to iteratee rearg configs. */ +exports.iterateeRearg = { + 'mapKeys': [1], + 'reduceRight': [1, 0] +}; + +/** Used to map method names to rearg configs. */ +exports.methodRearg = { + 'assignInAllWith': [1, 0], + 'assignInWith': [1, 2, 0], + 'assignAllWith': [1, 0], + 'assignWith': [1, 2, 0], + 'differenceBy': [1, 2, 0], + 'differenceWith': [1, 2, 0], + 'getOr': [2, 1, 0], + 'intersectionBy': [1, 2, 0], + 'intersectionWith': [1, 2, 0], + 'isEqualWith': [1, 2, 0], + 'isMatchWith': [2, 1, 0], + 'mergeAllWith': [1, 0], + 'mergeWith': [1, 2, 0], + 'padChars': [2, 1, 0], + 'padCharsEnd': [2, 1, 0], + 'padCharsStart': [2, 1, 0], + 'pullAllBy': [2, 1, 0], + 'pullAllWith': [2, 1, 0], + 'rangeStep': [1, 2, 0], + 'rangeStepRight': [1, 2, 0], + 'setWith': [3, 1, 2, 0], + 'sortedIndexBy': [2, 1, 0], + 'sortedLastIndexBy': [2, 1, 0], + 'unionBy': [1, 2, 0], + 'unionWith': [1, 2, 0], + 'updateWith': [3, 1, 2, 0], + 'xorBy': [1, 2, 0], + 'xorWith': [1, 2, 0], + 'zipWith': [1, 2, 0] +}; + +/** Used to map method names to spread configs. */ +exports.methodSpread = { + 'assignAll': { 'start': 0 }, + 'assignAllWith': { 'start': 0 }, + 'assignInAll': { 'start': 0 }, + 'assignInAllWith': { 'start': 0 }, + 'defaultsAll': { 'start': 0 }, + 'defaultsDeepAll': { 'start': 0 }, + 'invokeArgs': { 'start': 2 }, + 'invokeArgsMap': { 'start': 2 }, + 'mergeAll': { 'start': 0 }, + 'mergeAllWith': { 'start': 0 }, + 'partial': { 'start': 1 }, + 'partialRight': { 'start': 1 }, + 'without': { 'start': 1 }, + 'zipAll': { 'start': 0 } +}; + +/** Used to identify methods which mutate arrays or objects. */ +exports.mutate = { + 'array': { + 'fill': true, + 'pull': true, + 'pullAll': true, + 'pullAllBy': true, + 'pullAllWith': true, + 'pullAt': true, + 'remove': true, + 'reverse': true + }, + 'object': { + 'assign': true, + 'assignAll': true, + 'assignAllWith': true, + 'assignIn': true, + 'assignInAll': true, + 'assignInAllWith': true, + 'assignInWith': true, + 'assignWith': true, + 'defaults': true, + 'defaultsAll': true, + 'defaultsDeep': true, + 'defaultsDeepAll': true, + 'merge': true, + 'mergeAll': true, + 'mergeAllWith': true, + 'mergeWith': true, + }, + 'set': { + 'set': true, + 'setWith': true, + 'unset': true, + 'update': true, + 'updateWith': true + } +}; + +/** Used to track methods with placeholder support */ +exports.placeholder = { + 'bind': true, + 'bindKey': true, + 'curry': true, + 'curryRight': true, + 'partial': true, + 'partialRight': true +}; + +/** Used to map real names to their aliases. */ +exports.realToAlias = (function() { + var hasOwnProperty = Object.prototype.hasOwnProperty, + object = exports.aliasToReal, + result = {}; + + for (var key in object) { + var value = object[key]; + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } + } + return result; +}()); + +/** Used to map method names to other names. */ +exports.remap = { + 'assignAll': 'assign', + 'assignAllWith': 'assignWith', + 'assignInAll': 'assignIn', + 'assignInAllWith': 'assignInWith', + 'curryN': 'curry', + 'curryRightN': 'curryRight', + 'defaultsAll': 'defaults', + 'defaultsDeepAll': 'defaultsDeep', + 'findFrom': 'find', + 'findIndexFrom': 'findIndex', + 'findLastFrom': 'findLast', + 'findLastIndexFrom': 'findLastIndex', + 'getOr': 'get', + 'includesFrom': 'includes', + 'indexOfFrom': 'indexOf', + 'invokeArgs': 'invoke', + 'invokeArgsMap': 'invokeMap', + 'lastIndexOfFrom': 'lastIndexOf', + 'mergeAll': 'merge', + 'mergeAllWith': 'mergeWith', + 'padChars': 'pad', + 'padCharsEnd': 'padEnd', + 'padCharsStart': 'padStart', + 'propertyOf': 'get', + 'rangeStep': 'range', + 'rangeStepRight': 'rangeRight', + 'restFrom': 'rest', + 'spreadFrom': 'spread', + 'trimChars': 'trim', + 'trimCharsEnd': 'trimEnd', + 'trimCharsStart': 'trimStart', + 'zipAll': 'zip' +}; + +/** Used to track methods that skip fixing their arity. */ +exports.skipFixed = { + 'castArray': true, + 'flow': true, + 'flowRight': true, + 'iteratee': true, + 'mixin': true, + 'rearg': true, + 'runInContext': true +}; + +/** Used to track methods that skip rearranging arguments. */ +exports.skipRearg = { + 'add': true, + 'assign': true, + 'assignIn': true, + 'bind': true, + 'bindKey': true, + 'concat': true, + 'difference': true, + 'divide': true, + 'eq': true, + 'gt': true, + 'gte': true, + 'isEqual': true, + 'lt': true, + 'lte': true, + 'matchesProperty': true, + 'merge': true, + 'multiply': true, + 'overArgs': true, + 'partial': true, + 'partialRight': true, + 'propertyOf': true, + 'random': true, + 'range': true, + 'rangeRight': true, + 'subtract': true, + 'zip': true, + 'zipObject': true, + 'zipObjectDeep': true +}; + + +/***/ }), + +/***/ "./node_modules/lodash/fp/placeholder.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash/fp/placeholder.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * The default argument placeholder value for methods. + * + * @type {Object} + */ +module.exports = {}; + + +/***/ }), + +/***/ "./node_modules/lodash/lodash.min.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash/lodash.min.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** + * @license + * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + */ +;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; +Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false; +var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true, +Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,Dn=parseInt,Mn=typeof global=="object"&&global&&global.Object===Object&&global,Tn=typeof self=="object"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function("return this")(),Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){ +try{var n=Nn&&Nn.f&&Nn.f("util").types;return n?n:Zn&&Zn.binding&&Zn.binding("util")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I", +"\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C", +"\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i", +"\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r", +"\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij", +"\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),nt=x({"&":"&","<":"<",">":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,"__wrapped__"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n, +this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(cf(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn), +i=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ni("Expected a function"); +return yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s), +l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ +return du(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return du(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?"[object Array]":_o(n),c=o?"[object Array]":_o(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ +if(!(1&r)&&(i=a&&ii.call(n,"__wrapped__"),f=o&&ii.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())), +n=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)), +t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a), +o-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1], +r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T; +for(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){ +return n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){ +return t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!="function")throw new ni("Expected a function");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder, +n}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)), +s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ni("Expected a function");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Li(ku(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ni("Expected a function"); +return r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!="function")throw new ni("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!bu(n); +}function pu(n){return!!gu(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function _u(n){return typeof n=="number"&&n==Au(n)}function vu(n){return typeof n=="number"&&-1=n}function gu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function du(n){return null!=n&&typeof n=="object"}function yu(n){return typeof n=="number"||du(n)&&"[object Number]"==Ot(n)}function bu(n){return!(!du(n)||"[object Object]"!=Ot(n))&&(n=gi(n), +null===n||(n=ii.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n=="string"||!of(n)&&du(n)&&"[object String]"==Ot(n)}function ju(n){return typeof n=="symbol"||du(n)&&"[object Symbol]"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),("[object Map]"==t?W:"[object Set]"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n), +n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n=="number")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=gu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?"":yr(n); +}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n)); +}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,"")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n=="function"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&"chain"in e&&!e.chain),f=pu(n);return r(i,function(r){ +var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn["__core-js_shared__"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){ +var n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu("^"+ui.call(ii).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,"defineProperty"); +return n({},"",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,"DataView"),Fi=je(mn,"Map"),Ni=je(mn,"Promise"),Pi=je(mn,"Set"),Zi=je(mn,"WeakMap"),qi=je(Yu,"create"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){ +function n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], +this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1), +--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n); +},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){ +return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,"toString",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){ +return $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&"[object DataView]"!=_o(new $i(new ArrayBuffer(1)))||Fi&&"[object Map]"!=_o(new Fi)||Ni&&"[object Promise]"!=_o(Ni.resolve())||Pi&&"[object Set]"!=_o(new Pi)||Zi&&"[object WeakMap]"!=_o(new Zi))&&(_o=function(n){ +var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Me(n):"")switch(n){case Gi:return"[object DataView]";case Hi:return"[object Map]";case Ji:return"[object Promise]";case Yi:return"[object Set]";case Qi:return"[object WeakMap]"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ +t.push(e?u.replace(hn,"$1"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(), +r.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T), +mr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,"callee")&&!yi.call(n,"callee")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){ +if(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[]; +},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t=="string"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ni("Expected a function");return r=null==r?0:Li(Au(r),0), +fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n), +n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ni("Expected a function");return gu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{}; +}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){ +return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu, +An.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){ +n=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At); +},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&"[object WeakMap]"==_o(n)},An.isWeakSet=function(n){return du(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)), +t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){ +return""},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length; +return e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+"g")), +u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({ +iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n); +},Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295); +},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({ +func:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+""; +(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n; +},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){ +var e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe), +An}(); true?($n._=rt, !(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return rt}).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))):undefined}).call(this); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1, eval)("this"); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), + +/***/ "./node_modules/webpack/buildin/module.js": +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if (!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), + +/***/ "./src/web/index.js": +/*!**************************!*\ + !*** ./src/web/index.js ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable no-underscore-dangle */ + + +var _fp = __webpack_require__(/*! lodash/fp */ "./node_modules/lodash/fp.js"); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// Accept the huron.js module for Huron development +if (false) {} + +/** Class for inserting HTML snippets at particular insertion points. + * Uses require() to grab html partials, then inserts that html + * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section, + * and [huron-type] corresponding with the required KSS field + */ + +var InsertNodes = function () { + function InsertNodes(modules, store) { + _classCallCheck(this, InsertNodes); + + /** webpack module list in which keys are relative require paths and values are the module contents */ + this._modules = modules; + /** array of module keys */ + this._moduleIds = Object.keys(modules); + /** reference to the huron config */ + this._config = null; + /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */ + this._sections = null; + /** Key/value pairs of partner data and template files */ + this._templates = null; + /** array of prototypes */ + this._prototypes = null; + /** array of valid huron placeholder types */ + this._types = null; + /** array of CSS modules classnames */ + this._classNames = null; + + /** Cache for module metadata */ + this.meta = {}; + + /** Reference to entire memory store */ + this.store = store; + + // Inits + this.cycleModules(); + this.cycleStyleguide(); + } + + /** + * Apply a modifier if one exists + * + * @param {object} data - data with which to render template + * @param {string} modifier - target modifier + * + * @return {string} data - subset of data object for supplied modifier + */ + + + _createClass(InsertNodes, [{ + key: 'cycleModules', + + + /** + * Replace all template markers with the actual template markup. + * + * @param {string} context - The within which to replace markup + * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs + */ + value: function cycleModules() { + var _this = this; + + var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var moduleList = {}; + var elementList = context; + + // We're replacing top-level elements + if (!elementList) { + this.regenCache(); + + // Find all top-level huron placeholders + elementList = [].concat(_toConsumableArray(document.querySelectorAll('[data-huron-id][data-huron-type]'))); + } + + moduleList = this.getModuleListFromTags(elementList); + + // Loop through modules array + Object.keys(moduleList).forEach(function (key) { + var module = _this._modules[key]; + var replaceElements = moduleList[key]; + + _this.loadModule(key, module, replaceElements, true, filter); + }); + } + + /** + * Helper for reloading sections only + */ + + }, { + key: 'cycleSections', + value: function cycleSections() { + this.cycleModules(false, { + property: 'type', + values: ['section'], + include: true + }); + } + + /** + * Reload styleguide sections and menu helpers + */ + + }, { + key: 'cycleStyleguide', + value: function cycleStyleguide() { + var sectionsQuery = document.querySelector('[huron-sections]'); + var menuQuery = document.querySelector('[huron-menu]'); + + // Sections + if (sectionsQuery) { + sectionsQuery.innerHTML = ''; + this.outputSections(null, sectionsQuery); + this.cycleSections(); + } + + // Menu + if (menuQuery) { + menuQuery.innerHTML = ''; + + if (null === document.querySelector('.section-menu__expand')) { + var menuTrigger = document.createElement('button'); + + menuTrigger.classList.add('section-menu__expand'); + menuTrigger.innerHTML = 'Sections Menu'; + document.body.insertBefore(menuQuery.appendChild(menuTrigger), document.body.childNodes[0]); + + // Add menu trigger handler + menuTrigger.addEventListener('click', function () { + document.body.classList.toggle('section-menu-open'); + }); + } + + // Create menu + this.outputMenu(null, menuQuery); + } + } + + /** + * Generate a unique key for targeting markup replacement + * + * @param {string} key - module key (webpack require path) to convert into a replacement key + * @return {string} key - generated replacement key + */ + + }, { + key: 'generateModuleReplaceKey', + value: function generateModuleReplaceKey(key) { + var currentKey = key; + + // If this is section data, use the section template path + if (key.includes('-section.json')) { + currentKey = this._sectionTemplatePath; + // If updated module is a json file, use template key instead + } else if (key.includes('.json')) { + currentKey = this._templates[key]; + } + + return '_' + currentKey.replace(/[/.]/g, '_'); + } + + /** + * Get module metadata from a module require path + * + * @param {string} key - Module require path + * @return {object} containing module id, module type, key and the module contents + */ + + }, { + key: 'getMetaFromPath', + value: function getMetaFromPath(key, module) { + var _this2 = this; + + var sections = this._sections.sectionsByPath; + var templateTypes = this._types.filter(function (type) { + return 'prototype' !== type; + }); + var id = false; + var type = false; + + /* eslint-disable space-unary-ops */ + if (-1 !== key.indexOf('./prototypes')) { + /* eslint-enable space-unary-ops */ + var prototype = Object.keys(this._prototypes).filter(function (name) { + return _this2._prototypes[name] === key; + }); + + if (prototype.length) { + var _prototype = _slicedToArray(prototype, 1); + + id = _prototype[0]; + + type = 'prototype'; + } + } else if (key === this._sectionTemplatePath) { + id = 'sections-template'; + type = 'sections-template'; + } else { + var testTypes = []; + var testSections = Object.keys(sections).filter(function (section) { + var tempTypes = templateTypes.filter(function (currentType) { + return sections[section][currentType + 'Path'] === key; + }); + + if (tempTypes.length) { + testTypes = tempTypes; + return true; + } + + return false; + }); + + if (testSections && testSections.length && testTypes && testTypes.length) { + id = sections[testSections[0]].referenceURI; + var _testTypes = testTypes; + + var _testTypes2 = _slicedToArray(_testTypes, 1); + + type = _testTypes2[0]; + } + } + + if (id && type) { + var renderData = this.getModuleRender(type, key, module); + var replaceKey = this.generateModuleReplaceKey(key); + + if (renderData) { + return Object.assign({ + id: id, type: type, key: key, replaceKey: replaceKey, module: module + }, renderData); + } + } + + console.warn('Module \'' + key + '\' does not exist on the page\n or is no longer in use'); + return false; + } + + /** + * Check if a tag is a huron placeholder and, if so, + * return its associated module key + * + * @param {object} tag - tag to check + * @return {bool} associated module key + */ + + }, { + key: 'getModuleKeyFromTag', + value: function getModuleKeyFromTag(tag) { + // Safari/webkit has some trouble parsing dataset in certain cases. + // This is a fallback method of accessing the same data. + var type = InsertNodes.getDataAttribute(tag, 'huron-type'); + var id = InsertNodes.getDataAttribute(tag, 'huron-id'); + var section = this._sections.sectionsByURI[id]; + + if (id && type) { + if (section) { + return section[type + 'Path']; + } else if ('prototype' === type) { + return this._prototypes[id]; + } + } + + return false; + } + + /** + * Check if an array of elements contains a Huron placeholder + * + * @param {array} tags - array of DOM nodes + * @param {bool} recurse - should we recurse this function with a new array + * @return {object} moduleList - Huron placeholder DOM node + */ + + }, { + key: 'getModuleListFromTags', + value: function getModuleListFromTags(elements) { + var _this3 = this; + + var recurse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var moduleList = {}; + var newList = {}; + + if (elements && elements.length) { + elements.forEach(function (element) { + var moduleKey = _this3.getModuleKeyFromTag(element); + + if (moduleKey) { + if (!moduleList[moduleKey]) { + moduleList[moduleKey] = []; + } + moduleList[moduleKey].push(element); + } else if (recurse) { + newList = _this3.getModuleListFromTags([].concat(_toConsumableArray(element.querySelectorAll('[data-huron-id][data-huron-type]'))), false); + + Object.keys(newList).forEach(function (key) { + moduleList[key] = moduleList[key] ? moduleList[key].concat(newList[key]) : newList[key]; + }); + } + }); + } + + return moduleList; + } + + /** + * Transform every module into a predictable object + * + * @param {object} type - Module metadata + * @param {mixed} module - Module contents + * @return {object} containing render function, render data and module id + */ + + }, { + key: 'getModuleRender', + value: function getModuleRender(type, key, module) { + var render = false; + var data = false; + + if ('template' === type && 'function' === typeof module) { + // It's a render function for a template + render = module; + data = this._modules[this._templates[key]]; + } else if ('sections-template' === type && 'function' === typeof module) { + // It's a kss section template + render = module; + } else if ('section' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { + // It's section data + render = this._modules[this._sectionTemplatePath]; + data = module; + } else if (('template' === type || 'description' === type || 'prototype' === type) && 'string' === typeof module) { + // it's straight HTML + render = function render() { + return module; + }; + } else if ('data' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { + // It's a data file (.json) + render = this._modules[this._templates[key]]; + data = module; + } + + // Only need render, as data will be left empty for static HTML + if (render) { + return { render: render, data: data }; + } + + return false; + } + + /** + * Replace all sections. For hot reloading use when the section template has changed. + * + * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace + * @param {string} key - Module require path + * @param {mixed} module - Module contents + * @param {bool} cached - Whether or not to use cached values for module replacement + * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs + */ + + }, { + key: 'loadModule', + value: function loadModule(key, module, replaceElements) { + var cached = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + var filter = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + var shouldLoad = true; + var moduleMeta = false; + + // Check if we should load from internal module metadata cache + if (cached) { + moduleMeta = this.meta[key]; + } else { + this.meta[key] = this.getMetaFromPath(key, module); + moduleMeta = this.meta[key]; + } + + if (moduleMeta) { + if (filter) { + shouldLoad = InsertNodes.filterModules(filter, moduleMeta); + } + + if (shouldLoad) { + this.replaceTemplate(moduleMeta, replaceElements); + } + } + } + + /* + * Helper function for inserting styleguide sections. + * + * Recurses over sorted styleguide sections and inserts a
        to be used as a menu for each section + */ + + }, { + key: 'outputMenu', + value: function outputMenu(parent, el) { + var _this4 = this; + + var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; + + var templateId = null; + var newEl = el; + + Object.keys(sections).forEach(function (section) { + var hasSubmenu = Object.keys(sections[section]).length; + var menuTarget = void 0; + var nextMenu = void 0; + + if (parent) { + templateId = parent + '-' + section; + } else { + templateId = section; + } + + if (newEl) { + var title = _this4._sections.sectionsByURI[templateId] ? _this4._sections.sectionsByURI[templateId].header : templateId; + var sectionMenu = document.createElement('ul'); + var menuItem = document.createElement('li'); + var link = '' + title + ''; + + sectionMenu.classList.add('section-menu'); + menuItem.classList.add('section-menu__item'); + menuItem.innerHTML = link; + + // Check if this is a UL and, if not, create one + if ('UL' !== newEl.tagName) { + menuTarget = sectionMenu.cloneNode(); + newEl.appendChild(menuTarget); + newEl = menuTarget; + } + + // Has subsections + if (hasSubmenu) { + nextMenu = sectionMenu.cloneNode(); + nextMenu.classList.add('section-menu--submenu'); + menuItem.classList.add('section-menu__item--has-submenu'); + menuItem.appendChild(nextMenu); + } + + newEl.appendChild(menuItem); + + if (hasSubmenu) { + _this4.outputMenu(templateId, nextMenu, sections[section]); + } + } + }); + } + + /** + * Helper function for inserting styleguide sections. + * + * Recurses over sorted styleguide sections and inserts a
        tag with [huron-id] equal to the section template name. + */ + + }, { + key: 'outputSections', + value: function outputSections(parent, el) { + var _this5 = this; + + var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; + + var templateId = null; + var placeholder = null; + + Object.keys(sections).forEach(function (section) { + var istopLevel = false; + var topLevelWrapper = null; + var topLevelSection = null; + var insertionEl = el; + + // Generate section ID and check if it is top-level + if (parent) { + templateId = parent + '-' + section; + } else { + templateId = section; + istopLevel = true; + } + + if (el) { + // Generate huron placeholder for this section + placeholder = document.createElement('div'); + placeholder.dataset.huronId = templateId; + placeholder.dataset.huronType = 'section'; + + if (istopLevel) { + // Generate wrapper to contain top-level section and all subsections underneath it + topLevelWrapper = document.createElement('div'); + topLevelWrapper.classList.add('section--top-level__wrapper'); + + // Generate wrapper for top-level section + topLevelSection = document.createElement('div'); + topLevelSection.classList.add('section', 'section--top-level'); + + // Append wrappers to huron-sections element + topLevelSection.appendChild(placeholder); + topLevelWrapper.appendChild(topLevelSection); + el.appendChild(topLevelWrapper); + insertionEl = topLevelWrapper; + } else { + // If this is not top-level, append placeholder + el.appendChild(placeholder); + } + } + + // Recursively call this function to insert other sections + if (Object.keys(sections[section]).length && placeholder) { + _this5.outputSections(templateId, insertionEl, sections[section]); + } + }); + } + + /** + * Apply a modifier and merge classnames into template data, if it exists + * + * @param {object} data - data with which to render template + * @param {string} modifier - target modifier + * + * @return {string} rendered - the modified HTML module + */ + + }, { + key: 'provideClassnames', + value: function provideClassnames(data) { + console.log(this._classNames); + if (this._classNames) { + return Object.assign({}, data, { classNames: this._classNames }); + } + + return data; + } + + /** + * Regenerate module meta cache + */ + + }, { + key: 'regenCache', + value: function regenCache() { + var _this6 = this; + + Object.keys(this._modules).forEach(function (moduleKey) { + _this6.meta[moduleKey] = _this6.getMetaFromPath(moduleKey, _this6._modules[moduleKey]); + }); + } + + /** + * Recursively remove old tags + * + * @param {string} replaceKey - key of module for which we need to remove old tags + * @param {object} tag - tag to start our search with + * (usually the tag immediately preceding the current placeholder) + */ + + }, { + key: 'removeOldTags', + value: function removeOldTags(replaceKey, tag) { + if (tag) { + var parentModule = InsertNodes.getDataAttribute(tag, 'parent-module'); + var selfModule = InsertNodes.getDataAttribute(tag, 'self-module'); + + if (parentModule === replaceKey && selfModule !== replaceKey) { + // This is a child of the current module, + // so remove it and its children (if applicable) + var childrenModule = selfModule; + var nextTag = tag.previousSibling; + + if (childrenModule) { + this.removeOldTags(childrenModule, nextTag); + // Reset nextTag if we removed a child + nextTag = tag.previousSibling; + } + + tag.parentNode.removeChild(tag); + this.removeOldTags(replaceKey, nextTag); + } + } + } + + /** + * Replace a single template marker with template content. + * + * @param {object} replaceElements - Array of elements to check for Huron placeholders + * @param {object} meta - Module metadata + */ + + }, { + key: 'replaceTemplate', + value: function replaceTemplate(meta, replaceElements) { + var _this7 = this; + + var type = this.validateType(meta.type); + var tags = []; + var replace = replaceElements; + var hasStyleguideHelpers = false; + + if (!replace) { + replace = document.querySelectorAll('[data-huron-id][data-huron-type]'); + } + + if (type) { + replace.forEach(function (tag) { + var tagType = InsertNodes.getDataAttribute(tag, 'huron-type'); + var tagId = InsertNodes.getDataAttribute(tag, 'huron-id'); + + if (tagId === meta.id && tagType === type) { + tags.push(tag); + } + }); + + if (tags && tags.length && meta.render) { + tags.forEach(function (currentTag) { + var modifiedPlaceholder = currentTag; + var modifier = InsertNodes.getDataAttribute(modifiedPlaceholder, 'huron-modifier'); + var parent = modifiedPlaceholder.parentNode; + var data = (0, _fp.compose)(_this7.provideClassnames.bind(_this7), InsertNodes.applyModifier)(meta.data, modifier); + var rendered = meta.render(data); + var renderedTemplate = InsertNodes.convertToElement(rendered).querySelector('template'); + var renderedContents = null; + + // Remove existing module tags + _this7.removeOldTags(meta.replaceKey, modifiedPlaceholder.previousSibling); + + // Get the contents of the rendered template + renderedContents = [].concat(_toConsumableArray(renderedTemplate.content.children)); + + // Insert each tag of the template contents before placeholder + renderedContents.forEach(function (element) { + var newEl = element; + + if (1 === newEl.nodeType) { + newEl.dataset.parentModule = meta.replaceKey; + hasStyleguideHelpers = !hasStyleguideHelpers ? InsertNodes.isSectionHelper(newEl, meta) : hasStyleguideHelpers; + + parent.insertBefore(newEl, modifiedPlaceholder); + } + }); + + // Add module replacement key to this placeholder + modifiedPlaceholder.dataset.selfModule = meta.replaceKey; + + // Hide the placeholder + modifiedPlaceholder.style.display = 'none'; + + // Recursively load modules, excluding the current one + _this7.cycleModules(renderedContents, { + property: 'key', + values: [meta.key, _this7._sectionTemplatePath], + include: false + }); + + if (hasStyleguideHelpers) { + _this7.cycleStyleguide(); + } + }); + } + } else { + console.warn('Could not render module\n section: ' + meta.id + '\n type: ' + meta.type); + } + } + + /** + * Verify specified element is using an acceptable huron type + * + * @param {string} type - type of partial (template, data, description, section or prototype ) + * @return {string} type - huron type or 'template' if invalid + */ + + }, { + key: 'validateType', + value: function validateType(type) { + if ('data' === type) { + return 'template'; + } + + if (!this._types.includes(type)) { + return false; + } + + return type; + } + + /* + * Set new modules object + */ + + }, { + key: 'modules', + set: function set(modules) { + this._modules = modules; + this._moduleIds = Object.keys(modules); + } + + /* + * Set store + */ + + }, { + key: 'store', + set: function set(store) { + this._store = store; + this._config = store.config; + this._sections = store.sections; + this._templates = store.templates; + this._prototypes = store.prototypes; + this._types = store.types; + this._sectionTemplatePath = store.sectionTemplatePath; + + // Completely rerender prototype if any CSS modules classnames change + if (!(0, _fp.isEqual)(this._classNames, store.classNames)) { + var isInitialRender = !this._classNames; + this._classNames = store.classNames; + + // Only rerender after initial render (when classnames is not falsy) + if (!isInitialRender) { + this.cycleModules(); + } + } + } + }], [{ + key: 'applyModifier', + value: function applyModifier(data, modifier) { + // If we have a modifier, use it, otherwise use the entire data set + if (modifier && data && data[modifier]) { + return Object.assign({}, data[modifier], { modifier: modifier }); + } + + return data; + } + + /** + * Get markup from any type of module (html, json or template) + * + * @param {string} content - String corresponding to markup + * @return {object} el.firstElementChild - HTML module + */ + + }, { + key: 'convertToElement', + value: function convertToElement(content) { + var el = document.createElement('div'); + + el.innerHTML = content; + return el.firstElementChild; + } + + /** + * Filter module object by module key or module type + * + * @param {object} filter - Filter for modules. Options: + * @param {string} filter.property - Which property to filter ('key' or 'type') + * @param {array} filter.values - Values for property + * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude) + * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs + * @return {bool} match - determine if modules need to be filtered + */ + + }, { + key: 'filterModules', + value: function filterModules(filter, moduleMeta) { + var match = true; + + // Check if we should filter out any modules + if ('object' === (typeof filter === 'undefined' ? 'undefined' : _typeof(filter)) && {}.hasOwnProperty.call(filter, 'property') && {}.hasOwnProperty.call(filter, 'values') && {}.hasOwnProperty.call(filter, 'include')) { + match = filter.values.filter(function (value) { + return moduleMeta[filter.property] === value; + }); + return Boolean(match.length) === filter.include; + } + + console.log('\n filter ' + filter + ' is not in a valid format.\n module filters must include \'property\', \'values\', and \'include\' properties\n '); + + return match; + } + + /** + * Retrieve a data attribute from a tag using one of two methods + * + * @param {HTMLElement} tag - DOM node on which to check for a data attribute + * @param {string} attr - attribute to check for + * @returns {string} data - contents of data attribute + */ + + }, { + key: 'getDataAttribute', + value: function getDataAttribute(tag, attr) { + var data = false; + + // Check if element has dataset and, if so, use it + if (tag.dataset) { + data = tag.dataset[attr]; + } + + // Fallback to getAttribute for ugly old Safari + if (!data && tag.getAttribute) { + data = tag.getAttribute('data-' + attr); + } + + return data; + } + + /** + * Check if this tag is a styleguide helper + * + * @param {object} tag - tag to check + * @param {object} meta - module metadata + * @return {bool} + */ + + }, { + key: 'isSectionHelper', + value: function isSectionHelper(tag, meta) { + if ('prototype' === meta.type) { + return tag.hasAttribute('huron-sections') || tag.hasAttribute('huron-menu'); + } + + return false; + } + }]); + + return InsertNodes; +}(); + +exports.default = InsertNodes; + +/***/ }), + +/***/ 0: +/*!*****************************!*\ + !*** multi ./src/web/index ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./src/web/index */"./src/web/index.js"); + + +/***/ }) + +/******/ }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js.map b/dist/web/index.js.map index 0006bca..3f62e36 100644 --- a/dist/web/index.js.map +++ b/dist/web/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"],"mappings":"AACA","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap","webpack://huron/./node_modules/lodash/fp.js","webpack://huron/./node_modules/lodash/fp/_baseConvert.js","webpack://huron/./node_modules/lodash/fp/_mapping.js","webpack://huron/./node_modules/lodash/fp/placeholder.js","webpack://huron/./node_modules/lodash/lodash.min.js","webpack://huron/(webpack)/buildin/global.js","webpack://huron/(webpack)/buildin/module.js","webpack://huron/src/web/index.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","var _ = require('./lodash.min').runInContext();\nmodule.exports = require('./fp/_baseConvert')(_, _);\n","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var setPlaceholder,\n isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n placeholder = isLib ? func : fallbackHolder,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isError': util.isError,\n 'isFunction': util.isFunction,\n 'isWeakMap': util.isWeakMap,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isError = helpers.isError,\n isFunction = helpers.isFunction,\n isWeakMap = helpers.isWeakMap,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null &&\n !(isFunction(value) || isError(value) || isWeakMap(value))) {\n nested[key] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n if (mapping.placeholder[realName]) {\n setPlaceholder = true;\n result.placeholder = func.placeholder = placeholder;\n }\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n if (setPlaceholder) {\n _.placeholder = placeholder;\n }\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to track methods with placeholder support */\nexports.placeholder = {\n 'bind': true,\n 'bindKey': true,\n 'curry': true,\n 'curryRight': true,\n 'partial': true,\n 'partialRight': true\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\\s\\S]+?)%>/g,Y=/<%([\\s\\S]+?)%>/g,Q=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,nn=/^\\w*$/,tn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,rn=/[\\\\^$.*+?()[\\]{}|]/g,en=RegExp(rn.source),un=/^\\s+|\\s+$/g,on=/^\\s+/,fn=/\\s+$/,cn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,an=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ln=/,? & /,sn=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,hn=/\\\\(\\\\)?/g,pn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,_n=/\\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\\[object .+?Constructor\\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\\d*)$/,xn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,jn=/($^)/,wn=/['\\n\\r\\u2028\\u2029\\\\]/g,mn=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",An=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+mn,En=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",kn=RegExp(\"['\\u2019]\",\"g\"),Sn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),On=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+En+mn,\"g\"),In=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])|\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])|\\\\d+\",An].join(\"|\"),\"g\"),Rn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Bn={};\nBn[\"[object Float32Array]\"]=Bn[\"[object Float64Array]\"]=Bn[\"[object Int8Array]\"]=Bn[\"[object Int16Array]\"]=Bn[\"[object Int32Array]\"]=Bn[\"[object Uint8Array]\"]=Bn[\"[object Uint8ClampedArray]\"]=Bn[\"[object Uint16Array]\"]=Bn[\"[object Uint32Array]\"]=true,Bn[\"[object Arguments]\"]=Bn[\"[object Array]\"]=Bn[\"[object ArrayBuffer]\"]=Bn[\"[object Boolean]\"]=Bn[\"[object DataView]\"]=Bn[\"[object Date]\"]=Bn[\"[object Error]\"]=Bn[\"[object Function]\"]=Bn[\"[object Map]\"]=Bn[\"[object Number]\"]=Bn[\"[object Object]\"]=Bn[\"[object RegExp]\"]=Bn[\"[object Set]\"]=Bn[\"[object String]\"]=Bn[\"[object WeakMap]\"]=false;\nvar Ln={};Ln[\"[object Arguments]\"]=Ln[\"[object Array]\"]=Ln[\"[object ArrayBuffer]\"]=Ln[\"[object DataView]\"]=Ln[\"[object Boolean]\"]=Ln[\"[object Date]\"]=Ln[\"[object Float32Array]\"]=Ln[\"[object Float64Array]\"]=Ln[\"[object Int8Array]\"]=Ln[\"[object Int16Array]\"]=Ln[\"[object Int32Array]\"]=Ln[\"[object Map]\"]=Ln[\"[object Number]\"]=Ln[\"[object Object]\"]=Ln[\"[object RegExp]\"]=Ln[\"[object Set]\"]=Ln[\"[object String]\"]=Ln[\"[object Symbol]\"]=Ln[\"[object Uint8Array]\"]=Ln[\"[object Uint8ClampedArray]\"]=Ln[\"[object Uint16Array]\"]=Ln[\"[object Uint32Array]\"]=true,\nLn[\"[object Error]\"]=Ln[\"[object Function]\"]=Ln[\"[object WeakMap]\"]=false;var Un={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Cn=parseFloat,Dn=parseInt,Mn=typeof global==\"object\"&&global&&global.Object===Object&&global,Tn=typeof self==\"object\"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function(\"return this\")(),Fn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){\ntry{var n=Nn&&Nn.f&&Nn.f(\"util\").types;return n?n:Zn&&Zn.binding&&Zn.binding(\"util\")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b(\"length\"),Xn=x({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\n\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\n\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\n\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\n\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\n\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),nt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),tt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,\"__wrapped__\"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,\nthis.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(cf(n))return Ir(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),\ni=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!=\"function\")throw new ni(\"Expected a function\");\nreturn yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),\nl[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&\"[object Arguments]\"==Ot(n)}function Ct(n){\nreturn du(n)&&\"[object ArrayBuffer]\"==Ot(n)}function Dt(n){return du(n)&&\"[object Date]\"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?\"[object Array]\":_o(n),c=o?\"[object Array]\":_o(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{\nif(!(1&r)&&(i=a&&ii.call(n,\"__wrapped__\"),f=o&&ii.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),\nn=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),\nt}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),\no-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(\"\"):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){\nreturn n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){\nreturn t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!=\"function\")throw new ni(\"Expected a function\");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,\nn}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),\ns}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Li(ku(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ni(\"Expected a function\");\nreturn r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!=\"function\")throw new ni(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!bu(n);\n}function pu(n){return!!gu(n)&&(n=Ot(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function _u(n){return typeof n==\"number\"&&n==Au(n)}function vu(n){return typeof n==\"number\"&&-1=n}function gu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function du(n){return null!=n&&typeof n==\"object\"}function yu(n){return typeof n==\"number\"||du(n)&&\"[object Number]\"==Ot(n)}function bu(n){return!(!du(n)||\"[object Object]\"!=Ot(n))&&(n=gi(n),\nnull===n||(n=ii.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n==\"string\"||!of(n)&&du(n)&&\"[object String]\"==Ot(n)}function ju(n){return typeof n==\"symbol\"||du(n)&&\"[object Symbol]\"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),(\"[object Map]\"==t?W:\"[object Set]\"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),\nn===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n==\"number\")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=gu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;n=n.replace(un,\"\");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?\"\":yr(n);\n}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));\n}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,\"\")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n==\"function\"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&\"chain\"in e&&!e.chain),f=pu(n);return r(i,function(r){\nvar e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn[\"__core-js_shared__\"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){\nvar n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu(\"^\"+ui.call(ii).replace(rn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,\"defineProperty\");\nreturn n({},\"\",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,\"DataView\"),Fi=je(mn,\"Map\"),Ni=je(mn,\"Promise\"),Pi=je(mn,\"Set\"),Zi=je(mn,\"WeakMap\"),qi=je(Yu,\"create\"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){\nfunction n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:\"\",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],\"__lodash_hash_undefined__\"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?\"__lodash_hash_undefined__\":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),\n--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);\n},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){\nreturn this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,\"toString\",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){\nreturn $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&\"[object DataView]\"!=_o(new $i(new ArrayBuffer(1)))||Fi&&\"[object Map]\"!=_o(new Fi)||Ni&&\"[object Promise]\"!=_o(Ni.resolve())||Pi&&\"[object Set]\"!=_o(new Pi)||Zi&&\"[object WeakMap]\"!=_o(new Zi))&&(_o=function(n){\nvar t=Ot(n);if(n=(n=\"[object Object]\"==t?n.constructor:T)?Me(n):\"\")switch(n){case Gi:return\"[object DataView]\";case Hi:return\"[object Map]\";case Ji:return\"[object Promise]\";case Yi:return\"[object Set]\";case Qi:return\"[object WeakMap]\"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(tn,function(n,r,e,u){\nt.push(e?u.replace(hn,\"$1\"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t==\"function\"?t:T)&&r.pop(),\nr.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),\nmr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,\"callee\")&&!yi.call(n,\"callee\")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){\nif(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];\n},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t==\"string\"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!=\"function\")throw new ni(\"Expected a function\");return r=null==r?0:Li(Au(r),0),\nfr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),\nn},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return gu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};\n}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t==\"function\"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){\nreturn e=typeof e==\"function\"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,\nAn.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){\nn=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,\"\\\\$&\"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);\n},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&\"[object WeakMap]\"==_o(n)},An.isWeakSet=function(n){return du(n)&&\"[object WeakSet]\"==Ot(n)},An.join=function(n,t){return null==n?\"\":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),\nt===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){\nreturn\"\"},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn(\"1e-\"+((r+\"\").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;\nreturn e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(\"\"):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+\"g\")),\nu.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Un.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({\niteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);\n},Un.prototype.invokeMap=fr(function(n,t){return typeof n==\"function\"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);\n},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l==\"function\"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({\nfunc:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+\"\";\n(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:\"wrapper\",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;\n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){\nvar e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),\nAn}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","/* eslint-disable no-underscore-dangle */\nimport { compose, isEqual } from 'lodash/fp';\n\n// Accept the huron.js module for Huron development\nif (module.hot) {\n module.hot.accept();\n}\n\n/** Class for inserting HTML snippets at particular insertion points.\n * Uses require() to grab html partials, then inserts that html\n * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section,\n * and [huron-type] corresponding with the required KSS field\n */\nexport default class InsertNodes {\n constructor(modules, store) {\n /** webpack module list in which keys are relative require paths and values are the module contents */\n this._modules = modules;\n /** array of module keys */\n this._moduleIds = Object.keys(modules);\n /** reference to the huron config */\n this._config = null;\n /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */\n this._sections = null;\n /** Key/value pairs of partner data and template files */\n this._templates = null;\n /** array of prototypes */\n this._prototypes = null;\n /** array of valid huron placeholder types */\n this._types = null;\n /** array of CSS modules classnames */\n this._classNames = null;\n\n /** Cache for module metadata */\n this.meta = {};\n\n /** Reference to entire memory store */\n this.store = store;\n\n // Inits\n this.cycleModules();\n this.cycleStyleguide();\n }\n\n /**\n * Apply a modifier if one exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} data - subset of data object for supplied modifier\n */\n static applyModifier(data, modifier) {\n // If we have a modifier, use it, otherwise use the entire data set\n if (modifier && data && data[modifier]) {\n return Object.assign({}, data[modifier], { modifier });\n }\n\n return data;\n }\n\n /**\n * Get markup from any type of module (html, json or template)\n *\n * @param {string} content - String corresponding to markup\n * @return {object} el.firstElementChild - HTML module\n */\n static convertToElement(content) {\n const el = document.createElement('div');\n\n el.innerHTML = content;\n return el.firstElementChild;\n }\n\n /**\n * Filter module object by module key or module type\n *\n * @param {object} filter - Filter for modules. Options:\n * @param {string} filter.property - Which property to filter ('key' or 'type')\n * @param {array} filter.values - Values for property\n * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude)\n * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs\n * @return {bool} match - determine if modules need to be filtered\n */\n static filterModules(filter, moduleMeta) {\n let match = true;\n\n // Check if we should filter out any modules\n if (\n 'object' === typeof filter &&\n {}.hasOwnProperty.call(filter, 'property') &&\n {}.hasOwnProperty.call(filter, 'values') &&\n {}.hasOwnProperty.call(filter, 'include')\n ) {\n match = filter.values.filter(\n (value) => moduleMeta[filter.property] === value\n );\n return Boolean(match.length) === filter.include;\n }\n\n console.log(`\n filter ${filter} is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n `);\n\n return match;\n }\n\n /**\n * Retrieve a data attribute from a tag using one of two methods\n *\n * @param {HTMLElement} tag - DOM node on which to check for a data attribute\n * @param {string} attr - attribute to check for\n * @returns {string} data - contents of data attribute\n */\n static getDataAttribute(tag, attr) {\n let data = false;\n\n // Check if element has dataset and, if so, use it\n if (tag.dataset) {\n data = tag.dataset[attr];\n }\n\n // Fallback to getAttribute for ugly old Safari\n if (!data && tag.getAttribute) {\n data = tag.getAttribute(`data-${attr}`);\n }\n\n return data;\n }\n\n /**\n * Check if this tag is a styleguide helper\n *\n * @param {object} tag - tag to check\n * @param {object} meta - module metadata\n * @return {bool}\n */\n static isSectionHelper(tag, meta) {\n if ('prototype' === meta.type) {\n return tag.hasAttribute('huron-sections') ||\n tag.hasAttribute('huron-menu');\n }\n\n return false;\n }\n\n /**\n * Replace all template markers with the actual template markup.\n *\n * @param {string} context - The within which to replace markup\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n cycleModules(context = false, filter = false) {\n let moduleList = {};\n let elementList = context;\n\n // We're replacing top-level elements\n if (!elementList) {\n this.regenCache();\n\n // Find all top-level huron placeholders\n elementList = [...document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n )];\n }\n\n moduleList = this.getModuleListFromTags(elementList);\n\n // Loop through modules array\n Object.keys(moduleList).forEach((key) => {\n const module = this._modules[key];\n const replaceElements = moduleList[key];\n\n this.loadModule(key, module, replaceElements, true, filter);\n });\n }\n\n /**\n * Helper for reloading sections only\n */\n cycleSections() {\n this.cycleModules(false, {\n property: 'type',\n values: ['section'],\n include: true,\n });\n }\n\n /**\n * Reload styleguide sections and menu helpers\n */\n cycleStyleguide() {\n const sectionsQuery = document.querySelector('[huron-sections]');\n const menuQuery = document.querySelector('[huron-menu]');\n\n // Sections\n if (sectionsQuery) {\n sectionsQuery.innerHTML = '';\n this.outputSections(null, sectionsQuery);\n this.cycleSections();\n }\n\n // Menu\n if (menuQuery) {\n menuQuery.innerHTML = '';\n\n if (null === document.querySelector('.section-menu__expand')) {\n const menuTrigger = document.createElement('button');\n\n menuTrigger.classList.add('section-menu__expand');\n menuTrigger.innerHTML = 'Sections Menu';\n document.body.insertBefore(\n menuQuery.appendChild(menuTrigger),\n document.body.childNodes[0]\n );\n\n // Add menu trigger handler\n menuTrigger.addEventListener('click', () => {\n document.body.classList.toggle('section-menu-open');\n });\n }\n\n // Create menu\n this.outputMenu(null, menuQuery);\n }\n }\n\n /**\n * Generate a unique key for targeting markup replacement\n *\n * @param {string} key - module key (webpack require path) to convert into a replacement key\n * @return {string} key - generated replacement key\n */\n generateModuleReplaceKey(key) {\n let currentKey = key;\n\n // If this is section data, use the section template path\n if (key.includes('-section.json')) {\n currentKey = this._sectionTemplatePath;\n // If updated module is a json file, use template key instead\n } else if (key.includes('.json')) {\n currentKey = this._templates[key];\n }\n\n return `_${currentKey.replace(/[/.]/g, '_')}`;\n }\n\n /**\n * Get module metadata from a module require path\n *\n * @param {string} key - Module require path\n * @return {object} containing module id, module type, key and the module contents\n */\n getMetaFromPath(key, module) {\n const sections = this._sections.sectionsByPath;\n const templateTypes = this._types.filter((type) => 'prototype' !== type);\n let id = false;\n let type = false;\n\n /* eslint-disable space-unary-ops */\n if (-1 !== key.indexOf('./prototypes')) {\n /* eslint-enable space-unary-ops */\n const prototype = Object.keys(this._prototypes)\n .filter((name) => this._prototypes[name] === key);\n\n if (prototype.length) {\n [id] = prototype;\n type = 'prototype';\n }\n } else if (key === this._sectionTemplatePath) {\n id = 'sections-template';\n type = 'sections-template';\n } else {\n let testTypes = [];\n const testSections = Object.keys(sections).filter((section) => {\n const tempTypes = templateTypes.filter(\n (currentType) => sections[section][`${currentType}Path`] === key\n );\n\n if (tempTypes.length) {\n testTypes = tempTypes;\n return true;\n }\n\n return false;\n });\n\n if (\n testSections &&\n testSections.length &&\n testTypes &&\n testTypes.length\n ) {\n id = sections[testSections[0]].referenceURI;\n [type] = testTypes;\n }\n }\n\n if (id && type) {\n const renderData = this.getModuleRender(type, key, module);\n const replaceKey = this.generateModuleReplaceKey(key);\n\n if (renderData) {\n return Object.assign({\n id, type, key, replaceKey, module,\n }, renderData);\n }\n }\n\n console.warn(\n `Module '${key}' does not exist on the page\n or is no longer in use`\n );\n return false;\n }\n\n /**\n * Check if a tag is a huron placeholder and, if so,\n * return its associated module key\n *\n * @param {object} tag - tag to check\n * @return {bool} associated module key\n */\n getModuleKeyFromTag(tag) {\n // Safari/webkit has some trouble parsing dataset in certain cases.\n // This is a fallback method of accessing the same data.\n const type = InsertNodes.getDataAttribute(tag, 'huron-type');\n const id = InsertNodes.getDataAttribute(tag, 'huron-id');\n const section = this._sections.sectionsByURI[id];\n\n if (id && type) {\n if (section) {\n return section[`${type}Path`];\n } else if ('prototype' === type) {\n return this._prototypes[id];\n }\n }\n\n return false;\n }\n\n /**\n * Check if an array of elements contains a Huron placeholder\n *\n * @param {array} tags - array of DOM nodes\n * @param {bool} recurse - should we recurse this function with a new array\n * @return {object} moduleList - Huron placeholder DOM node\n */\n getModuleListFromTags(elements, recurse = true) {\n const moduleList = {};\n let newList = {};\n\n if (elements && elements.length) {\n elements.forEach((element) => {\n const moduleKey = this.getModuleKeyFromTag(element);\n\n if (moduleKey) {\n if (!moduleList[moduleKey]) {\n moduleList[moduleKey] = [];\n }\n moduleList[moduleKey].push(element);\n } else if (recurse) {\n newList = this.getModuleListFromTags(\n [...element.querySelectorAll('[data-huron-id][data-huron-type]')],\n false\n );\n\n Object.keys(newList).forEach((key) => {\n moduleList[key] = moduleList[key] ?\n moduleList[key].concat(newList[key]) :\n newList[key];\n });\n }\n });\n }\n\n return moduleList;\n }\n\n /**\n * Transform every module into a predictable object\n *\n * @param {object} type - Module metadata\n * @param {mixed} module - Module contents\n * @return {object} containing render function, render data and module id\n */\n getModuleRender(type, key, module) {\n let render = false;\n let data = false;\n\n if ('template' === type && 'function' === typeof module) {\n // It's a render function for a template\n render = module;\n data = this._modules[this._templates[key]];\n } else if (\n 'sections-template' === type &&\n 'function' === typeof module\n ) {\n // It's a kss section template\n render = module;\n } else if (\n 'section' === type &&\n 'object' === typeof module\n ) {\n // It's section data\n render = this._modules[this._sectionTemplatePath];\n data = module;\n } else if (\n ('template' === type || 'description' === type || 'prototype' === type) &&\n 'string' === typeof module\n ) {\n // it's straight HTML\n render = () => module;\n } else if ('data' === type && 'object' === typeof module) {\n // It's a data file (.json)\n render = this._modules[this._templates[key]];\n data = module;\n }\n\n // Only need render, as data will be left empty for static HTML\n if (render) {\n return { render, data };\n }\n\n return false;\n }\n\n /**\n * Replace all sections. For hot reloading use when the section template has changed.\n *\n * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace\n * @param {string} key - Module require path\n * @param {mixed} module - Module contents\n * @param {bool} cached - Whether or not to use cached values for module replacement\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n loadModule(key, module, replaceElements, cached = false, filter = false) {\n let shouldLoad = true;\n let moduleMeta = false;\n\n // Check if we should load from internal module metadata cache\n if (cached) {\n moduleMeta = this.meta[key];\n } else {\n this.meta[key] = this.getMetaFromPath(key, module);\n moduleMeta = this.meta[key];\n }\n\n if (moduleMeta) {\n if (filter) {\n shouldLoad = InsertNodes.filterModules(filter, moduleMeta);\n }\n\n if (shouldLoad) {\n this.replaceTemplate(moduleMeta, replaceElements);\n }\n }\n }\n\n /*\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
          to be used as a menu for each section\n */\n outputMenu(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let newEl = el;\n\n Object.keys(sections).forEach((section) => {\n const hasSubmenu = Object.keys(sections[section]).length;\n let menuTarget;\n let nextMenu;\n\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n }\n\n if (newEl) {\n const title = this._sections\n .sectionsByURI[templateId] ?\n this._sections\n .sectionsByURI[templateId]\n .header :\n templateId;\n const sectionMenu = document.createElement('ul');\n const menuItem = document.createElement('li');\n const link = `${title}`;\n\n sectionMenu.classList.add('section-menu');\n menuItem.classList.add('section-menu__item');\n menuItem.innerHTML = link;\n\n // Check if this is a UL and, if not, create one\n if ('UL' !== newEl.tagName) {\n menuTarget = sectionMenu.cloneNode();\n newEl.appendChild(menuTarget);\n newEl = menuTarget;\n }\n\n // Has subsections\n if (hasSubmenu) {\n nextMenu = sectionMenu.cloneNode();\n nextMenu.classList.add('section-menu--submenu');\n menuItem.classList.add('section-menu__item--has-submenu');\n menuItem.appendChild(nextMenu);\n }\n\n newEl.appendChild(menuItem);\n\n if (hasSubmenu) {\n this.outputMenu(\n templateId,\n nextMenu,\n sections[section]\n );\n }\n }\n });\n }\n\n /**\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
          tag with [huron-id] equal to the section template name.\n */\n outputSections(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let placeholder = null;\n\n Object.keys(sections).forEach((section) => {\n let istopLevel = false;\n let topLevelWrapper = null;\n let topLevelSection = null;\n let insertionEl = el;\n\n // Generate section ID and check if it is top-level\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n istopLevel = true;\n }\n\n if (el) {\n // Generate huron placeholder for this section\n placeholder = document.createElement('div');\n placeholder.dataset.huronId = templateId;\n placeholder.dataset.huronType = 'section';\n\n if (istopLevel) {\n // Generate wrapper to contain top-level section and all subsections underneath it\n topLevelWrapper = document.createElement('div');\n topLevelWrapper.classList.add('section--top-level__wrapper');\n\n // Generate wrapper for top-level section\n topLevelSection = document.createElement('div');\n topLevelSection.classList.add('section', 'section--top-level');\n\n // Append wrappers to huron-sections element\n topLevelSection.appendChild(placeholder);\n topLevelWrapper.appendChild(topLevelSection);\n el.appendChild(topLevelWrapper);\n insertionEl = topLevelWrapper;\n } else {\n // If this is not top-level, append placeholder\n el.appendChild(placeholder);\n }\n }\n\n // Recursively call this function to insert other sections\n if (Object.keys(sections[section]).length && placeholder) {\n this.outputSections(\n templateId,\n insertionEl,\n sections[section]\n );\n }\n });\n }\n\n /**\n * Apply a modifier and merge classnames into template data, if it exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} rendered - the modified HTML module\n */\n provideClassnames(data) {\n console.log(this._classNames);\n if (this._classNames) {\n return Object.assign({}, data, { classNames: this._classNames });\n }\n\n return data;\n }\n\n /**\n * Regenerate module meta cache\n */\n regenCache() {\n Object.keys(this._modules).forEach((moduleKey) => {\n this.meta[moduleKey] = this.getMetaFromPath(\n moduleKey, this._modules[moduleKey]\n );\n });\n }\n\n /**\n * Recursively remove old tags\n *\n * @param {string} replaceKey - key of module for which we need to remove old tags\n * @param {object} tag - tag to start our search with\n * (usually the tag immediately preceding the current placeholder)\n */\n removeOldTags(replaceKey, tag) {\n if (tag) {\n const parentModule = InsertNodes.getDataAttribute(tag, 'parent-module');\n const selfModule = InsertNodes.getDataAttribute(tag, 'self-module');\n\n if (parentModule === replaceKey && selfModule !== replaceKey) {\n // This is a child of the current module,\n // so remove it and its children (if applicable)\n const childrenModule = selfModule;\n let nextTag = tag.previousSibling;\n\n if (childrenModule) {\n this.removeOldTags(childrenModule, nextTag);\n // Reset nextTag if we removed a child\n nextTag = tag.previousSibling;\n }\n\n tag.parentNode.removeChild(tag);\n this.removeOldTags(replaceKey, nextTag);\n }\n }\n }\n\n /**\n * Replace a single template marker with template content.\n *\n * @param {object} replaceElements - Array of elements to check for Huron placeholders\n * @param {object} meta - Module metadata\n */\n replaceTemplate(meta, replaceElements) {\n const type = this.validateType(meta.type);\n const tags = [];\n let replace = replaceElements;\n let hasStyleguideHelpers = false;\n\n if (!replace) {\n replace = document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n );\n }\n\n if (type) {\n replace.forEach((tag) => {\n const tagType = InsertNodes.getDataAttribute(tag, 'huron-type');\n const tagId = InsertNodes.getDataAttribute(tag, 'huron-id');\n\n if (tagId === meta.id && tagType === type) {\n tags.push(tag);\n }\n });\n\n if (tags && tags.length && meta.render) {\n tags.forEach((currentTag) => {\n const modifiedPlaceholder = currentTag;\n const modifier = InsertNodes\n .getDataAttribute(modifiedPlaceholder, 'huron-modifier');\n const parent = modifiedPlaceholder.parentNode;\n const data = compose(\n this.provideClassnames.bind(this),\n InsertNodes.applyModifier\n )(meta.data, modifier);\n const rendered = meta.render(data);\n const renderedTemplate = InsertNodes.convertToElement(rendered)\n .querySelector('template');\n let renderedContents = null;\n\n // Remove existing module tags\n this.removeOldTags(\n meta.replaceKey,\n modifiedPlaceholder.previousSibling\n );\n\n // Get the contents of the rendered template\n renderedContents = [\n ...renderedTemplate.content.children,\n ];\n\n // Insert each tag of the template contents before placeholder\n renderedContents.forEach((element) => {\n const newEl = element;\n\n if (1 === newEl.nodeType) {\n newEl.dataset.parentModule = meta.replaceKey;\n hasStyleguideHelpers = !hasStyleguideHelpers ?\n InsertNodes.isSectionHelper(newEl, meta) :\n hasStyleguideHelpers;\n\n parent.insertBefore(newEl, modifiedPlaceholder);\n }\n });\n\n // Add module replacement key to this placeholder\n modifiedPlaceholder.dataset.selfModule = meta.replaceKey;\n\n // Hide the placeholder\n modifiedPlaceholder.style.display = 'none';\n\n // Recursively load modules, excluding the current one\n this.cycleModules(renderedContents, {\n property: 'key',\n values: [meta.key, this._sectionTemplatePath],\n include: false,\n });\n\n if (hasStyleguideHelpers) {\n this.cycleStyleguide();\n }\n });\n }\n } else {\n console.warn(\n `Could not render module\n section: ${meta.id}\n type: ${meta.type}`\n );\n }\n }\n\n /**\n * Verify specified element is using an acceptable huron type\n *\n * @param {string} type - type of partial (template, data, description, section or prototype )\n * @return {string} type - huron type or 'template' if invalid\n */\n validateType(type) {\n if ('data' === type) {\n return 'template';\n }\n\n if (!this._types.includes(type)) {\n return false;\n }\n\n return type;\n }\n\n /*\n * Set new modules object\n */\n set modules(modules) {\n this._modules = modules;\n this._moduleIds = Object.keys(modules);\n }\n\n /*\n * Set store\n */\n set store(store) {\n this._store = store;\n this._config = store.config;\n this._sections = store.sections;\n this._templates = store.templates;\n this._prototypes = store.prototypes;\n this._types = store.types;\n this._sectionTemplatePath = store.sectionTemplatePath;\n\n // Completely rerender prototype if any CSS modules classnames change\n if (!isEqual(this._classNames, store.classNames)) {\n const isInitialRender = !this._classNames;\n this._classNames = store.classNames;\n\n // Only rerender after initial render (when classnames is not falsy)\n if (!isInitialRender) {\n this.cycleModules();\n }\n }\n }\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnEA;AACA;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/WA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AADA;AACA;;;;;AACA;AACA,aAEA;AACA;AACA;;;;;;AAKA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAuGA;;;;;;AAMA;AAAA;AACA;AADA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AADA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AASA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AA5tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAMA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;AAnIA;;;;;;;;;;;;;;;;A","sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 502f6ec..84646d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,11 +41,6 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" }, - "@types/tapable": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz", - "integrity": "sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ==" - }, "@webassemblyjs/ast": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", @@ -6143,13 +6138,12 @@ } }, "html-webpack-plugin": { - "version": "github:jantimon/html-webpack-plugin#8e4e32463891439d543f79543b53ddd73307c983", + "version": "github:jantimon/html-webpack-plugin#b6df42c7eaacc72bf519e4c084cd747c38df0881", "from": "github:jantimon/html-webpack-plugin#webpack-4", "requires": { - "@types/tapable": "1.0.2", "html-minifier": "^3.2.3", "loader-utils": "^1.1.0", - "lodash": "^4.17.10", + "lodash": "^4.17.3", "pretty-error": "^2.0.2", "tapable": "^1.0.0", "util.promisify": "1.0.0" diff --git a/src/cli/actions.js b/src/cli/actions.js index e69383c..6317f3c 100644 --- a/src/cli/actions.js +++ b/src/cli/actions.js @@ -193,7 +193,7 @@ export function updateClassNames(filepath, store) { if (filepath.includes(classNamesPath)) { const oldClassnames = store.get('classNames'); - const newClassnames = utils.mergeClassnameJSON(classNamesPath); + const newClassnames = utils.getClassnamesFromJSON(classNamesPath); if (!isEqual(oldClassnames, newClassnames)) { return store.set('classNames', newClassnames); diff --git a/src/cli/defaultStore.js b/src/cli/defaultStore.js index 4dbd88c..6a5ef11 100644 --- a/src/cli/defaultStore.js +++ b/src/cli/defaultStore.js @@ -1,7 +1,7 @@ import { Map } from 'immutable'; import generateConfig from './generateConfig'; -import { mergeClassnameJSON } from './utils'; +// import { getClassnamesFromJSON } from './utils'; // Create initial data structure // Merge Huron default webpack config with user config @@ -26,7 +26,7 @@ const defaultStore = Map({ 'sections-template', ], config: Map(config.huron), - classNames: mergeClassnameJSON(config.huron.classNames), + classNames: config.huron.classNames, sections: Map({ sectionsByPath: Map({}), sectionsByURI: Map({}), diff --git a/src/cli/fileWatcher.js b/src/cli/fileWatcher.js index 6ae1182..e122bb1 100644 --- a/src/cli/fileWatcher.js +++ b/src/cli/fileWatcher.js @@ -32,7 +32,8 @@ watchedFiles.push(path.resolve(huron.get('sectionTemplate'))); // Watch cssmodules classname files (if they exist) if (huron.get('classNames')) { watchedFiles.push( - `${path.resolve(huron.get('classNames'))}/*.json` + // `${path.resolve(huron.get('classNames'))}/*.json` + path.resolve(huron.get('classNames')) ); } diff --git a/src/cli/utils.js b/src/cli/utils.js index 1f317e6..8b8b22d 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -315,44 +315,65 @@ export function matchKssDir(filepath, huron) { * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) */ -export function mergeClassnameJSON(directory) { - let files; +// Have the huron config provide a path to a file that provides the classnames mainfest +// and use wahtever is in that +export function getClassnamesFromJSON(filepath) { + const fileInfo = path.parse(filepath); + let classNames = {}; - // If no config is provided, return immediately - if (!directory) { - return {}; - } - - // Try to read through classnames directory - try { - files = fs.readdirSync(directory); - } catch (e) { - console.warn(chalk.red(e)); - } - - // Merge classname json files - const classNamesMerged = files.reduce((acc, file) => { - const fileInfo = path.parse(file); - let classNames = {}; - - if ('.json' === fileInfo.ext) { - try { - const contents = fs.readFileSync( - path.join(directory, file), - 'utf8' - ); - classNames = JSON.parse(contents); - } catch (e) { - console.warn(chalk.red(e)); - } + if ('.json' === fileInfo.ext) { + try { + const contents = fs.readFileSync( + filepath, + 'utf8' + ); + classNames = JSON.parse(contents); + } catch (e) { + console.warn(chalk.red(e)); } + } - return Object.assign({}, acc, { [fileInfo.name]: classNames }); - }, {}); - - return classNamesMerged; + return { [filepath]: classNames }; } +// export function mergeClassnameJSON(directory) { +// let files; + +// // If no config is provided, return immediately +// if (!directory) { +// return {}; +// } + +// // Try to read through classnames directory +// try { +// files = fs.readdirSync(directory); +// } catch (e) { +// console.warn(chalk.red(e)); +// } + +// // Merge classname json files +// const classNamesMerged = files.reduce((acc, file) => { +// const fileInfo = path.parse(file); +// let classNames = {}; + +// if ('.json' === fileInfo.ext) { +// try { +// const contents = fs.readFileSync( +// path.join(directory, file), +// 'utf8' +// ); +// classNames = JSON.parse(contents); +// } catch (e) { +// console.warn(chalk.red(e)); +// } +// } + +// return Object.assign({}, acc, { [fileInfo.name]: classNames }); +// }, {}); + +// return classNamesMerged; +// } + /** * Remove the trailing slash from a provided directory * From f55dfe29e88b67ba4f00b360a67d9ba0f44b49b6 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Tue, 5 Jun 2018 14:48:30 -0700 Subject: [PATCH 18/24] Fix mysterious error where bundle was not injected properly. --- src/cli/generateConfig.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cli/generateConfig.js b/src/cli/generateConfig.js index a54201b..26b353f 100644 --- a/src/cli/generateConfig.js +++ b/src/cli/generateConfig.js @@ -185,7 +185,6 @@ function configurePrototypes(huron, config) { huron.root, 'huron-assets/prototypeTemplate.hbs' ), - inject: false, chunks: [huron.entry], }; const newConfig = config; From dbdd8ec9ac1cb200beaaed7473a86aa015794b77 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Tue, 5 Jun 2018 15:09:39 -0700 Subject: [PATCH 19/24] Refactor so that it will use a single filepath for css modules. The directory system not working with the WP implementation that requires a single JSON manifest. --- README.md | 6 +- dist/cli/index.js | 2391 ++++++++++++++++++++++++++++++++++- dist/cli/index.js.map | 2 +- src/cli/defaultStore.js | 4 +- src/cli/utils.js | 50 +- src/defaultConfig/README.md | 2 +- 6 files changed, 2403 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index ecb325c..5eed5eb 100644 --- a/README.md +++ b/README.md @@ -79,9 +79,11 @@ In Huron, everything is a "prototype" (even a style guide). Unlike previous vers * A separate HTML document is automatically built for each of your configured prototypes using the HTML webpack plugin and a custom EJS [template](templates/prototype-template.ejs). More information on this can be found in the [templates readme](templates/README.md). ## Using CSS Modules -If you're using CSS modules in your production site, it makes sense to also use it when developing in-browser prototypes. Huron supports usage of certain CSS modules implementations (specifically any that is capable of producing JSON output containing localized classes). All that's needed in order to configure this is the `classNames` configuration property, more details for which are in the [configuration docs](src/default-config/README.md). Once you have that set up, all classes will be be provided to every template. These classes are available on a `classNames` object, under which all classes are nested and organized by filename. For example, if your build produces two JSON files for localized classes called `article.json` and `home.json`, you can access those classes in your huron templates via `classNames.article[className]` and `classNames.home[className]` respectively. +If you're using CSS modules in your production site, it makes sense to also use it when developing in-browser prototypes. Huron supports usage of certain CSS modules implementations (specifically any that is capable of producing JSON output containing localized classes). All that's needed in order to configure this is the `classNames` configuration property, more details for which are in the [configuration docs](src/default-config/README.md). -A sample of how to set this up can be found in the [`huron-examples` repo](https://github.com/alleyinteractive/huron-examples) +Once you have that set up, all classes will be be provided to every template. These classes are available on a `classNames` object, under which all classes are nested and organized by filename. For example, if your build produces two JSON files for localized classes called `article.json` and `home.json`, you can access those classes in your huron templates via `classNames.article[className]` and `classNames.home[className]` respectively. + +A sample of how to set this up can be found in the [`huron-examples` repo](https://github.com/alleyinteractive/huron-examples). (Note: Needs to be updated to show a filepath and not a directory). ## For more specific information This file contains basic information on Huron installation and writing prototypes. However, there are several other subsections of this documentation: diff --git a/dist/cli/index.js b/dist/cli/index.js index fe8b2df..63c451e 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2 +1,2391 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let r,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(r=o.default.parse(t.kssPath),l=o.default.join(r.dir,`${r.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(s.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const r=n.get("config"),s=d(e.dir,r);if(s){const l=o.default.relative(o.default.resolve(a,s),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?r.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{r.default.removeSync(n),console.log(s.default.green(`Removing ${t}`))}catch(e){console.log(s.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(r.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return r.default.outputFileSync(i,l),console.log(s.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let r=!1;r=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return r},t.matchKssDir=d,t.getClassnamesFromJSON=function(e){let t={};if(".json"===o.default.parse(e).ext)try{const n=r.default.readFileSync(e,"utf8");t=JSON.parse(n)}catch(e){console.warn(s.default.red(e))}return{[e]:t}},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),r=l(n(2)),s=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const r=o.get("types"),s=".scss"!==n?n:".html";return-1===r.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${s}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{r.default.outputFileSync(c,d),console.log(s.default.green(`Writing ${i}`))}catch(e){console.log(s.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=s(n(22)),r=s(n(0));function s(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",r.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",r.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,r=n(17),s=n(16);const l=(0,((o=s)&&o.__esModule?o:{default:o}).default)();l.huron.kss=[].concat(l.huron.kss);const a=(0,r.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,r.Map)(l.huron),classNames:l.huron.classNames,sections:(0,r.Map)({sectionsByPath:(0,r.Map)({}),sectionsByURI:(0,r.Map)({}),sorted:{}}),templates:(0,r.Map)({}),prototypes:(0,r.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=a,t.config=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),r=l(n(2)),s=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=r.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),s.default);r.default.outputFileSync(o.default.join(n,"index.js"),i),r.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,s=n.get("config"),l=o.default.join(a,s.get("root"),"huron-assets");r.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=r.default.readFileSync(e,"utf8")}catch(t){console.log(s.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const r=".json"===o.default.parse(e).ext?"data":"template",s=t,a=n,u=l.removeFile(s.referenceURI,r,e,a);return delete s[`${r}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",s.kssPath],s).setIn(["sections","sectionsByURI",s.referenceURI],s)};var o=a(n(0)),r=a(n(2)),s=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,r=n(9),s=n(0),l=(o=s)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(l.default.resolve(u.get("classNames"))),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new r.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(0),s=(o=r)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:s.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),r=l(n(0)),s=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:r.default.join(process.cwd(),e),publicPath:s.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[r.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",r.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[r.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[r.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[r.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function({entry:e,root:t,port:n},r){const s=r.entry[e],l=u.default.production?[]:[`webpack-dev-server/client/index.js?http://localhost:${n}/`,"webpack/hot/dev-server"];return Object.assign({},r,{entry:{[e]:Array.prototype.concat(l,o.default.join(p,t,"huron-assets/index"),s)}})}(t,e)),e=function(e,t){const n=e.templates.rule||{},r=t;return n.include=[o.default.join(p,e.root,e.output)],r.module=r.module||{},r.module.rules=r.module.rules||r.module.loaders||[],r.module.rules=m.module.rules.concat(r.module.rules,n),r}(t,e),delete(e=function(e,t){const n=s.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),r={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),inject:!1,chunks:[e.entry]},l=t;return s.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},r,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},r,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),r=f(n(15)),s=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=r.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=s.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(s.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(s.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(s.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new r.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),r=c(n(20)),s=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=r.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,s.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,r){const s=o.default.parse(e),l=o.default.join(s.dir,`${s.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=t[r[0]]||{};const l=t;if(10!==t);l[r[0]]=e(s,t.join(o),o)}else l[r[0]]=s;return l}(r.getIn(["sections","sorted"]),t.reference,r.get("referenceDelimiter")),d=Object.assign({},n,t);let f=r;d.kssPath=e,i?f=function(e,t,n,o){const r=n,s=o;if(p(t,n,"markup"))return r.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),r.templateContent=n.markup,s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r);return s}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,r),f=function(e,t,n,r){const s=o.default.format(e),l=n;let a="",i="",c=r;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",s],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(s,n,d,f));return f=function(e,t,n,o){const r=n,s=o;return p(t,n,"description")?(r.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),s.setIn(["sections","sectionsByPath",e],r).setIn(["sections","sectionsByURI",n.referenceURI],r)):s}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),r=c(n(2)),s=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const r=o.default.parse(e);return t.reference&&t.referenceURI?f(t,r,n,!0):n}function f(e,t,n,r){const s=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const r=n.split(o);const s=Object.keys(t[r[0]]);const l=t;if(s.length){if(10!==t);l[r[0]]=e(l[r[0]],t.join(o),o)}}else delete l[r[0]];return l}(s,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),r&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=r.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=s.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=s.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return s.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=r.default.readFileSync(e,"utf8");if(l){const o=s.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),r=s.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],r)};var o=l(n(0)),r=l(n(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,r=0){const s=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(s){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,r),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,r),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),s=o.default.parse(e);let c="",d=null,f=t;switch(s.ext){case".html":(d=i.getSection(s.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):s.dir.includes("prototypes")&&s.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===s.ext?"data":"markup",(d=i.getSection(s.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(r.default.red(`Could not delete: ${s.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.getClassnamesFromJSON(n);if(!(0,s.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),r=c(n(3)),s=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),s=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(s.ext){case".html":if(d=i.getSection(s.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(s.dir.includes("prototypes")&&s.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(r.default.red(`Failed to write file: ${s.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===s.ext?"data":"markup",d=i.getSection(s.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(r.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),r=n(28),s=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,r.initFiles)(c.default.watched(),i.defaultStore);(0,s.requireTemplates)(p),(0,s.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,r.updateClassNames)(t,p),(0,s.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(t,p),p=(0,r.updateFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,r.deleteFile)(e,p),(0,s.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "../"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./config/devServer.config.js": +/*!************************************!*\ + !*** ./config/devServer.config.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = huron => ({ + hot: true, + host: 'localhost', + quiet: false, + noInfo: false, + overlay: true, + stats: { + colors: true, + hash: false, + version: false, + assets: false, + chunks: false, + modules: false, + reasons: false, + children: false, + source: false + }, + publicPath: `/${huron.root}` +}); + +/***/ }), + +/***/ "./node_modules/raw-loader/index.js!./node_modules/babel-loader/lib/index.js!./templates/hotTemplate.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/raw-loader!./node_modules/babel-loader/lib!./templates/hotTemplate.js ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}" + +/***/ }), + +/***/ "./src/cli/actions.js": +/*!****************************!*\ + !*** ./src/cli/actions.js ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.initFiles = initFiles; +exports.updateFile = updateFile; +exports.deleteFile = deleteFile; +exports.updateClassNames = updateClassNames; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _isEqual = __webpack_require__(/*! lodash/isEqual */ "lodash/isEqual"); + +var _isEqual2 = _interopRequireDefault(_isEqual); + +var _handleHTML = __webpack_require__(/*! ./handleHTML */ "./src/cli/handleHTML.js"); + +var _handleTemplates = __webpack_require__(/*! ./handleTemplates */ "./src/cli/handleTemplates.js"); + +var _handleKSS = __webpack_require__(/*! ./handleKSS */ "./src/cli/handleKSS.js"); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var utils = _interopRequireWildcard(_utils); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Recursively loop through initial watched files list from Gaze. + * + * @param {object} data - object containing directory and file paths + * @param {object} store - memory store + * @return {object} newStore - map object of entire data store + */ +function initFiles(data, store, depth = 0) { + const type = Object.prototype.toString.call(data); + const huron = store.get('config'); + let newStore = store; + let info; + let files; + + switch (type) { + case '[object Object]': + files = Object.keys(data); + newStore = files.reduce((prevStore, file) => initFiles(data[file], prevStore, depth), newStore); + break; + + case '[object Array]': + newStore = data.reduce((prevStore, file) => initFiles(file, prevStore, depth), newStore); + break; + + case '[object String]': + info = _path2.default.parse(data); + + // Only call update if data is a filepath and it's within the KSS source directory + if (info.ext && !data.includes(huron.get('classNames'))) { + newStore = updateFile(data, store); + } + break; + + default: + break; + } + + return newStore; +} + +/** + * Logic for updating and writing file information based on file type (extension) + * + * @param {string} filepath - path to updated file. usually passed in from Gaze + * @param {object} store - memory store + * @return {object} store - map object of map object of entire data store + */ +/** + * @module cli/actions + */ + +// Imports +function updateFile(filepath, store) { + const huron = store.get('config'); + const file = _path2.default.parse(filepath); + let field; + let section; + + if (filepath.includes(huron.get('sectionTemplate'))) { + return utils.writeSectionTemplate(filepath, store); + } + + switch (file.ext) { + // Plain HTML template, external + case '.html': + section = utils.getSection(file.base, 'markup', store); + + if (section) { + return (0, _handleHTML.updateHTML)(filepath, section, store); + } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { + return (0, _handleHTML.updatePrototype)(filepath, store); + } + + console.log(_chalk2.default.red(`Failed to write file: ${file.name}`)); + break; + + // Handlebars template, external + case huron.get('templates').extension: + case '.json': + field = '.json' === file.ext ? 'data' : 'markup'; + section = utils.getSection(file.base, field, store); + + if (section) { + return (0, _handleTemplates.updateTemplate)(filepath, section, store); + } + + console.log(_chalk2.default.red(`Failed to find KSS section for ${filepath}`)); + + break; + + // KSS documentation (default extension is `.css`) + // Will also output a template if markup is inline + // Note: inline markup does _not_ support handlebars currently + case huron.get('kssExtension'): + return (0, _handleKSS.updateKSS)(filepath, store); + + // This should never happen if Gaze is working properly + default: + return store; + } + + return store; +} + +/** + * Logic for deleting file information and files based on file type (extension) + * + * @param {string} filepath - path to updated file. usually passed in from Gaze + * @param {object} store - memory store + * @return {object} newStore - map object of map object of entire data store + */ +function deleteFile(filepath, store) { + const huron = store.get('config'); + const file = _path2.default.parse(filepath); + let field = ''; + let section = null; + let newStore = store; + + switch (file.ext) { + // Plain HTML template, external + case '.html': + section = utils.getSection(file.base, 'markup', store); + + if (section) { + newStore = (0, _handleHTML.deleteHTML)(filepath, section, store); + } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { + newStore = (0, _handleHTML.deletePrototype)(filepath, store); + } + break; + + case huron.get('templates').extension: + case '.json': + field = '.json' === file.ext ? 'data' : 'markup'; + section = utils.getSection(file.base, field, store); + + if (section) { + newStore = (0, _handleTemplates.deleteTemplate)(filepath, section, store); + } + break; + + case huron.get('kssExtension'): + section = utils.getSection(filepath, false, store); + + if (section) { + newStore = (0, _handleKSS.deleteKSS)(filepath, section, store); + } + break; + + default: + console.warn(_chalk2.default.red(`Could not delete: ${file.name}`)); + break; + } + + return newStore; +} + +/** + * Logic for updating localized classnames from CSS modules + * + * @param {string} filepath - path to updated file. usually passed in from Gaze + * @param {object} store - memory store + * + * @return void + */ +function updateClassNames(filepath, store) { + const classNamesPath = store.getIn(['config', 'classNames']); + + if (filepath.includes(classNamesPath)) { + const oldClassnames = store.get('classNames'); + const newClassnames = utils.getClassnamesFromJSON(classNamesPath); + + if (!(0, _isEqual2.default)(oldClassnames, newClassnames)) { + return store.set('classNames', newClassnames); + } + } + + return store; +} + +/***/ }), + +/***/ "./src/cli/defaultStore.js": +/*!*********************************!*\ + !*** ./src/cli/defaultStore.js ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.config = exports.defaultStore = undefined; + +var _immutable = __webpack_require__(/*! immutable */ "immutable"); + +var _generateConfig = __webpack_require__(/*! ./generateConfig */ "./src/cli/generateConfig.js"); + +var _generateConfig2 = _interopRequireDefault(_generateConfig); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Create initial data structure + +// Merge Huron default webpack config with user config +const config = (0, _generateConfig2.default)(); + +// Make sure the kss option is represented as an array +config.huron.kss = [].concat(config.huron.kss); + +/* eslint-disable */ +/** + * Initial structure for immutable data store + * + * @global + */ +const defaultStore = (0, _immutable.Map)({ + types: ['template', 'data', 'description', 'section', 'prototype', 'sections-template'], + config: (0, _immutable.Map)(config.huron), + classNames: (0, _utils.getClassnamesFromJSON)(config.huron.classNames), + sections: (0, _immutable.Map)({ + sectionsByPath: (0, _immutable.Map)({}), + sectionsByURI: (0, _immutable.Map)({}), + sorted: {} + }), + templates: (0, _immutable.Map)({}), + prototypes: (0, _immutable.Map)({}), + sectionTemplatePath: '', + referenceDelimiter: '.' +}); +/* eslint-enable */ + +exports.defaultStore = defaultStore; +exports.config = config; + +/***/ }), + +/***/ "./src/cli/fileWatcher.js": +/*!********************************!*\ + !*** ./src/cli/fileWatcher.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.watchedFiles = exports.extensions = undefined; + +var _gaze = __webpack_require__(/*! gaze */ "gaze"); + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var _defaultStore = __webpack_require__(/*! ./defaultStore */ "./src/cli/defaultStore.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Huron configuration object + * + * @global + */ +const huron = _defaultStore.defaultStore.get('config'); + +/** + * Available file extensions. Extensions should not include the leading '.' + * + * @global + */ +const extensions = exports.extensions = [huron.get('kssExtension'), huron.get('templates').extension, 'html', 'json'].map(extension => extension.replace('.', '')); + +// Generate watch list for Gaze, start gaze +const watchedFiles = exports.watchedFiles = []; + +// Watch section template +watchedFiles.push(_path2.default.resolve(huron.get('sectionTemplate'))); + +// Watch cssmodules classname files (if they exist) +if (huron.get('classNames')) { + watchedFiles.push( + // `${path.resolve(huron.get('classNames'))}/*.json` + _path2.default.resolve(huron.get('classNames'))); +} + +// Watch all provided kss directories +huron.get('kss').forEach(dir => { + watchedFiles.push(`${(0, _utils.removeTrailingSlash)(dir)}/**/*.+(${extensions.join('|')})`); +}); + +/** + * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON + * + * @global + */ +const gaze = new _gaze.Gaze(watchedFiles); + +exports.default = gaze; + +/***/ }), + +/***/ "./src/cli/generateConfig.js": +/*!***********************************!*\ + !*** ./src/cli/generateConfig.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateConfig; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _url = __webpack_require__(/*! url */ "url"); + +var _url2 = _interopRequireDefault(_url); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _webpack = __webpack_require__(/*! webpack */ "webpack"); + +var _webpack2 = _interopRequireDefault(_webpack); + +var _htmlWebpackPlugin = __webpack_require__(/*! html-webpack-plugin */ "html-webpack-plugin"); + +var _htmlWebpackPlugin2 = _interopRequireDefault(_htmlWebpackPlugin); + +var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); + +var _parseArgs2 = _interopRequireDefault(_parseArgs); + +var _requireExternal = __webpack_require__(/*! ./requireExternal */ "./src/cli/requireExternal.js"); + +var _requireExternal2 = _interopRequireDefault(_requireExternal); + +var _webpack3 = __webpack_require__(/*! ../defaultConfig/webpack.config */ "./src/defaultConfig/webpack.config.js"); + +var _webpack4 = _interopRequireDefault(_webpack3); + +var _huron = __webpack_require__(/*! ../defaultConfig/huron.config */ "./src/defaultConfig/huron.config.js"); + +var _huron2 = _interopRequireDefault(_huron); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const cwd = process.cwd(); + +// Require configs passed in by user from CLI +/** @module cli/generate-config */ +let defaultConfig = false; +const localConfig = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.webpackConfig)); +const localHuron = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.huronConfig)); + +/** + * Generate a mutant hybrid of the huron default webpack config and your local webpack config + * + * @function generateConfig + * @param {object} config - local webpack config + * @return {object} newConfig - updated data store + */ +function generateConfig() { + let newConfig = localConfig; + let newHuron = localHuron; + + // Execute config function, if provided + if ('function' === typeof newConfig) { + newConfig = newConfig(_parseArgs2.default.env); + } + + // Execute huron config function, if provided + if ('function' === typeof newHuron) { + newHuron = newHuron(_parseArgs2.default.env); + } + + // Merge huron defaults with user settings + newHuron = Object.assign({}, _huron2.default, newHuron); + // Use user huron config to modify webpack defaults + defaultConfig = (0, _webpack4.default)(newHuron); + + // Set ouput options + newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output); + newConfig.output.path = defaultConfig.output.path; + newConfig.output.publicPath = defaultConfig.output.publicPath; + + // configure entries + newConfig = configureEntries(newHuron, newConfig); + + // configure plugins + newConfig = configurePlugins(newHuron, newConfig); + + // configure loaders + newConfig = configureLoaders(newHuron, newConfig); + + // Add HTMLWebpackPlugin for each configured prototype + newConfig = configurePrototypes(newHuron, newConfig); + + // Remove existing devServer settings + delete newConfig.devServer; + + return { + huron: newHuron, + webpack: newConfig + }; +} + +/** + * Configure and manage webpack entry points + * @param {object} huron.entry Entry from huron config + * @param {string} huron.root Path to root + * @param {string} huron.port Port process is running on + * @param {object} config Webpack config object + * @return {object} Webpack config object with modified entries + */ +function configureEntries({ entry, root, port }, config) { + const originalEntry = config.entry[entry]; + const devServerEntries = _parseArgs2.default.production ? [] : [`webpack-dev-server/client/index.js?http://localhost:${port}/`, 'webpack/hot/dev-server']; + + return Object.assign({}, config, { + entry: { + [entry]: Array.prototype.concat(devServerEntries, _path2.default.join(cwd, root, 'huron-assets/index'), originalEntry) + } + }); +} + +/** + * Configure and manage webpack plugins + * + * @param {object} huron - huron configuration object + * @param {object} config - webpack configuration object + * @return {object} newConfig - updated data store + */ +function configurePlugins(huron, config) { + const newConfig = config; + + newConfig.plugins = config.plugins || []; + + if (!_parseArgs2.default.production) { + if (newConfig.plugins && newConfig.plugins.length) { + newConfig.plugins = newConfig.plugins.filter(plugin => 'HotModuleReplacementPlugin' !== plugin.constructor.name && 'NamedModulesPlugin' !== plugin.constructor.name); + } + newConfig.plugins = newConfig.plugins.concat([new _webpack2.default.HotModuleReplacementPlugin(), new _webpack2.default.NamedModulesPlugin()]); + } + + return newConfig; +} + +/** + * Configure and manage webpack loaders + * + * @param {object} huron - huron configuration object + * @param {object} config - webpack configuration object + * @return {object} newConfig - updated data store + */ +function configureLoaders(huron, config) { + // Manage loaders + const templatesLoader = huron.templates.rule || {}; + const newConfig = config; + + // Make sure we're only using templates loader for files in huron root + templatesLoader.include = [_path2.default.join(cwd, huron.root, huron.output)]; + + // Normalize module and module.rules + newConfig.module = newConfig.module || {}; + newConfig.module.rules = newConfig.module.rules || newConfig.module.loaders || []; + + // Add default loaders + newConfig.module.rules = defaultConfig.module.rules.concat(newConfig.module.rules, templatesLoader); + + return newConfig; +} + +/** + * Create an HTML webpack plugin for each configured prototype + * + * @param {object} huron - huron configuration object + * @param {object} config - webpack configuration object + * @return {object} newConfig - updated data store + */ +function configurePrototypes(huron, config) { + const wrapperTemplate = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../../templates/prototypeTemplate.hbs'), 'utf8'); + + const defaultHTMLPluginOptions = { + title: 'Huron', + window: huron.window, + js: [], + css: [], + filename: 'index.html', + template: _path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), + inject: false, + chunks: [huron.entry] + }; + const newConfig = config; + + // Write prototype template file for HTML webpack plugin + _fsExtra2.default.outputFileSync(_path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), wrapperTemplate); + + huron.prototypes.forEach(prototype => { + const newPrototype = prototype; + let opts = {}; + + // Merge configured settings with default settings + if ('string' === typeof prototype) { + opts = Object.assign({}, defaultHTMLPluginOptions, { + title: prototype, + filename: `${prototype}.html` + }); + } else if ('object' === typeof prototype && {}.hasOwnProperty.call(prototype, 'title')) { + // Create filename based on configured title if not provided + if (!prototype.filename) { + newPrototype.filename = `${prototype.title}.html`; + } + + // Move css assets for this prototype, + // reset css option with new file paths + if (prototype.css) { + newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron); + } + + // Move js assets for this prototype, + // reset js option with new file paths + if (prototype.js) { + newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron); + } + + opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype); + } + + // Move global css assets, + // reset css option with new file paths + if (huron.css.length) { + opts.css = opts.css.concat(moveAdditionalAssets(huron.css, 'css', huron)); + } + + // Move global js assets, + // reset js option with new file paths + if (huron.js.length) { + opts.js = opts.js.concat(moveAdditionalAssets(huron.js, 'js', huron)); + } + + // Push a new plugin for each configured prototype + if (Object.keys(opts).length) { + newConfig.plugins.push(new _htmlWebpackPlugin2.default(opts)); + } + }); + + return newConfig; +} + +/** + * Move relative (and local) js and css assets provided in huron options + * + * @param {array|string} assets - array of assets or single asset + * @param {string} subdir - subdirectory in huron root from which to load additional asset + * @param {object} huron - huron configuration object + * @return {array} assetResults - paths to js and css assets + */ +function moveAdditionalAssets(assets, subdir = '', huron) { + const currentAssets = [].concat(assets); + const assetResults = []; + + currentAssets.forEach(asset => { + const assetInfo = _path2.default.parse(asset); + const assetURL = _url2.default.parse(asset); + const sourcePath = _path2.default.join(cwd, asset); + const outputPath = _path2.default.resolve(cwd, huron.root, subdir, assetInfo.base); + const loadPath = _path2.default.join(subdir, assetInfo.base); + let contents = false; + + if (!_path2.default.isAbsolute(asset) && !assetURL.protocol) { + try { + contents = _fsExtra2.default.readFileSync(sourcePath); + } catch (e) { + console.warn(`could not read ${sourcePath}`); + } + + if (contents) { + _fsExtra2.default.outputFileSync(outputPath, contents); + assetResults.push(loadPath); + } + } else { + assetResults.push(asset); + } + }); + + return assetResults; +} + +/***/ }), + +/***/ "./src/cli/handleHTML.js": +/*!*******************************!*\ + !*** ./src/cli/handleHTML.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateHTML = updateHTML; +exports.deleteHTML = deleteHTML; +exports.updatePrototype = updatePrototype; +exports.deletePrototype = deletePrototype; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var utils = _interopRequireWildcard(_utils); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Handle update of an HMTL template + * + * @function updateHTML + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} section - contains KSS section data + * @param {object} store - memory store + * @return {object} updated data store + */ +function updateHTML(filepath, section, store) { + const file = _path2.default.parse(filepath); + const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); + const newSection = section; + + if (content) { + newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, content, store); + newSection.templateContent = content; + + // Rewrite section data with template content + newSection.sectionPath = utils.writeSectionData(store, newSection); + + return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); + } + + console.log(`File ${file.base} could not be read`); + return store; +} + +/** + * Handle removal of an HMTL template + * + * @function deleteHTML + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} section - contains KSS section data + * @param {object} store - memory store + * @return {object} updated data store + */ +/** + * @module cli/html-handler + */ +function deleteHTML(filepath, section, store) { + const newSection = section; + + utils.removeFile(newSection.referenceURI, 'template', filepath, store); + + delete newSection.templatePath; + + return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); +} + +/** + * Handle update for a prototype file + * + * @function updatePrototype + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} store - memory store + * @return {object} updated data store + */ +function updatePrototype(filepath, store) { + const file = _path2.default.parse(filepath); + const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); + + if (content) { + const requirePath = utils.writeFile(file.name, 'prototype', filepath, content, store); + + return store.setIn(['prototypes', file.name], requirePath); + } + + console.log(`File ${file.base} could not be read`); + return store; +} + +/** + * Handle removal of a prototype file + * + * @function deletePrototype + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} store - memory store + * @return {object} updated data store + */ +function deletePrototype(filepath, store) { + const file = _path2.default.parse(filepath); + const requirePath = utils.removeFile(file.name, 'prototype', filepath, store); + + return store.setIn(['prototypes', file.name], requirePath); +} + +/***/ }), + +/***/ "./src/cli/handleKSS.js": +/*!******************************!*\ + !*** ./src/cli/handleKSS.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateKSS = updateKSS; +exports.deleteKSS = deleteKSS; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _kss = __webpack_require__(/*! kss */ "kss"); + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var utils = _interopRequireWildcard(_utils); + +var _handleTemplates = __webpack_require__(/*! ./handleTemplates */ "./src/cli/handleTemplates.js"); + +var _requireTemplates = __webpack_require__(/*! ./requireTemplates */ "./src/cli/requireTemplates.js"); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Handle update of a KSS section + * + * @function updateKSS + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} store - memory store + * @return {object} updated data store + */ +function updateKSS(filepath, store) { + const kssSource = _fsExtra2.default.readFileSync(filepath, 'utf8'); + const huron = store.get('config'); + const oldSection = utils.getSection(filepath, false, store) || {}; + const file = _path2.default.parse(filepath); + let newStore = store; + + if (kssSource) { + const styleguide = (0, _kss.parse)(kssSource, huron.get('kssOptions')); + + if (styleguide.data.sections.length) { + const section = utils.normalizeSectionData(styleguide.data.sections[0]); + + if (section.reference && section.referenceURI) { + // Update or add section data + newStore = updateSectionData(filepath, section, oldSection, newStore); + + // Remove old section data if reference URI has changed + if (oldSection && oldSection.referenceURI && oldSection.referenceURI !== section.referenceURI) { + newStore = unsetSection(oldSection, file, newStore, false); + } + + (0, _requireTemplates.writeStore)(newStore); + console.log(_chalk2.default.green(`KSS source in ${filepath} changed or added`)); + return newStore; + } + + console.log(_chalk2.default.magenta(`KSS section in ${filepath} is missing a section reference`)); + return newStore; + } + + console.log(_chalk2.default.magenta(`No KSS found in ${filepath}`)); + return newStore; + } + + if (oldSection) { + newStore = deleteKSS(filepath, oldSection, newStore); + } + + console.log(_chalk2.default.red(`${filepath} not found or empty`)); // eslint-disable-line no-console + return newStore; +} + +/** + * Handle removal of a KSS section + * + * @function deleteKSS + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} section - KSS section data + * @param {object} store - memory store + * @return {object} updated data store + */ +/** + * @module cli/kss-handler + */ + +function deleteKSS(filepath, section, store) { + const file = _path2.default.parse(filepath); + + if (section.reference && section.referenceURI) { + // Remove section data from memory store + return unsetSection(section, file, store, true); + } + + return store; +} + +/** + * Update the sections store with new data for a specific section + * + * @function updateSectionData + * @param {object} section - contains updated section data + * @param {string} kssPath - path to KSS section + * @param {object} store - memory store + * @return {object} updated data store + */ +function updateSectionData(kssPath, section, oldSection, store) { + const sectionFileInfo = _path2.default.parse(kssPath); + const dataFilepath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); + const isInline = null !== section.markup.match(/<\/[^>]*>/); + const newSort = sortSection(store.getIn(['sections', 'sorted']), section.reference, store.get('referenceDelimiter')); + const newSection = Object.assign({}, oldSection, section); + let newStore = store; + + // Required for reference from templates and data + newSection.kssPath = kssPath; + + if (isInline) { + // Set section value if inlineTempalte() returned a path + newStore = updateInlineTemplate(kssPath, oldSection, newSection, newStore); + } else { + // Remove inline template, if it exists + utils.removeFile(newSection.referenceURI, 'template', kssPath, store); + // Update markup and data fields + newStore = updateTemplateFields(sectionFileInfo, oldSection, newSection, newStore); + } + + // Output section description + newStore = updateDescription(kssPath, oldSection, newSection, newStore); + + // Output section data to a JSON file + newSection.sectionPath = utils.writeSectionData(newStore, newSection, dataFilepath); + + // Update section sorting + return newStore.setIn(['sections', 'sorted'], newSort).setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); +} + +/** + * Handle detection and output of inline templates, which is markup written + * in the KSS documentation itself as opposed to an external file + * + * @function updateInlineTemplate + * @param {string} oldSection - previous iteration of KSS data, if updated + * @param {object} section - KSS section data + * @return {object} updated data store with new template path info + */ +function updateInlineTemplate(filepath, oldSection, section, store) { + const newSection = section; + const newStore = store; + + // If we have inline markup + if (fieldShouldOutput(oldSection, section, 'markup')) { + newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, section.markup, store); + newSection.templateContent = section.markup; + + return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); + } + + return newStore; +} + +/** + * Handle output of section description + * + * @function updateDescription + * @param {string} oldSection - previous iteration of KSS data, if updated + * @param {object} section - KSS section data + * @return {object} updated data store with new descripton path info + */ +function updateDescription(filepath, oldSection, section, store) { + const newSection = section; + const newStore = store; + + // If we don't have previous KSS or the KSS has been updated + if (fieldShouldOutput(oldSection, section, 'description')) { + // Write new description + newSection.descriptionPath = utils.writeFile(section.referenceURI, 'description', filepath, section.description, store); + + return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); + } + + return newStore; +} + +/** + * Handle Data and Markup fields + * + * @function updateTemplateFields + * @param {string} file - File data for KSS file from path.parse() + * @param {object} oldSection - outdated KSS data + * @param {object} section - KSS section data + * @param {object} store - memory store + * @return {object} KSS section data with updated asset paths + */ +function updateTemplateFields(file, oldSection, section, store) { + const kssPath = _path2.default.format(file); + const newSection = section; + let filepath = ''; + let oldFilepath = ''; + let newStore = store; + + ['data', 'markup'].forEach(field => { + if (newSection[field]) { + if (oldSection[field]) { + oldFilepath = _path2.default.join(file.dir, oldSection[field]); + newStore = (0, _handleTemplates.deleteTemplate)(oldFilepath, oldSection, newStore); + } + + filepath = _path2.default.join(file.dir, newSection[field]); + newStore = (0, _handleTemplates.updateTemplate)(filepath, newSection, newStore); + } else { + delete newSection[field]; + newStore = newStore.setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); + } + }); + + return newStore; +} + +/** + * Remove a section from the memory store + * + * @function unsetSection + * @param {object} section - contains updated section data + * @param {string} file - file object from path.parse() + * @param {object} store - memory store + * @param {bool} removed - has the file been removed or just the section information changed? + * @return {object} updated data store with new descripton path info + */ +function unsetSection(section, file, store, removed) { + const sorted = store.getIn(['sections', 'sorted']); + const kssPath = _path2.default.format(file); + const dataFilepath = _path2.default.join(file.dir, `${file.name}.json`); + const isInline = section.markup && null !== section.markup.match(/<\/[^>]*>/); + const newSort = unsortSection(sorted, section.reference, store.get('referenceDelimiter')); + let newStore = store; + + // Remove old section data + utils.removeFile(section.referenceURI, 'section', dataFilepath, newStore); + + // Remove associated inline template + if (isInline) { + utils.removeFile(section.referenceURI, 'template', kssPath, newStore); + } + + // Remove description template + utils.removeFile(section.referenceURI, 'description', kssPath, newStore); + + // Remove data from sectionsByPath if file has been removed + if (removed) { + newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]); + } + + return newStore.deleteIn(['sections', 'sectionsByURI', section.referenceURI]).setIn(['sections', 'sorted'], newSort); +} + +/** + * Sort sections and subsections + * + * @function sortSection + * @param {object} sorted - currently sorted sections + * @param {string} reference - reference URI of section to sort + * @return {object} updated data store with new descripton path info + */ +function sortSection(sorted, reference, delimiter) { + const parts = reference.split(delimiter); + const newSort = sorted[parts[0]] || {}; + const newSorted = sorted; + + if (1 < parts.length) { + const newParts = parts.filter((part, idx) => 0 !== idx); + newSorted[parts[0]] = sortSection(newSort, newParts.join(delimiter), delimiter); + } else { + newSorted[parts[0]] = newSort; + } + + return newSorted; +} + +/** + * Remove a section from the sorted sections + * + * @function unsortSection + * @param {object} sorted - currently sorted sections + * @param {string} reference - reference URI of section to sort + * @return {object} updated data store with new descripton path info + */ +function unsortSection(sorted, reference, delimiter) { + const parts = reference.split(delimiter); + const subsections = Object.keys(sorted[parts[0]]); + const newSorted = sorted; + + if (subsections.length) { + if (1 < parts.length) { + const newParts = parts.filter((part, idx) => 0 !== idx); + newSorted[parts[0]] = unsortSection(newSorted[parts[0]], newParts.join(delimiter), delimiter); + } + } else { + delete newSorted[parts[0]]; + } + + return newSorted; +} + +/** + * Compare a KSS field between old and new KSS data to see if we need to output + * a new module for that field + * + * @function fieldShouldOutput + * @param {object} oldSection - currently sorted sections + * @param {object} newSection - reference URI of section to sort + * @param {string} field - KSS field to check + * @return {bool} output a new module for the KSS field + */ +function fieldShouldOutput(oldSection, newSection, field) { + return oldSection && (oldSection[field] !== newSection[field] || oldSection.referenceURI !== newSection.referenceURI) || !oldSection; +} + +/***/ }), + +/***/ "./src/cli/handleTemplates.js": +/*!************************************!*\ + !*** ./src/cli/handleTemplates.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.updateTemplate = updateTemplate; +exports.deleteTemplate = deleteTemplate; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var utils = _interopRequireWildcard(_utils); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Handle update of a template or data (json) file + * + * @function updateTemplate + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} section - contains KSS section data + * @param {object} store - memory store + * @return {object} updated memory store + */ +/** @module cli/template-handler */ +function updateTemplate(filepath, section, store) { + const file = _path2.default.parse(filepath); + const pairPath = utils.getTemplateDataPair(file, section, store); + const type = '.json' === file.ext ? 'data' : 'template'; + const newSection = section; + const newStore = store; + let content = false; + + try { + content = _fsExtra2.default.readFileSync(filepath, 'utf8'); + } catch (e) { + console.log(_chalk2.default.red(`${filepath} does not exist`)); + } + + if (content) { + const requirePath = utils.writeFile(newSection.referenceURI, type, filepath, content, newStore); + newSection[`${type}Path`] = requirePath; + + if ('template' === type) { + newSection.templateContent = content; + + // Rewrite section data with template content + newSection.sectionPath = utils.writeSectionData(newStore, newSection); + } + + return newStore.setIn(['templates', requirePath], pairPath).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); + } + + return newStore; +} + +/** + * Handle removal of a template or data (json) file + * + * @function deleteTemplate + * @param {string} filepath - filepath of changed file (comes from gaze) + * @param {object} section - contains KSS section data + * @param {object} store - memory store + * @return {object} updated memory store + */ +function deleteTemplate(filepath, section, store) { + const file = _path2.default.parse(filepath); + const type = '.json' === file.ext ? 'data' : 'template'; + const newSection = section; + const newStore = store; + + // Remove partner + const requirePath = utils.removeFile(newSection.referenceURI, type, filepath, newStore); + delete newSection[`${type}Path`]; + + return newStore.deleteIn(['templates', requirePath]).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); +} + +/***/ }), + +/***/ "./src/cli/index.js": +/*!**************************!*\ + !*** ./src/cli/index.js ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _actions = __webpack_require__(/*! ./actions */ "./src/cli/actions.js"); + +var _requireTemplates = __webpack_require__(/*! ./requireTemplates */ "./src/cli/requireTemplates.js"); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); + +var _parseArgs2 = _interopRequireDefault(_parseArgs); + +var _server = __webpack_require__(/*! ./server */ "./src/cli/server.js"); + +var _server2 = _interopRequireDefault(_server); + +var _defaultStore = __webpack_require__(/*! ./defaultStore */ "./src/cli/defaultStore.js"); + +var _fileWatcher = __webpack_require__(/*! ./fileWatcher */ "./src/cli/fileWatcher.js"); + +var _fileWatcher2 = _interopRequireDefault(_fileWatcher); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Initialize data store with files from gaze and original data structure + * + * @global + */ +// Local imports +const huron = _defaultStore.defaultStore.get('config'); +let store = (0, _actions.initFiles)(_fileWatcher2.default.watched(), _defaultStore.defaultStore); + +(0, _requireTemplates.requireTemplates)(store); +(0, _requireTemplates.writeStore)(store); + +// If building for production, close gaze and exit process once initFiles is done. +if (_parseArgs2.default.production) { + _fileWatcher2.default.close(); +} + +/** @module cli/gaze */ +_fileWatcher2.default.on('all', (event, filepath) => { + store = (0, _actions.updateClassNames)(filepath, store); + (0, _requireTemplates.writeStore)(store); +}); + +/** + * Anonymous handler for Gaze 'changed' event indicating a file has changed + * + * @callback changed + * @listens gaze:changed + * @param {string} filepath - absolute path of changed file + */ +_fileWatcher2.default.on('changed', filepath => { + if ((0, _utils.matchKssDir)(filepath, huron)) { + store = (0, _actions.updateFile)(filepath, store); + } + + console.log(_chalk2.default.green(`${filepath} updated!`)); +}); + +/** + * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories + * + * @callback added + * @listens gaze:added + * @param {string} filepath - absolute path of changed file + */ +_fileWatcher2.default.on('added', filepath => { + if ((0, _utils.matchKssDir)(filepath, huron)) { + store = (0, _actions.updateFile)(filepath, store); + (0, _requireTemplates.writeStore)(store); + } + + console.log(_chalk2.default.blue(`${filepath} added!`)); +}); + +/** + * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed + * + * @callback renamed + * @listens gaze:renamed + * @param {string} filepath - absolute path of changed file + */ +_fileWatcher2.default.on('renamed', (newPath, oldPath) => { + if ((0, _utils.matchKssDir)(newPath, huron)) { + store = (0, _actions.deleteFile)(oldPath, store); + store = (0, _actions.updateFile)(newPath, store); + (0, _requireTemplates.writeStore)(store); + } + + console.log(_chalk2.default.blue(`${newPath} added!`)); +}); + +/** + * Anonymous handler for Gaze 'deleted' event indicating a file has been removed + * + * @callback deleted + * @listens gaze:deleted + * @param {string} filepath - absolute path of changed file + */ +_fileWatcher2.default.on('deleted', filepath => { + if ((0, _utils.matchKssDir)(filepath, huron)) { + store = (0, _actions.deleteFile)(filepath, store); + (0, _requireTemplates.writeStore)(store); + } + + console.log(_chalk2.default.red(`${filepath} deleted`)); +}); + +// Start webpack or build for production +(0, _server2.default)(_defaultStore.config); + +/***/ }), + +/***/ "./src/cli/parseArgs.js": +/*!******************************!*\ + !*** ./src/cli/parseArgs.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _commander = __webpack_require__(/*! commander */ "commander"); + +var _commander2 = _interopRequireDefault(_commander); + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Requires +/** @global */ + +// @todo this may be deprecated with webpack 4 + +/** + * Process huron CLI arguments + * + * @function parseArgs + * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production + */ +/** @module cli/parse-arguments */ +/* eslint-disable space-unary-ops */ + +function parseArgs() { + const envArg = {}; + + process.argv = process.argv.filter(arg => { + if (-1 !== arg.indexOf('--env')) { + const envParts = arg.split('.')[1].split('='); + + envArg[envParts[0]] = envParts[1] || true; + return false; + } + + return true; + }); + + _commander2.default.version('1.0.1').option('-c, --huron-config [huronConfig]', '[huronConfig] for all huron options', _path2.default.resolve(__dirname, '../defaultConfig/huron.config.js')).option('-w, --webpack-config [webpackConfig]', '[webpackConfig] for all webpack options', _path2.default.resolve(__dirname, '../defaultConfig/webpack.config.js')).option('-p, --production', 'compile assets once for production'); + + _commander2.default.env = envArg; + + // Only parse if we're not running tests + if (!process.env.npm_lifecycle_event || 'test' !== process.env.npm_lifecycle_event) { + _commander2.default.parse(process.argv); + } +} + +parseArgs(); +/* eslint-enable */ + +exports.default = _commander2.default; + +/***/ }), + +/***/ "./src/cli/requireExternal.js": +/*!************************************!*\ + !*** ./src/cli/requireExternal.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = requireExternal; +// Necessary to remove require statement from Webpack processing preserve it in output +/* eslint-disable import/no-dynamic-require, global-require */ +function requireExternal(requirePath) { + return require(requirePath); +} +/* eslint-enable */ + +/***/ }), + +/***/ "./src/cli/requireTemplates.js": +/*!*************************************!*\ + !*** ./src/cli/requireTemplates.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.writeStore = exports.requireTemplates = undefined; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _hotTemplate = __webpack_require__(/*! raw-loader!babel-loader!../../templates/hotTemplate */ "./node_modules/raw-loader/index.js!./node_modules/babel-loader/lib/index.js!./templates/hotTemplate.js"); + +var _hotTemplate2 = _interopRequireDefault(_hotTemplate); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* eslint-enable */ + +const cwd = process.cwd(); + +// We need to prepend this to the browser script as a string but still want to transpile it, +// hence loading it using `raw-loader` so we receive a string from webpack +/* eslint-disable */ +/** @module cli/require-templates */ + +const huronScript = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../web/index.js'), 'utf8'); + +/** + * Write code for requiring all generated huron assets + * + * @function requireTemplates + * @param {object} store - memory store + */ +const requireTemplates = exports.requireTemplates = function requireTemplates(store) { + const huron = store.get('config'); + const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); + // These will be used to replace strings in the hotTemplate. + // In order to accurately replace strings but still keep things parseable by eslint and babel, + // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object. + // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`, + // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`. + const hotVariableScope = { + sectionTemplatePath: `'${huron.get('sectionTemplate')}'`, + requireRegex: new RegExp(`\\.html|\\.json|\\${huron.get('templates').extension}$`), + requirePath: `'../${huron.get('output')}'` + }; + const hotTemplateTransformed = Object.keys(hotVariableScope).reduce((acc, curr) => acc.replace(new RegExp(`hotScope.${curr}`, 'g'), hotVariableScope[curr]), _hotTemplate2.default); + + // Write the contents of this script. + _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'index.js'), hotTemplateTransformed); + _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'insertNodes.js'), huronScript); +}; + +/** + * Output entire data store to a JS object and handle if any KSS data has changed + * + * @function writeStore + * @param {object} store - memory store + * @param {string} changed - filepath of changed KSS section, if applicable + */ +const writeStore = exports.writeStore = function writeStore(store, newStore = false) { + const updatedStore = newStore || store; + const huron = updatedStore.get('config'); + const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); + + // Write updated data store + _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'huron-store.js'), `module.exports = ${JSON.stringify(updatedStore.toJSON())}`); +}; + +/***/ }), + +/***/ "./src/cli/server.js": +/*!***************************!*\ + !*** ./src/cli/server.js ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = startWebpack; + +var _webpack = __webpack_require__(/*! webpack */ "webpack"); + +var _webpack2 = _interopRequireDefault(_webpack); + +var _webpackDevServer = __webpack_require__(/*! webpack-dev-server */ "webpack-dev-server"); + +var _webpackDevServer2 = _interopRequireDefault(_webpackDevServer); + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +var _opn = __webpack_require__(/*! opn */ "opn"); + +var _opn2 = _interopRequireDefault(_opn); + +var _devServer = __webpack_require__(/*! ../../config/devServer.config */ "./config/devServer.config.js"); + +var _devServer2 = _interopRequireDefault(_devServer); + +var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); + +var _parseArgs2 = _interopRequireDefault(_parseArgs); + +var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Spin up webpack-dev-server or, if production flag is set, run webpack a single time + * + * @function startWebpack + * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig} + * @see {@link module:cli/generate-config generateConfig} + */ +function startWebpack(config) { + const { + huron, + webpack: webpackConfig + } = config; + const compiler = (0, _webpack2.default)(webpackConfig); + + if (_parseArgs2.default.progress) { + compiler.apply(new _webpack2.default.ProgressPlugin((percentage, msg) => { + console.log(`${percentage * 100}% `, msg); + })); + } + + if (_parseArgs2.default.production) { + compiler.run((err, stats) => { + const info = stats.toJson(); + + if (err) { + console.log(err); + } + + if (stats.hasErrors()) { + console.error(_chalk2.default.red('Webpack encountered errors during compile: ', info.errors)); + } + + if (stats.hasWarnings()) { + console.error(_chalk2.default.yellow('Webpack encountered warnings during compile: ', info.warnings)); // eslint-disable-line max-len + } + }); + } else { + const server = new _webpackDevServer2.default(compiler, (0, _devServer2.default)(huron)); + const prototypeName = huron.prototypes[0].title || huron.prototypes[0]; + + server.listen(huron.port, 'localhost', err => { + if (err) { + return console.log(err); + } + + console.log(`Listening at http://localhost:${huron.port}/`); + (0, _opn2.default)(`http://localhost:${huron.port}/${(0, _utils.removeTrailingSlash)(huron.root)}/${prototypeName}.html`); + return true; + }); + } +} /** @module cli/webpack-server */ + +/***/ }), + +/***/ "./src/cli/utils.js": +/*!**************************!*\ + !*** ./src/cli/utils.js ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.normalizeSectionData = normalizeSectionData; +exports.writeSectionData = writeSectionData; +exports.getTemplateDataPair = getTemplateDataPair; +exports.normalizeHeader = normalizeHeader; +exports.wrapMarkup = wrapMarkup; +exports.generateFilename = generateFilename; +exports.writeFile = writeFile; +exports.removeFile = removeFile; +exports.writeSectionTemplate = writeSectionTemplate; +exports.getSection = getSection; +exports.matchKssDir = matchKssDir; +exports.getClassnamesFromJSON = getClassnamesFromJSON; +exports.removeTrailingSlash = removeTrailingSlash; + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); + +var _fsExtra2 = _interopRequireDefault(_fsExtra); + +var _chalk = __webpack_require__(/*! chalk */ "chalk"); + +var _chalk2 = _interopRequireDefault(_chalk); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const cwd = process.cwd(); // Current working directory + +/** + * Ensure predictable data structure for KSS section data + * + * @function normalizeSectionData + * @param {object} section - section data + * @return {object} section data + */ +/** + * @module cli/utilities + */ +function normalizeSectionData(section) { + const data = section.data || section; + + if (!data.referenceURI || '' === data.referenceURI) { + data.referenceURI = section.referenceURI(); + } + + return data; +} + +/** + * Ensure predictable data structure for KSS section data + * + * @function writeSectionData + * @param {object} store - data store + * @param {object} section - section data + * @param {string} sectionPath - output destination for section data file + */ +function writeSectionData(store, section, sectionPath = false) { + let outputPath = sectionPath; + let sectionFileInfo; + + if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) { + sectionFileInfo = _path2.default.parse(section.kssPath); + outputPath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); + } + + // Output section data + if (outputPath) { + return writeFile(section.referenceURI, 'section', outputPath, JSON.stringify(section), store); + } + + console.warn(_chalk2.default.red(`Failed to write data for ${section.referenceURI}`)); + return false; +} + +/** + * Find .json from a template file or vice versa + * + * @function getTemplateDataPair + * @param {object} file - file object from path.parse() + * @param {object} section - KSS section data + * @return {string} relative path to module JSON file + */ +function getTemplateDataPair(file, section, store) { + const huron = store.get('config'); + const kssDir = matchKssDir(file.dir, huron); + + if (kssDir) { + const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); + const partnerType = '.json' === file.ext ? 'template' : 'data'; + const partnerExt = '.json' === file.ext ? huron.get('templates').extension : '.json'; + + const pairPath = _path2.default.join(componentPath, generateFilename(section.referenceURI, partnerType, partnerExt, store)); + + return `./${pairPath}`; + } + + return false; +} + +/** + * Normalize a section title for use as a filename + * + * @function normalizeHeader + * @param {string} header - section header extracted from KSS documentation + * @return {string} modified header, lowercase and words separated by dash + */ +function normalizeHeader(header) { + return header.toLowerCase().replace(/\s?\W\s?/g, '-'); +} + +/** + * Wrap html in required template tags + * + * @function wrapMarkup + * @param {string} content - html or template markup + * @param {string} templateId - id of template (should be section reference) + * @return {string} modified HTML + */ +function wrapMarkup(content, templateId) { + return ` + +\n`; +} + +/** + * Generate a filename based on referenceURI, type and file object + * + * @function generateFilename + * @param {string} id - The name of the file (with extension). + * @param {string} type - the type of file output + * @param {object} ext - file extension + * @param {store} store - data store + * @return {string} Path to output file, relative to ouput dir (can be use in require statements) + */ +function generateFilename(id, type, ext, store) { + // Type of file and its corresponding extension(s) + const types = store.get('types'); + const outputExt = '.scss' !== ext ? ext : '.html'; + + /* eslint-disable */ + if (-1 === types.indexOf(type)) { + console.log(`Huron data ${type} does not exist`); + return false; + } + /* eslint-enable */ + + return `${id}-${type}${outputExt}`; +} + +/** + * Copy an HTML file into the huron output directory. + * + * @function writeFile + * @param {string} id - The name of the file (with extension). + * @param {string} content - The content of the file to write. + * @param {string} type - the type of file output + * @param {object} store - The data store + * @return {string} Path to output file, relative to ouput dir (can be use in require statements) + */ +function writeFile(id, type, filepath, content, store) { + const huron = store.get('config'); + const file = _path2.default.parse(filepath); + const filename = generateFilename(id, type, file.ext, store); + const kssDir = matchKssDir(filepath, huron); + + if (kssDir) { + const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); + const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); + const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); + let newContent = content; + + if ('data' !== type && 'section' !== type) { + newContent = wrapMarkup(content, id); + } + + try { + _fsExtra2.default.outputFileSync(outputPath, newContent); + console.log(_chalk2.default.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console + } catch (e) { + console.log(_chalk2.default.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console + } + + return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; + } + + return false; +} + +/** + * Delete a file in the huron output directory + * + * @function removeFile + * @param {string} filename - The name of the file (with extension). + * @param {object} store - The data store + * @return {string} Path to output file, relative to ouput dir (can be use in require statements) + */ +function removeFile(id, type, filepath, store) { + const huron = store.get('config'); + const file = _path2.default.parse(filepath); + const filename = generateFilename(id, type, file.ext, store); + const kssDir = matchKssDir(filepath, huron); + + if (kssDir) { + const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); + const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); + const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); + + try { + _fsExtra2.default.removeSync(outputPath); + console.log(_chalk2.default.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console + } catch (e) { + console.log(_chalk2.default.red(`${outputRelative} does not exist or cannot be deleted`)); // eslint-disable-line + } + + return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; + } + + return false; +} + +/** + * Write a template for sections + * + * @function writeSectionTemplate + * @param {string} filepath - the original template file + * @param {object} store - data store + * @return {object} updated store + */ +function writeSectionTemplate(filepath, store) { + const huron = store.get('config'); + const sectionTemplate = wrapMarkup(_fsExtra2.default.readFileSync(filepath, 'utf8')); + const componentPath = './huron-assets/section.hbs'; + const output = _path2.default.join(cwd, huron.get('root'), componentPath); + + // Move huron script and section template into huron root + _fsExtra2.default.outputFileSync(output, sectionTemplate); + console.log(_chalk2.default.green(`writing section template to ${output}`)); // eslint-disable-line no-console + + return store.set('sectionTemplatePath', componentPath); +} + +/** + * Request for section data based on section reference + * + * @function writeSectionTemplate + * @param {string} search - key on which to match section + * @param {field} string - field in which to look to determine section + * @param {obj} store - sections memory store + */ +function getSection(search, field, store) { + const sectionValues = store.getIn(['sections', 'sectionsByPath']).valueSeq(); + let selectedSection = false; + + if (field) { + selectedSection = sectionValues.filter(value => value[field] === search).get(0); + } else { + selectedSection = store.getIn(['sections', 'sectionsByPath', search]); + } + + return selectedSection; +} + +/** + * Find which configured KSS directory a filepath exists in + * + * @function matchKssDir + * @param {string} filepath - filepath to search for + * @param {object} huron - huron configuration + * @return {string} kssMatch - relative path to KSS directory + */ +function matchKssDir(filepath, huron) { + const kssSource = huron.get('kss'); + // Include forward slash in our test to make sure we're matchin a directory, not a file extension + const kssMatch = kssSource.filter(dir => filepath.includes(`/${dir}`)); + + if (kssMatch.length) { + return kssMatch[0]; + } + + return false; +} + +/** + * Merge JSON files for css modules classnames in a provided directory + * + * @function mergeClassnameJSON + * @param {string} directory - directory containing classname JSON files + * + * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within + * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) + */ +// Have the huron config provide a path to a file that provides the classnames mainfest +// and use wahtever is in that +function getClassnamesFromJSON(filepath) { + const fileInfo = _path2.default.parse(filepath); + let classNames = {}; + + if ('.json' === fileInfo.ext) { + try { + const contents = _fsExtra2.default.readFileSync(filepath, 'utf8'); + classNames = JSON.parse(contents); + } catch (e) { + console.warn(_chalk2.default.red(e)); + } + } + + // return { [filepath]: classNames }; + return classNames; +} + +// export function mergeClassnameJSON(directory) { +// let files; + +// // If no config is provided, return immediately +// if (!directory) { +// return {}; +// } + +// // Try to read through classnames directory +// try { +// files = fs.readdirSync(directory); +// } catch (e) { +// console.warn(chalk.red(e)); +// } + +// // Merge classname json files +// const classNamesMerged = files.reduce((acc, file) => { +// const fileInfo = path.parse(file); +// let classNames = {}; + +// if ('.json' === fileInfo.ext) { +// try { +// const contents = fs.readFileSync( +// path.join(directory, file), +// 'utf8' +// ); +// classNames = JSON.parse(contents); +// } catch (e) { +// console.warn(chalk.red(e)); +// } +// } + +// return Object.assign({}, acc, { [fileInfo.name]: classNames }); +// }, {}); + +// return classNamesMerged; +// } + +/** + * Remove the trailing slash from a provided directory + * + * @function removeTrailingSlash + * @param {string} directory - directory path + * @return {string} directory - directory path with trailing slash removed + */ +function removeTrailingSlash(directory) { + if ('/' === directory.slice(-1)) { + return directory.slice(0, -1); + } + + return directory; +} + +/***/ }), + +/***/ "./src/defaultConfig/huron.config.js": +/*!*******************************************!*\ + !*** ./src/defaultConfig/huron.config.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + css: [], + entry: 'huron', + js: [], + kss: 'css/', + kssExtension: '.css', + kssOptions: { + multiline: true, + markdown: true, + custom: ['data'] + }, + output: 'partials', + port: 8080, + prototypes: ['index'], + root: 'dist/', + sectionTemplate: _path2.default.join(__dirname, '../../templates/section.hbs'), + classNames: false, + templates: { + rule: { + test: /\.(hbs|handlebars)$/, + use: 'handlebars-loader' + }, + extension: '.hbs' + }, + window: {} +}; + +/***/ }), + +/***/ "./src/defaultConfig/webpack.config.js": +/*!*********************************************!*\ + !*** ./src/defaultConfig/webpack.config.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _webpack = __webpack_require__(/*! webpack */ "webpack"); + +var _webpack2 = _interopRequireDefault(_webpack); + +var _path = __webpack_require__(/*! path */ "path"); + +var _path2 = _interopRequireDefault(_path); + +var _parseArgs = __webpack_require__(/*! ../cli/parseArgs */ "./src/cli/parseArgs.js"); + +var _parseArgs2 = _interopRequireDefault(_parseArgs); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = ({ root, output }) => ({ + mode: 'development', + entry: {}, + output: { + path: _path2.default.join(process.cwd(), root), + publicPath: _parseArgs2.default.production ? '' : `/${root}`, + filename: '[name].js', + chunkFilename: '[name].chunk.min.js' + }, + optimization: { + namedModules: true + }, + plugins: [new _webpack2.default.HotModuleReplacementPlugin()], + resolve: { + modulesDirectories: [_path2.default.resolve(__dirname, '../src/js')] + }, + resolveLoader: { + modulesDirectories: ['web_loaders', 'web_modules', 'node_loaders', 'node_modules', _path2.default.resolve(__dirname, '../node_modules')] + }, + module: { + rules: [{ + test: /\.html$/, + include: [_path2.default.join(process.cwd(), root, output)], + use: 'html-loader' + }, { + test: /\.(hbs|handlebars)$/, + include: [_path2.default.join(process.cwd(), root, 'huron-assets')], + use: { + loader: 'handlebars-loader', + query: { + helperDirs: [_path2.default.join(__dirname, '../../', 'templates/handlebarsHelpers')] + } + } + }] + } +}); + +/***/ }), + +/***/ 0: +/*!*****************************!*\ + !*** multi ./src/cli/index ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./src/cli/index */"./src/cli/index.js"); + + +/***/ }), + +/***/ "chalk": +/*!************************!*\ + !*** external "chalk" ***! + \************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("chalk"); + +/***/ }), + +/***/ "commander": +/*!****************************!*\ + !*** external "commander" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("commander"); + +/***/ }), + +/***/ "fs-extra": +/*!***************************!*\ + !*** external "fs-extra" ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("fs-extra"); + +/***/ }), + +/***/ "gaze": +/*!***********************!*\ + !*** external "gaze" ***! + \***********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("gaze"); + +/***/ }), + +/***/ "html-webpack-plugin": +/*!**************************************!*\ + !*** external "html-webpack-plugin" ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("html-webpack-plugin"); + +/***/ }), + +/***/ "immutable": +/*!****************************!*\ + !*** external "immutable" ***! + \****************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("immutable"); + +/***/ }), + +/***/ "kss": +/*!**********************!*\ + !*** external "kss" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("kss"); + +/***/ }), + +/***/ "lodash/isEqual": +/*!*********************************!*\ + !*** external "lodash/isEqual" ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("lodash/isEqual"); + +/***/ }), + +/***/ "opn": +/*!**********************!*\ + !*** external "opn" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("opn"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("path"); + +/***/ }), + +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("url"); + +/***/ }), + +/***/ "webpack": +/*!**************************!*\ + !*** external "webpack" ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("webpack"); + +/***/ }), + +/***/ "webpack-dev-server": +/*!*************************************!*\ + !*** external "webpack-dev-server" ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = require("webpack-dev-server"); + +/***/ }) + +/******/ }); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/cli/index.js.map b/dist/cli/index.js.map index e2d55f0..200d55b 100644 --- a/dist/cli/index.js.map +++ b/dist/cli/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 30);\n"],"mappings":"AACA","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap","webpack:///config/devServer.config.js","webpack:///./templates/hotTemplate.js","webpack:///src/cli/actions.js","webpack:///src/cli/defaultStore.js","webpack:///src/cli/fileWatcher.js","webpack:///src/cli/generateConfig.js","webpack:///src/cli/handleHTML.js","webpack:///src/cli/handleKSS.js","webpack:///src/cli/handleTemplates.js","webpack:///src/cli/index.js","webpack:///src/cli/parseArgs.js","webpack:///src/cli/requireExternal.js","webpack:///src/cli/requireTemplates.js","webpack:///src/cli/server.js","webpack:///src/cli/utils.js","webpack:///src/defaultConfig/huron.config.js","webpack:///src/defaultConfig/webpack.config.js","webpack:///external \"chalk\"","webpack:///external \"commander\"","webpack:///external \"fs-extra\"","webpack:///external \"gaze\"","webpack:///external \"html-webpack-plugin\"","webpack:///external \"immutable\"","webpack:///external \"kss\"","webpack:///external \"lodash/isEqual\"","webpack:///external \"opn\"","webpack:///external \"path\"","webpack:///external \"url\"","webpack:///external \"webpack\"","webpack:///external \"webpack-dev-server\""],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export default (huron) => ({\n hot: true,\n host: 'localhost',\n quiet: false,\n noInfo: false,\n overlay: true,\n stats: {\n colors: true,\n hash: false,\n version: false,\n assets: false,\n chunks: false,\n modules: false,\n reasons: false,\n children: false,\n source: false,\n },\n publicPath: `/${huron.root}`,\n});\n","module.exports = \"'use strict';\\n\\nvar _huronStore = require('./huron-store');\\n\\nvar _huronStore2 = _interopRequireDefault(_huronStore);\\n\\nvar _insertNodes = require('./insertNodes');\\n\\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\\n\\nvar _section = require('./section.hbs');\\n\\nvar _section2 = _interopRequireDefault(_section);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\n/* eslint-enable */\\n\\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\\n\\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\\n// with CLI arguments or config properties passed in by the user.\\n\\n/* eslint-disable */\\n\\nconst modules = {};\\n\\nmodules[hotScope.sectionTemplatePath] = _section2.default;\\n\\nassets.keys().forEach(key => {\\n modules[key] = assets(key);\\n});\\n\\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\\n\\nif (module.hot) {\\n // Hot Module Replacement for huron components (json, hbs, html)\\n module.hot.accept(assets.id, () => {\\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\\n\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n newModules.forEach(module => {\\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\\n hotReplace(module[0], module[1], modules);\\n });\\n });\\n\\n // Hot Module Replacement for sections template\\n module.hot.accept('./section.hbs', () => {\\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\\n\\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\\n });\\n\\n // Hot Module Replacement for data store\\n module.hot.accept('./huron-store.js', () => {\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n });\\n}\\n\\nfunction hotReplace(key, module, newModules) {\\n insert.modules = newModules;\\n if (key === _huronStore2.default.sectionTemplatePath) {\\n insert.cycleSections();\\n } else {\\n insert.inserted = [];\\n insert.loadModule(key, module, false);\\n }\\n}\\n\\nfunction updateStore(newStore) {\\n insert.store = newStore;\\n}\"","/**\n * @module cli/actions\n */\n\n// Imports\nimport path from 'path';\nimport chalk from 'chalk';\nimport isEqual from 'lodash/isEqual';\n\nimport {\n updateHTML,\n deleteHTML,\n updatePrototype,\n deletePrototype,\n} from './handleHTML';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { updateKSS, deleteKSS } from './handleKSS';\nimport * as utils from './utils';\n\n/**\n * Recursively loop through initial watched files list from Gaze.\n *\n * @param {object} data - object containing directory and file paths\n * @param {object} store - memory store\n * @return {object} newStore - map object of entire data store\n */\nexport function initFiles(data, store, depth = 0) {\n const type = Object.prototype.toString.call(data);\n const huron = store.get('config');\n let newStore = store;\n let info;\n let files;\n\n switch (type) {\n case '[object Object]':\n files = Object.keys(data);\n newStore = files.reduce(\n (prevStore, file) => initFiles(data[file], prevStore, depth),\n newStore\n );\n break;\n\n case '[object Array]':\n newStore = data.reduce(\n (prevStore, file) => initFiles(file, prevStore, depth),\n newStore\n );\n break;\n\n case '[object String]':\n info = path.parse(data);\n\n // Only call update if data is a filepath and it's within the KSS source directory\n if (info.ext && !data.includes(huron.get('classNames'))) {\n newStore = updateFile(data, store);\n }\n break;\n\n default:\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating and writing file information based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} store - map object of map object of entire data store\n */\nexport function updateFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field;\n let section;\n\n if (filepath.includes(huron.get('sectionTemplate'))) {\n return utils.writeSectionTemplate(filepath, store);\n }\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n return updateHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n return updatePrototype(filepath, store);\n }\n\n console.log(chalk.red(`Failed to write file: ${file.name}`));\n break;\n\n // Handlebars template, external\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n return updateTemplate(filepath, section, store);\n }\n\n console.log(chalk.red(`Failed to find KSS section for ${filepath}`));\n\n break;\n\n // KSS documentation (default extension is `.css`)\n // Will also output a template if markup is inline\n // Note: inline markup does _not_ support handlebars currently\n case huron.get('kssExtension'):\n return updateKSS(filepath, store);\n\n // This should never happen if Gaze is working properly\n default:\n return store;\n }\n\n return store;\n}\n\n/**\n * Logic for deleting file information and files based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} newStore - map object of map object of entire data store\n */\nexport function deleteFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field = '';\n let section = null;\n let newStore = store;\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n newStore = deleteHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n newStore = deletePrototype(filepath, store);\n }\n break;\n\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n newStore = deleteTemplate(filepath, section, store);\n }\n break;\n\n case huron.get('kssExtension'):\n section = utils.getSection(filepath, false, store);\n\n if (section) {\n newStore = deleteKSS(filepath, section, store);\n }\n break;\n\n default:\n console.warn(chalk.red(`Could not delete: ${file.name}`));\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating localized classnames from CSS modules\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n *\n * @return void\n */\nexport function updateClassNames(filepath, store) {\n const classNamesPath = store.getIn(['config', 'classNames']);\n\n if (filepath.includes(classNamesPath)) {\n const oldClassnames = store.get('classNames');\n const newClassnames = utils.getClassnamesFromJSON(classNamesPath);\n\n if (!isEqual(oldClassnames, newClassnames)) {\n return store.set('classNames', newClassnames);\n }\n }\n\n return store;\n}\n","import { Map } from 'immutable';\n\nimport generateConfig from './generateConfig';\nimport { getClassnamesFromJSON } from './utils';\n// Create initial data structure\n\n// Merge Huron default webpack config with user config\nconst config = generateConfig();\n\n// Make sure the kss option is represented as an array\nconfig.huron.kss = [].concat(config.huron.kss);\n\n/* eslint-disable */\n/**\n * Initial structure for immutable data store\n *\n * @global\n */\nconst defaultStore = Map({\n types: [\n 'template',\n 'data',\n 'description',\n 'section',\n 'prototype',\n 'sections-template',\n ],\n config: Map(config.huron),\n classNames: getClassnamesFromJSON(config.huron.classNames),\n sections: Map({\n sectionsByPath: Map({}),\n sectionsByURI: Map({}),\n sorted: {},\n }),\n templates: Map({}),\n prototypes: Map({}),\n sectionTemplatePath: '',\n referenceDelimiter: '.',\n});\n/* eslint-enable */\n\nexport { defaultStore, config };\n","import { Gaze } from 'gaze';\nimport path from 'path';\n\nimport { removeTrailingSlash } from './utils';\nimport { defaultStore } from './defaultStore';\n\n/**\n * Huron configuration object\n *\n * @global\n */\nconst huron = defaultStore.get('config');\n\n/**\n * Available file extensions. Extensions should not include the leading '.'\n *\n * @global\n */\nexport const extensions = [\n huron.get('kssExtension'),\n huron.get('templates').extension,\n 'html',\n 'json',\n].map((extension) => extension.replace('.', ''));\n\n// Generate watch list for Gaze, start gaze\nexport const watchedFiles = [];\n\n// Watch section template\nwatchedFiles.push(path.resolve(huron.get('sectionTemplate')));\n\n// Watch cssmodules classname files (if they exist)\nif (huron.get('classNames')) {\n watchedFiles.push(\n // `${path.resolve(huron.get('classNames'))}/*.json`\n path.resolve(huron.get('classNames'))\n );\n}\n\n// Watch all provided kss directories\nhuron.get('kss').forEach((dir) => {\n watchedFiles.push(\n `${removeTrailingSlash(dir)}/**/*.+(${extensions.join('|')})`\n );\n});\n\n/**\n * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON\n *\n * @global\n */\nconst gaze = new Gaze(watchedFiles);\n\nexport default gaze;\n","/** @module cli/generate-config */\nimport path from 'path';\nimport url from 'url';\nimport fs from 'fs-extra';\nimport webpack from 'webpack';\nimport HTMLWebpackPlugin from 'html-webpack-plugin';\n\nimport program from './parseArgs';\nimport requireExternal from './requireExternal';\nimport defaultWebpack from '../defaultConfig/webpack.config';\nimport defaultHuron from '../defaultConfig/huron.config';\n\nconst cwd = process.cwd();\n\n// Require configs passed in by user from CLI\nlet defaultConfig = false;\nconst localConfig = requireExternal(\n path.resolve(program.webpackConfig)\n);\nconst localHuron = requireExternal(\n path.resolve(program.huronConfig)\n);\n\n/**\n * Generate a mutant hybrid of the huron default webpack config and your local webpack config\n *\n * @function generateConfig\n * @param {object} config - local webpack config\n * @return {object} newConfig - updated data store\n */\nexport default function generateConfig() {\n let newConfig = localConfig;\n let newHuron = localHuron;\n\n // Execute config function, if provided\n if ('function' === typeof newConfig) {\n newConfig = newConfig(program.env);\n }\n\n // Execute huron config function, if provided\n if ('function' === typeof newHuron) {\n newHuron = newHuron(program.env);\n }\n\n // Merge huron defaults with user settings\n newHuron = Object.assign({}, defaultHuron, newHuron);\n // Use user huron config to modify webpack defaults\n defaultConfig = defaultWebpack(newHuron);\n\n // Set ouput options\n newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output);\n newConfig.output.path = defaultConfig.output.path;\n newConfig.output.publicPath = defaultConfig.output.publicPath;\n\n // configure entries\n newConfig = configureEntries(newHuron, newConfig);\n\n // configure plugins\n newConfig = configurePlugins(newHuron, newConfig);\n\n // configure loaders\n newConfig = configureLoaders(newHuron, newConfig);\n\n // Add HTMLWebpackPlugin for each configured prototype\n newConfig = configurePrototypes(newHuron, newConfig);\n\n // Remove existing devServer settings\n delete newConfig.devServer;\n\n return {\n huron: newHuron,\n webpack: newConfig,\n };\n}\n\n/**\n * Configure and manage webpack entry points\n * @param {object} huron.entry Entry from huron config\n * @param {string} huron.root Path to root\n * @param {string} huron.port Port process is running on\n * @param {object} config Webpack config object\n * @return {object} Webpack config object with modified entries\n */\nfunction configureEntries({ entry, root, port }, config) {\n const originalEntry = config.entry[entry];\n const devServerEntries = program.production ? [] : [\n `webpack-dev-server/client/index.js?http://localhost:${port}/`,\n 'webpack/hot/dev-server',\n ];\n\n return Object.assign({},\n config,\n {\n entry: {\n [entry]: Array.prototype.concat(\n devServerEntries,\n path.join(cwd, root, 'huron-assets/index'),\n originalEntry\n ),\n },\n });\n}\n\n/**\n * Configure and manage webpack plugins\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePlugins(huron, config) {\n const newConfig = config;\n\n newConfig.plugins = config.plugins || [];\n\n if (!program.production) {\n if (newConfig.plugins && newConfig.plugins.length) {\n newConfig.plugins = newConfig.plugins.filter(\n (plugin) => 'HotModuleReplacementPlugin' !== plugin.constructor.name &&\n 'NamedModulesPlugin' !== plugin.constructor.name\n );\n }\n newConfig.plugins = newConfig.plugins\n .concat([\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NamedModulesPlugin(),\n ]);\n }\n\n return newConfig;\n}\n\n/**\n * Configure and manage webpack loaders\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configureLoaders(huron, config) {\n // Manage loaders\n const templatesLoader = huron.templates.rule || {};\n const newConfig = config;\n\n // Make sure we're only using templates loader for files in huron root\n templatesLoader.include = [path.join(cwd, huron.root, huron.output)];\n\n // Normalize module and module.rules\n newConfig.module = newConfig.module || {};\n newConfig.module.rules = newConfig.module.rules ||\n newConfig.module.loaders ||\n [];\n\n // Add default loaders\n newConfig.module.rules = defaultConfig.module.rules\n .concat(\n newConfig.module.rules,\n templatesLoader\n );\n\n return newConfig;\n}\n\n/**\n * Create an HTML webpack plugin for each configured prototype\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePrototypes(huron, config) {\n const wrapperTemplate = fs.readFileSync(\n path.join(__dirname, '../../templates/prototypeTemplate.hbs'),\n 'utf8'\n );\n\n const defaultHTMLPluginOptions = {\n title: 'Huron',\n window: huron.window,\n js: [],\n css: [],\n filename: 'index.html',\n template: path.join(\n cwd,\n huron.root,\n 'huron-assets/prototypeTemplate.hbs'\n ),\n inject: false,\n chunks: [huron.entry],\n };\n const newConfig = config;\n\n // Write prototype template file for HTML webpack plugin\n fs.outputFileSync(\n path.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'),\n wrapperTemplate\n );\n\n huron.prototypes.forEach((prototype) => {\n const newPrototype = prototype;\n let opts = {};\n\n // Merge configured settings with default settings\n if ('string' === typeof prototype) {\n opts = Object.assign({}, defaultHTMLPluginOptions, {\n title: prototype,\n filename: `${prototype}.html`,\n });\n } else if (\n 'object' === typeof prototype &&\n {}.hasOwnProperty.call(prototype, 'title')\n ) {\n // Create filename based on configured title if not provided\n if (!prototype.filename) {\n newPrototype.filename = `${prototype.title}.html`;\n }\n\n // Move css assets for this prototype,\n // reset css option with new file paths\n if (prototype.css) {\n newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron);\n }\n\n // Move js assets for this prototype,\n // reset js option with new file paths\n if (prototype.js) {\n newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron);\n }\n\n opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype);\n }\n\n // Move global css assets,\n // reset css option with new file paths\n if (huron.css.length) {\n opts.css = opts.css.concat(\n moveAdditionalAssets(huron.css, 'css', huron)\n );\n }\n\n // Move global js assets,\n // reset js option with new file paths\n if (huron.js.length) {\n opts.js = opts.js.concat(\n moveAdditionalAssets(huron.js, 'js', huron)\n );\n }\n\n // Push a new plugin for each configured prototype\n if (Object.keys(opts).length) {\n newConfig.plugins.push(\n new HTMLWebpackPlugin(opts)\n );\n }\n });\n\n return newConfig;\n}\n\n/**\n * Move relative (and local) js and css assets provided in huron options\n *\n * @param {array|string} assets - array of assets or single asset\n * @param {string} subdir - subdirectory in huron root from which to load additional asset\n * @param {object} huron - huron configuration object\n * @return {array} assetResults - paths to js and css assets\n */\nfunction moveAdditionalAssets(assets, subdir = '', huron) {\n const currentAssets = [].concat(assets);\n const assetResults = [];\n\n currentAssets.forEach((asset) => {\n const assetInfo = path.parse(asset);\n const assetURL = url.parse(asset);\n const sourcePath = path.join(cwd, asset);\n const outputPath = path.resolve(cwd, huron.root, subdir, assetInfo.base);\n const loadPath = path.join(subdir, assetInfo.base);\n let contents = false;\n\n if (\n !path.isAbsolute(asset) &&\n !assetURL.protocol\n ) {\n try {\n contents = fs.readFileSync(sourcePath);\n } catch (e) {\n console.warn(`could not read ${sourcePath}`);\n }\n\n if (contents) {\n fs.outputFileSync(outputPath, contents);\n assetResults.push(loadPath);\n }\n } else {\n assetResults.push(asset);\n }\n });\n\n return assetResults;\n}\n","/**\n * @module cli/html-handler\n */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport * as utils from './utils';\n\n/**\n * Handle update of an HMTL template\n *\n * @function updateHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateHTML(filepath, section, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n const newSection = section;\n\n if (content) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n content,\n store\n );\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(store, newSection);\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of an HMTL template\n *\n * @function deleteHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteHTML(filepath, section, store) {\n const newSection = section;\n\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n filepath,\n store\n );\n\n delete newSection.templatePath;\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle update for a prototype file\n *\n * @function updatePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updatePrototype(filepath, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n\n if (content) {\n const requirePath = utils.writeFile(\n file.name,\n 'prototype',\n filepath,\n content,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of a prototype file\n *\n * @function deletePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deletePrototype(filepath, store) {\n const file = path.parse(filepath);\n const requirePath = utils.removeFile(\n file.name,\n 'prototype',\n filepath,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n}\n","/**\n * @module cli/kss-handler\n */\n\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { parse } from 'kss';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { writeStore } from './requireTemplates';\n\n/**\n * Handle update of a KSS section\n *\n * @function updateKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateKSS(filepath, store) {\n const kssSource = fs.readFileSync(filepath, 'utf8');\n const huron = store.get('config');\n const oldSection = utils.getSection(filepath, false, store) || {};\n const file = path.parse(filepath);\n let newStore = store;\n\n if (kssSource) {\n const styleguide = parse(kssSource, huron.get('kssOptions'));\n\n if (styleguide.data.sections.length) {\n const section = utils.normalizeSectionData(\n styleguide.data.sections[0]\n );\n\n if (section.reference && section.referenceURI) {\n // Update or add section data\n newStore = updateSectionData(\n filepath,\n section,\n oldSection,\n newStore\n );\n\n // Remove old section data if reference URI has changed\n if (oldSection &&\n oldSection.referenceURI &&\n oldSection.referenceURI !== section.referenceURI\n ) {\n newStore = unsetSection(oldSection, file, newStore, false);\n }\n\n writeStore(newStore);\n console.log(\n chalk.green(\n `KSS source in ${filepath} changed or added`\n )\n );\n return newStore;\n }\n\n console.log(\n chalk.magenta(\n `KSS section in ${filepath} is missing a section reference`\n )\n );\n return newStore;\n }\n\n console.log(chalk.magenta(`No KSS found in ${filepath}`));\n return newStore;\n }\n\n if (oldSection) {\n newStore = deleteKSS(filepath, oldSection, newStore);\n }\n\n console.log(chalk.red(`${filepath} not found or empty`)); // eslint-disable-line no-console\n return newStore;\n}\n\n/**\n * Handle removal of a KSS section\n *\n * @function deleteKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteKSS(filepath, section, store) {\n const file = path.parse(filepath);\n\n if (section.reference && section.referenceURI) {\n // Remove section data from memory store\n return unsetSection(section, file, store, true);\n }\n\n return store;\n}\n\n/**\n * Update the sections store with new data for a specific section\n *\n * @function updateSectionData\n * @param {object} section - contains updated section data\n * @param {string} kssPath - path to KSS section\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nfunction updateSectionData(kssPath, section, oldSection, store) {\n const sectionFileInfo = path.parse(kssPath);\n const dataFilepath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n const isInline = null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = sortSection(\n store.getIn(['sections', 'sorted']),\n section.reference,\n store.get('referenceDelimiter')\n );\n const newSection = Object.assign({}, oldSection, section);\n let newStore = store;\n\n // Required for reference from templates and data\n newSection.kssPath = kssPath;\n\n if (isInline) {\n // Set section value if inlineTempalte() returned a path\n newStore = updateInlineTemplate(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n } else {\n // Remove inline template, if it exists\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n kssPath,\n store\n );\n // Update markup and data fields\n newStore = updateTemplateFields(\n sectionFileInfo,\n oldSection,\n newSection,\n newStore\n );\n }\n\n // Output section description\n newStore = updateDescription(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n\n // Output section data to a JSON file\n newSection.sectionPath = utils.writeSectionData(\n newStore,\n newSection,\n dataFilepath\n );\n\n // Update section sorting\n return newStore\n .setIn(\n ['sections', 'sorted'],\n newSort\n )\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle detection and output of inline templates, which is markup written\n * in the KSS documentation itself as opposed to an external file\n *\n * @function updateInlineTemplate\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new template path info\n */\nfunction updateInlineTemplate(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we have inline markup\n if (fieldShouldOutput(oldSection, section, 'markup')) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n section.markup,\n store\n );\n newSection.templateContent = section.markup;\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle output of section description\n *\n * @function updateDescription\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new descripton path info\n */\nfunction updateDescription(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we don't have previous KSS or the KSS has been updated\n if (fieldShouldOutput(oldSection, section, 'description')) {\n // Write new description\n newSection.descriptionPath = utils.writeFile(\n section.referenceURI,\n 'description',\n filepath,\n section.description,\n store\n );\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle Data and Markup fields\n *\n * @function updateTemplateFields\n * @param {string} file - File data for KSS file from path.parse()\n * @param {object} oldSection - outdated KSS data\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} KSS section data with updated asset paths\n */\nfunction updateTemplateFields(file, oldSection, section, store) {\n const kssPath = path.format(file);\n const newSection = section;\n let filepath = '';\n let oldFilepath = '';\n let newStore = store;\n\n ['data', 'markup'].forEach((field) => {\n if (newSection[field]) {\n if (oldSection[field]) {\n oldFilepath = path.join(file.dir, oldSection[field]);\n newStore = deleteTemplate(\n oldFilepath,\n oldSection,\n newStore\n );\n }\n\n filepath = path.join(file.dir, newSection[field]);\n newStore = updateTemplate(\n filepath,\n newSection,\n newStore\n );\n } else {\n delete newSection[field];\n newStore = newStore\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n });\n\n return newStore;\n}\n\n/**\n * Remove a section from the memory store\n *\n * @function unsetSection\n * @param {object} section - contains updated section data\n * @param {string} file - file object from path.parse()\n * @param {object} store - memory store\n * @param {bool} removed - has the file been removed or just the section information changed?\n * @return {object} updated data store with new descripton path info\n */\nfunction unsetSection(section, file, store, removed) {\n const sorted = store.getIn(['sections', 'sorted']);\n const kssPath = path.format(file);\n const dataFilepath = path.join(file.dir, `${file.name}.json`);\n const isInline = section.markup &&\n null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = unsortSection(\n sorted,\n section.reference,\n store.get('referenceDelimiter')\n );\n let newStore = store;\n\n // Remove old section data\n utils.removeFile(\n section.referenceURI,\n 'section',\n dataFilepath,\n newStore\n );\n\n // Remove associated inline template\n if (isInline) {\n utils.removeFile(section.referenceURI, 'template', kssPath, newStore);\n }\n\n // Remove description template\n utils.removeFile(section.referenceURI, 'description', kssPath, newStore);\n\n // Remove data from sectionsByPath if file has been removed\n if (removed) {\n newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]);\n }\n\n return newStore\n .deleteIn(['sections', 'sectionsByURI', section.referenceURI])\n .setIn(['sections', 'sorted'], newSort);\n}\n\n/**\n * Sort sections and subsections\n *\n * @function sortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction sortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const newSort = sorted[parts[0]] || {};\n const newSorted = sorted;\n\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = sortSection(\n newSort,\n newParts.join(delimiter),\n delimiter\n );\n } else {\n newSorted[parts[0]] = newSort;\n }\n\n return newSorted;\n}\n\n/**\n * Remove a section from the sorted sections\n *\n * @function unsortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction unsortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const subsections = Object.keys(sorted[parts[0]]);\n const newSorted = sorted;\n\n if (subsections.length) {\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = unsortSection(\n newSorted[parts[0]],\n newParts.join(delimiter),\n delimiter\n );\n }\n } else {\n delete newSorted[parts[0]];\n }\n\n return newSorted;\n}\n\n/**\n * Compare a KSS field between old and new KSS data to see if we need to output\n * a new module for that field\n *\n * @function fieldShouldOutput\n * @param {object} oldSection - currently sorted sections\n * @param {object} newSection - reference URI of section to sort\n * @param {string} field - KSS field to check\n * @return {bool} output a new module for the KSS field\n */\nfunction fieldShouldOutput(oldSection, newSection, field) {\n return (oldSection &&\n (oldSection[field] !== newSection[field] ||\n oldSection.referenceURI !== newSection.referenceURI)\n ) ||\n !oldSection;\n}\n","/** @module cli/template-handler */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\n\n/**\n * Handle update of a template or data (json) file\n *\n * @function updateTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function updateTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const pairPath = utils.getTemplateDataPair(file, section, store);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n let content = false;\n\n try {\n content = fs.readFileSync(filepath, 'utf8');\n } catch (e) {\n console.log(chalk.red(`${filepath} does not exist`));\n }\n\n if (content) {\n const requirePath = utils.writeFile(\n newSection.referenceURI,\n type,\n filepath,\n content,\n newStore\n );\n newSection[`${type}Path`] = requirePath;\n\n if ('template' === type) {\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(newStore, newSection);\n }\n\n return newStore\n .setIn(\n ['templates', requirePath],\n pairPath\n )\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle removal of a template or data (json) file\n *\n * @function deleteTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function deleteTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n\n // Remove partner\n const requirePath = utils.removeFile(\n newSection.referenceURI,\n type,\n filepath,\n newStore\n );\n delete newSection[`${type}Path`];\n\n return newStore\n .deleteIn(['templates', requirePath])\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n}\n","// Local imports\nimport chalk from 'chalk';\n\nimport {\n initFiles,\n updateFile,\n deleteFile,\n updateClassNames,\n} from './actions';\nimport { requireTemplates, writeStore } from './requireTemplates';\nimport { matchKssDir } from './utils';\nimport program from './parseArgs';\nimport startWebpack from './server';\nimport { defaultStore, config } from './defaultStore';\nimport gaze from './fileWatcher';\n\n/**\n * Initialize data store with files from gaze and original data structure\n *\n * @global\n */\nconst huron = defaultStore.get('config');\nlet store = initFiles(gaze.watched(), defaultStore);\n\nrequireTemplates(store);\nwriteStore(store);\n\n// If building for production, close gaze and exit process once initFiles is done.\nif (program.production) {\n gaze.close();\n}\n\n/** @module cli/gaze */\ngaze.on('all', (event, filepath) => {\n store = updateClassNames(filepath, store);\n writeStore(store);\n});\n\n/**\n * Anonymous handler for Gaze 'changed' event indicating a file has changed\n *\n * @callback changed\n * @listens gaze:changed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('changed', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n }\n\n console.log(chalk.green(`${filepath} updated!`));\n});\n\n/**\n * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories\n *\n * @callback added\n * @listens gaze:added\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('added', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${filepath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed\n *\n * @callback renamed\n * @listens gaze:renamed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('renamed', (newPath, oldPath) => {\n if (matchKssDir(newPath, huron)) {\n store = deleteFile(oldPath, store);\n store = updateFile(newPath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${newPath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'deleted' event indicating a file has been removed\n *\n * @callback deleted\n * @listens gaze:deleted\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('deleted', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = deleteFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.red(`${filepath} deleted`));\n});\n\n// Start webpack or build for production\nstartWebpack(config);\n","/** @module cli/parse-arguments */\n/* eslint-disable space-unary-ops */\n\nimport program from 'commander';\nimport path from 'path';\n\n// Requires\n/** @global */\n\n// @todo this may be deprecated with webpack 4\n\n/**\n * Process huron CLI arguments\n *\n * @function parseArgs\n * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production\n */\nfunction parseArgs() {\n const envArg = {};\n\n process.argv = process.argv.filter((arg) => {\n if (-1 !== arg.indexOf('--env')) {\n const envParts = arg\n .split('.')[1]\n .split('=');\n\n envArg[envParts[0]] = envParts[1] || true;\n return false;\n }\n\n return true;\n });\n\n program.version('1.0.1')\n .option(\n '-c, --huron-config [huronConfig]',\n '[huronConfig] for all huron options',\n path.resolve(__dirname, '../defaultConfig/huron.config.js')\n )\n .option(\n '-w, --webpack-config [webpackConfig]',\n '[webpackConfig] for all webpack options',\n path.resolve(__dirname, '../defaultConfig/webpack.config.js')\n )\n .option('-p, --production', 'compile assets once for production');\n\n program.env = envArg;\n\n // Only parse if we're not running tests\n if (\n ! process.env.npm_lifecycle_event ||\n 'test' !== process.env.npm_lifecycle_event\n ) {\n program.parse(process.argv);\n }\n}\n\nparseArgs();\n/* eslint-enable */\n\nexport default program;\n","// Necessary to remove require statement from Webpack processing preserve it in output\n/* eslint-disable import/no-dynamic-require, global-require */\nexport default function requireExternal(requirePath) {\n return require(requirePath);\n}\n/* eslint-enable */\n","/** @module cli/require-templates */\nimport path from 'path';\nimport fs from 'fs-extra';\n\n// We need to prepend this to the browser script as a string but still want to transpile it,\n// hence loading it using `raw-loader` so we receive a string from webpack\n/* eslint-disable */\nimport hotTemplate from '!raw-loader!babel-loader!../../templates/hotTemplate';\n/* eslint-enable */\n\nconst cwd = process.cwd();\nconst huronScript = fs.readFileSync(\n path.join(__dirname, '../web/index.js'),\n 'utf8'\n);\n\n/**\n * Write code for requiring all generated huron assets\n *\n * @function requireTemplates\n * @param {object} store - memory store\n */\nexport const requireTemplates = function requireTemplates(store) {\n const huron = store.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n // These will be used to replace strings in the hotTemplate.\n // In order to accurately replace strings but still keep things parseable by eslint and babel,\n // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object.\n // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`,\n // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`.\n const hotVariableScope = {\n sectionTemplatePath: `'${huron.get('sectionTemplate')}'`,\n requireRegex: new RegExp(`\\\\.html|\\\\.json|\\\\${\n huron.get('templates').extension\n }$`),\n requirePath: `'../${huron.get('output')}'`,\n };\n const hotTemplateTransformed = Object.keys(hotVariableScope)\n .reduce(\n (acc, curr) => acc.replace(\n new RegExp(`hotScope.${curr}`, 'g'),\n hotVariableScope[curr]\n ), hotTemplate\n );\n\n // Write the contents of this script.\n fs.outputFileSync(\n path.join(outputPath, 'index.js'),\n hotTemplateTransformed\n );\n fs.outputFileSync(\n path.join(outputPath, 'insertNodes.js'),\n huronScript\n );\n};\n\n/**\n * Output entire data store to a JS object and handle if any KSS data has changed\n *\n * @function writeStore\n * @param {object} store - memory store\n * @param {string} changed - filepath of changed KSS section, if applicable\n */\nexport const writeStore = function writeStore(store, newStore = false) {\n const updatedStore = newStore || store;\n const huron = updatedStore.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n\n // Write updated data store\n fs.outputFileSync(\n path.join(outputPath, 'huron-store.js'),\n `module.exports = ${JSON.stringify(updatedStore.toJSON())}`\n );\n};\n\n","/** @module cli/webpack-server */\nimport webpack from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\nimport chalk from 'chalk';\nimport open from 'opn';\n\nimport createDevServerConfig from '../../config/devServer.config';\nimport program from './parseArgs';\nimport { removeTrailingSlash } from './utils';\n\n/**\n * Spin up webpack-dev-server or, if production flag is set, run webpack a single time\n *\n * @function startWebpack\n * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig}\n * @see {@link module:cli/generate-config generateConfig}\n */\nexport default function startWebpack(config) {\n const {\n huron,\n webpack: webpackConfig,\n } = config;\n const compiler = webpack(webpackConfig);\n\n if (program.progress) {\n compiler.apply(new webpack.ProgressPlugin((percentage, msg) => {\n console.log(`${(percentage * 100)}% `, msg);\n }));\n }\n\n if (program.production) {\n compiler.run((err, stats) => {\n const info = stats.toJson();\n\n if (err) {\n console.log(err);\n }\n\n if (stats.hasErrors()) {\n console.error(\n chalk.red(\n 'Webpack encountered errors during compile: ',\n info.errors\n )\n );\n }\n\n if (stats.hasWarnings()) {\n console.error(chalk.yellow('Webpack encountered warnings during compile: ', info.warnings)); // eslint-disable-line max-len\n }\n });\n } else {\n const server = new WebpackDevServer(compiler, createDevServerConfig(huron));\n const prototypeName = huron.prototypes[0].title || huron.prototypes[0];\n\n server.listen(\n huron.port,\n 'localhost',\n (err) => {\n if (err) {\n return console.log(err);\n }\n\n console.log(`Listening at http://localhost:${huron.port}/`);\n open(`http://localhost:${huron.port}/${\n removeTrailingSlash(huron.root)\n }/${prototypeName}.html`);\n return true;\n }\n );\n }\n}\n","/**\n * @module cli/utilities\n */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nconst cwd = process.cwd(); // Current working directory\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function normalizeSectionData\n * @param {object} section - section data\n * @return {object} section data\n */\nexport function normalizeSectionData(section) {\n const data = section.data || section;\n\n if (!data.referenceURI || '' === data.referenceURI) {\n data.referenceURI = section.referenceURI();\n }\n\n return data;\n}\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function writeSectionData\n * @param {object} store - data store\n * @param {object} section - section data\n * @param {string} sectionPath - output destination for section data file\n */\nexport function writeSectionData(store, section, sectionPath = false) {\n let outputPath = sectionPath;\n let sectionFileInfo;\n\n if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) {\n sectionFileInfo = path.parse(section.kssPath);\n outputPath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n }\n\n // Output section data\n if (outputPath) {\n return writeFile(\n section.referenceURI,\n 'section',\n outputPath,\n JSON.stringify(section),\n store\n );\n }\n\n console.warn(chalk.red(`Failed to write data for ${section.referenceURI}`));\n return false;\n}\n\n/**\n * Find .json from a template file or vice versa\n *\n * @function getTemplateDataPair\n * @param {object} file - file object from path.parse()\n * @param {object} section - KSS section data\n * @return {string} relative path to module JSON file\n */\nexport function getTemplateDataPair(file, section, store) {\n const huron = store.get('config');\n const kssDir = matchKssDir(file.dir, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const partnerType = '.json' === file.ext ? 'template' : 'data';\n const partnerExt = '.json' === file.ext ?\n huron.get('templates').extension :\n '.json';\n\n const pairPath = path.join(\n componentPath,\n generateFilename(\n section.referenceURI,\n partnerType,\n partnerExt,\n store\n )\n );\n\n return `./${pairPath}`;\n }\n\n return false;\n}\n\n/**\n * Normalize a section title for use as a filename\n *\n * @function normalizeHeader\n * @param {string} header - section header extracted from KSS documentation\n * @return {string} modified header, lowercase and words separated by dash\n */\nexport function normalizeHeader(header) {\n return header\n .toLowerCase()\n .replace(/\\s?\\W\\s?/g, '-');\n}\n\n/**\n * Wrap html in required template tags\n *\n * @function wrapMarkup\n * @param {string} content - html or template markup\n * @param {string} templateId - id of template (should be section reference)\n * @return {string} modified HTML\n */\nexport function wrapMarkup(content, templateId) {\n return `\n\n\\n`;\n}\n\n/**\n * Generate a filename based on referenceURI, type and file object\n *\n * @function generateFilename\n * @param {string} id - The name of the file (with extension).\n * @param {string} type - the type of file output\n * @param {object} ext - file extension\n * @param {store} store - data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function generateFilename(id, type, ext, store) {\n // Type of file and its corresponding extension(s)\n const types = store.get('types');\n const outputExt = '.scss' !== ext ? ext : '.html';\n\n /* eslint-disable */\n if (-1 === types.indexOf(type)) {\n console.log(`Huron data ${type} does not exist`);\n return false;\n }\n /* eslint-enable */\n\n return `${id}-${type}${outputExt}`;\n}\n\n/**\n * Copy an HTML file into the huron output directory.\n *\n * @function writeFile\n * @param {string} id - The name of the file (with extension).\n * @param {string} content - The content of the file to write.\n * @param {string} type - the type of file output\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function writeFile(id, type, filepath, content, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n let newContent = content;\n\n if ('data' !== type && 'section' !== type) {\n newContent = wrapMarkup(content, id);\n }\n\n try {\n fs.outputFileSync(outputPath, newContent);\n console.log(chalk.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log(chalk.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Delete a file in the huron output directory\n *\n * @function removeFile\n * @param {string} filename - The name of the file (with extension).\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function removeFile(id, type, filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n\n try {\n fs.removeSync(outputPath);\n console.log(chalk.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log(chalk.red(`${outputRelative} does not exist or cannot be deleted`)); // eslint-disable-line\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Write a template for sections\n *\n * @function writeSectionTemplate\n * @param {string} filepath - the original template file\n * @param {object} store - data store\n * @return {object} updated store\n */\nexport function writeSectionTemplate(filepath, store) {\n const huron = store.get('config');\n const sectionTemplate = wrapMarkup(fs.readFileSync(filepath, 'utf8'));\n const componentPath = './huron-assets/section.hbs';\n const output = path.join(\n cwd,\n huron.get('root'),\n componentPath\n );\n\n // Move huron script and section template into huron root\n fs.outputFileSync(output, sectionTemplate);\n console.log(chalk.green(`writing section template to ${output}`)); // eslint-disable-line no-console\n\n return store.set('sectionTemplatePath', componentPath);\n}\n\n/**\n * Request for section data based on section reference\n *\n * @function writeSectionTemplate\n * @param {string} search - key on which to match section\n * @param {field} string - field in which to look to determine section\n * @param {obj} store - sections memory store\n */\nexport function getSection(search, field, store) {\n const sectionValues = store\n .getIn(['sections', 'sectionsByPath'])\n .valueSeq();\n let selectedSection = false;\n\n if (field) {\n selectedSection = sectionValues\n .filter((value) => value[field] === search)\n .get(0);\n } else {\n selectedSection = store.getIn(['sections', 'sectionsByPath', search]);\n }\n\n return selectedSection;\n}\n\n/**\n * Find which configured KSS directory a filepath exists in\n *\n * @function matchKssDir\n * @param {string} filepath - filepath to search for\n * @param {object} huron - huron configuration\n * @return {string} kssMatch - relative path to KSS directory\n */\nexport function matchKssDir(filepath, huron) {\n const kssSource = huron.get('kss');\n // Include forward slash in our test to make sure we're matchin a directory, not a file extension\n const kssMatch = kssSource.filter((dir) => filepath.includes(`/${dir}`));\n\n if (kssMatch.length) {\n return kssMatch[0];\n }\n\n return false;\n}\n\n/**\n * Merge JSON files for css modules classnames in a provided directory\n *\n * @function mergeClassnameJSON\n * @param {string} directory - directory containing classname JSON files\n *\n * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within\n * the returned object by filename. (e.g. article.json -> { article: {...json contents}})\n */\n// Have the huron config provide a path to a file that provides the classnames mainfest\n// and use wahtever is in that\nexport function getClassnamesFromJSON(filepath) {\n const fileInfo = path.parse(filepath);\n let classNames = {};\n\n if ('.json' === fileInfo.ext) {\n try {\n const contents = fs.readFileSync(\n filepath,\n 'utf8'\n );\n classNames = JSON.parse(contents);\n } catch (e) {\n console.warn(chalk.red(e));\n }\n }\n\n // return { [filepath]: classNames };\n return classNames;\n}\n\n// export function mergeClassnameJSON(directory) {\n// let files;\n\n// // If no config is provided, return immediately\n// if (!directory) {\n// return {};\n// }\n\n// // Try to read through classnames directory\n// try {\n// files = fs.readdirSync(directory);\n// } catch (e) {\n// console.warn(chalk.red(e));\n// }\n\n// // Merge classname json files\n// const classNamesMerged = files.reduce((acc, file) => {\n// const fileInfo = path.parse(file);\n// let classNames = {};\n\n// if ('.json' === fileInfo.ext) {\n// try {\n// const contents = fs.readFileSync(\n// path.join(directory, file),\n// 'utf8'\n// );\n// classNames = JSON.parse(contents);\n// } catch (e) {\n// console.warn(chalk.red(e));\n// }\n// }\n\n// return Object.assign({}, acc, { [fileInfo.name]: classNames });\n// }, {});\n\n// return classNamesMerged;\n// }\n\n/**\n * Remove the trailing slash from a provided directory\n *\n * @function removeTrailingSlash\n * @param {string} directory - directory path\n * @return {string} directory - directory path with trailing slash removed\n */\nexport function removeTrailingSlash(directory) {\n if ('/' === directory.slice(-1)) {\n return directory.slice(0, -1);\n }\n\n return directory;\n}\n","import path from 'path';\n\nexport default {\n css: [],\n entry: 'huron',\n js: [],\n kss: 'css/',\n kssExtension: '.css',\n kssOptions: {\n multiline: true,\n markdown: true,\n custom: ['data'],\n },\n output: 'partials',\n port: 8080,\n prototypes: ['index'],\n root: 'dist/',\n sectionTemplate: path.join(__dirname, '../../templates/section.hbs'),\n classNames: false,\n templates: {\n rule: {\n test: /\\.(hbs|handlebars)$/,\n use: 'handlebars-loader',\n },\n extension: '.hbs',\n },\n window: {},\n};\n","import webpack from 'webpack';\nimport path from 'path';\n\nimport program from '../cli/parseArgs';\n\nexport default ({ root, output }) => ({\n mode: 'development',\n entry: {},\n output: {\n path: path.join(process.cwd(), root),\n publicPath: program.production ? '' :\n `/${root}`,\n filename: '[name].js',\n chunkFilename: '[name].chunk.min.js',\n },\n optimization: {\n namedModules: true,\n },\n plugins: [\n new webpack.HotModuleReplacementPlugin(),\n ],\n resolve: {\n modulesDirectories: [\n path.resolve(__dirname, '../src/js'),\n ],\n },\n resolveLoader: {\n modulesDirectories: [\n 'web_loaders',\n 'web_modules',\n 'node_loaders',\n 'node_modules',\n path.resolve(__dirname, '../node_modules'),\n ],\n },\n module: {\n rules: [\n {\n test: /\\.html$/,\n include: [path.join(process.cwd(), root, output)],\n use: 'html-loader',\n },\n {\n test: /\\.(hbs|handlebars)$/,\n include: [path.join(process.cwd(), root, 'huron-assets')],\n use: {\n loader: 'handlebars-loader',\n query: {\n helperDirs: [path.join(\n __dirname,\n '../../',\n 'templates/handlebarsHelpers'\n )],\n },\n },\n },\n ],\n },\n});\n","module.exports = require(\"chalk\");","module.exports = require(\"commander\");","module.exports = require(\"fs-extra\");","module.exports = require(\"gaze\");","module.exports = require(\"html-webpack-plugin\");","module.exports = require(\"immutable\");","module.exports = require(\"kss\");","module.exports = require(\"lodash/isEqual\");","module.exports = require(\"opn\");","module.exports = require(\"path\");","module.exports = require(\"url\");","module.exports = require(\"webpack\");","module.exports = require(\"webpack-dev-server\");"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AAjBA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;AC0BA;AA8CA;AA8DA;AAwDA;AACA;AA1LA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;AADA;AACA;;;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AACA;AA4BA;AACA;AACA;AACA;;;;;;;AAjEA;;;;AAIA;AAoEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAvCA;AACA;AAyCA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnCA;AACA;AAqCA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3MA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAnBA;AAqBA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AAAA;AACA;;;AACA;AACA;AAAA;AACA;;;AACA;;;;;AAKA;AACA;AACA;;;;;AAKA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;AAKA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBA;AACA;AA9BA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AAdA;AAeA;AACA;AAGA;AACA;AAGA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AAIA;AAGA;AACA;AADA;AADA;AASA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAZA;AAcA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3RA;AA0CA;AA+BA;AA+BA;AACA;AAtHA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAjDA;;;AA0DA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AASA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AAMA;AAIA;;;;;;;;;;;;;;;;;AChHA;AAsEA;AACA;AAxFA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAMA;AACA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAlFA;;;;AA2FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAMA;AACA;AAMA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAKA;AACA;AAaA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AAKA;;;;;;;;;;;;;;;;;AChaA;AA0DA;AACA;AA1EA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AAPA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAUA;;;;;;;;;;;;;;AClGA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;AAhBA;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpGA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAXA;AACA;AACA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1DA;AAFA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACJA;AACA;;;AAAA;AACA;;;AAIA;AACA;;;;;AAAA;AACA;AACA;AACA;AAPA;AACA;AACA;AANA;AACA;AAUA;AACA;AAIA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AALA;AAOA;AACA;AAOA;AACA;AAIA;AAIA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;;;;;ACxDA;AACA;AAjBA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;;;;;;;;;;;;;;;;;ACvDA;AAkBA;AAmCA;AAqCA;AAcA;AAkBA;AAyBA;AA4CA;AAuCA;AAyBA;AAyBA;AAuBA;AAiEA;AACA;AA9XA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;;;;;;;AATA;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;;AAFA;AAKA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtYA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AALA;AAOA;AAxBA;;;;;;;;;;;;;;;;;;ACFA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AALA;AAOA;AACA;AADA;AAGA;AAGA;AACA;AADA;AAKA;AACA;AADA;AASA;AACA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAHA;AAPA;AA9BA;;;;;;;;;;;;;;;;;;;;;;;ACLA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;A","sourceRoot":""} \ No newline at end of file diff --git a/src/cli/defaultStore.js b/src/cli/defaultStore.js index 6a5ef11..a34df5e 100644 --- a/src/cli/defaultStore.js +++ b/src/cli/defaultStore.js @@ -1,7 +1,7 @@ import { Map } from 'immutable'; import generateConfig from './generateConfig'; -// import { getClassnamesFromJSON } from './utils'; +import { getClassnamesFromJSON } from './utils'; // Create initial data structure // Merge Huron default webpack config with user config @@ -26,7 +26,7 @@ const defaultStore = Map({ 'sections-template', ], config: Map(config.huron), - classNames: config.huron.classNames, + classNames: getClassnamesFromJSON(config.huron.classNames), sections: Map({ sectionsByPath: Map({}), sectionsByURI: Map({}), diff --git a/src/cli/utils.js b/src/cli/utils.js index 8b8b22d..5680c01 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -307,16 +307,14 @@ export function matchKssDir(filepath, huron) { } /** - * Merge JSON files for css modules classnames in a provided directory + * Ingest the classnames from the file specified in the huron config. * - * @function mergeClassnameJSON - * @param {string} directory - directory containing classname JSON files + * @function getClassnamesFromJSON + * @param {string} filepath - file containing classname JSON files * - * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within + * @return {object} merged classnames. contents of each JSON file is nested within * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) */ -// Have the huron config provide a path to a file that provides the classnames mainfest -// and use wahtever is in that export function getClassnamesFromJSON(filepath) { const fileInfo = path.parse(filepath); let classNames = {}; @@ -333,47 +331,9 @@ export function getClassnamesFromJSON(filepath) { } } - return { [filepath]: classNames }; + return classNames; } -// export function mergeClassnameJSON(directory) { -// let files; - -// // If no config is provided, return immediately -// if (!directory) { -// return {}; -// } - -// // Try to read through classnames directory -// try { -// files = fs.readdirSync(directory); -// } catch (e) { -// console.warn(chalk.red(e)); -// } - -// // Merge classname json files -// const classNamesMerged = files.reduce((acc, file) => { -// const fileInfo = path.parse(file); -// let classNames = {}; - -// if ('.json' === fileInfo.ext) { -// try { -// const contents = fs.readFileSync( -// path.join(directory, file), -// 'utf8' -// ); -// classNames = JSON.parse(contents); -// } catch (e) { -// console.warn(chalk.red(e)); -// } -// } - -// return Object.assign({}, acc, { [fileInfo.name]: classNames }); -// }, {}); - -// return classNamesMerged; -// } - /** * Remove the trailing slash from a provided directory * diff --git a/src/defaultConfig/README.md b/src/defaultConfig/README.md index e46c085..869e57d 100644 --- a/src/defaultConfig/README.md +++ b/src/defaultConfig/README.md @@ -27,7 +27,7 @@ Object containing options to pass through to KSS-node. I can't find a good sourc * **prototypes** {array} : default `['index']` - Array of prototypes to generate via HTML webpack plugin. For each array entry you can either pass in a single string corresponding to the title of the prototype, or an object containing option overrides for HTML webpack plugin [(configuration)](https://github.com/ampedandwired/html-webpack-plugin). If you use an object, you must at least provide a `title` field. The title field, whether passed in as a string or the `title` property value, must be the same name as your prototype file located in your `prototypes` directory. So for example, if you provided `['homepage']` in the prototypes option, you would need to have a `prototypes/prototype-homepage.html` file in order for the prototype to display correctly. * **root** {string} : default `'dist/'` - Root directory for `webpack-dev-server`. All static assets you need for your prototype(s) should be located in this directory. The `output` option should be relative to this path. * **sectionTemplate** {string} : default `path.join(__dirname, '../templates/section.hbs')` - Override for the template used to produce styleguide sections. This should always be a handlebars file, and will utilize the KSS data as its source. -* **classNames** {string} : For use with CSS Modules. This option should point to a directory with JSON files containing localized classnames. NOTE: at the moment this will only work a CSS Modules implementation that produces JSON output, like `postcss-modules`. The CSS modules implementation offered by the `modules` option in `css-loader` currently will not work. +* **classNames** {string} : For use with CSS Modules. This option should point to a filepath with JSON files containing localized classnames. NOTE: at the moment this will only work a CSS Modules implementation that produces JSON output, like `postcss-modules`. The CSS modules implementation offered by the `modules` option in `css-loader` currently will not work. * **templates** {object} : default ```javascript From 053ca1f5140f35fd04a5b3f974619925ec867b4b Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Tue, 5 Jun 2018 15:10:14 -0700 Subject: [PATCH 20/24] Fresh build. --- dist/cli/index.js | 2391 +---------------------------------------- dist/cli/index.js.map | 2 +- dist/web/index.js | 2150 +----------------------------------- dist/web/index.js.map | 2 +- 4 files changed, 5 insertions(+), 4540 deletions(-) diff --git a/dist/cli/index.js b/dist/cli/index.js index 63c451e..47ca392 100644 --- a/dist/cli/index.js +++ b/dist/cli/index.js @@ -1,2391 +1,2 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "../"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./config/devServer.config.js": -/*!************************************!*\ - !*** ./config/devServer.config.js ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = huron => ({ - hot: true, - host: 'localhost', - quiet: false, - noInfo: false, - overlay: true, - stats: { - colors: true, - hash: false, - version: false, - assets: false, - chunks: false, - modules: false, - reasons: false, - children: false, - source: false - }, - publicPath: `/${huron.root}` -}); - -/***/ }), - -/***/ "./node_modules/raw-loader/index.js!./node_modules/babel-loader/lib/index.js!./templates/hotTemplate.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/raw-loader!./node_modules/babel-loader/lib!./templates/hotTemplate.js ***! - \********************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = "'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}" - -/***/ }), - -/***/ "./src/cli/actions.js": -/*!****************************!*\ - !*** ./src/cli/actions.js ***! - \****************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.initFiles = initFiles; -exports.updateFile = updateFile; -exports.deleteFile = deleteFile; -exports.updateClassNames = updateClassNames; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _isEqual = __webpack_require__(/*! lodash/isEqual */ "lodash/isEqual"); - -var _isEqual2 = _interopRequireDefault(_isEqual); - -var _handleHTML = __webpack_require__(/*! ./handleHTML */ "./src/cli/handleHTML.js"); - -var _handleTemplates = __webpack_require__(/*! ./handleTemplates */ "./src/cli/handleTemplates.js"); - -var _handleKSS = __webpack_require__(/*! ./handleKSS */ "./src/cli/handleKSS.js"); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Recursively loop through initial watched files list from Gaze. - * - * @param {object} data - object containing directory and file paths - * @param {object} store - memory store - * @return {object} newStore - map object of entire data store - */ -function initFiles(data, store, depth = 0) { - const type = Object.prototype.toString.call(data); - const huron = store.get('config'); - let newStore = store; - let info; - let files; - - switch (type) { - case '[object Object]': - files = Object.keys(data); - newStore = files.reduce((prevStore, file) => initFiles(data[file], prevStore, depth), newStore); - break; - - case '[object Array]': - newStore = data.reduce((prevStore, file) => initFiles(file, prevStore, depth), newStore); - break; - - case '[object String]': - info = _path2.default.parse(data); - - // Only call update if data is a filepath and it's within the KSS source directory - if (info.ext && !data.includes(huron.get('classNames'))) { - newStore = updateFile(data, store); - } - break; - - default: - break; - } - - return newStore; -} - -/** - * Logic for updating and writing file information based on file type (extension) - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * @return {object} store - map object of map object of entire data store - */ -/** - * @module cli/actions - */ - -// Imports -function updateFile(filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - let field; - let section; - - if (filepath.includes(huron.get('sectionTemplate'))) { - return utils.writeSectionTemplate(filepath, store); - } - - switch (file.ext) { - // Plain HTML template, external - case '.html': - section = utils.getSection(file.base, 'markup', store); - - if (section) { - return (0, _handleHTML.updateHTML)(filepath, section, store); - } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { - return (0, _handleHTML.updatePrototype)(filepath, store); - } - - console.log(_chalk2.default.red(`Failed to write file: ${file.name}`)); - break; - - // Handlebars template, external - case huron.get('templates').extension: - case '.json': - field = '.json' === file.ext ? 'data' : 'markup'; - section = utils.getSection(file.base, field, store); - - if (section) { - return (0, _handleTemplates.updateTemplate)(filepath, section, store); - } - - console.log(_chalk2.default.red(`Failed to find KSS section for ${filepath}`)); - - break; - - // KSS documentation (default extension is `.css`) - // Will also output a template if markup is inline - // Note: inline markup does _not_ support handlebars currently - case huron.get('kssExtension'): - return (0, _handleKSS.updateKSS)(filepath, store); - - // This should never happen if Gaze is working properly - default: - return store; - } - - return store; -} - -/** - * Logic for deleting file information and files based on file type (extension) - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * @return {object} newStore - map object of map object of entire data store - */ -function deleteFile(filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - let field = ''; - let section = null; - let newStore = store; - - switch (file.ext) { - // Plain HTML template, external - case '.html': - section = utils.getSection(file.base, 'markup', store); - - if (section) { - newStore = (0, _handleHTML.deleteHTML)(filepath, section, store); - } else if (file.dir.includes('prototypes') && file.name.includes('prototype-')) { - newStore = (0, _handleHTML.deletePrototype)(filepath, store); - } - break; - - case huron.get('templates').extension: - case '.json': - field = '.json' === file.ext ? 'data' : 'markup'; - section = utils.getSection(file.base, field, store); - - if (section) { - newStore = (0, _handleTemplates.deleteTemplate)(filepath, section, store); - } - break; - - case huron.get('kssExtension'): - section = utils.getSection(filepath, false, store); - - if (section) { - newStore = (0, _handleKSS.deleteKSS)(filepath, section, store); - } - break; - - default: - console.warn(_chalk2.default.red(`Could not delete: ${file.name}`)); - break; - } - - return newStore; -} - -/** - * Logic for updating localized classnames from CSS modules - * - * @param {string} filepath - path to updated file. usually passed in from Gaze - * @param {object} store - memory store - * - * @return void - */ -function updateClassNames(filepath, store) { - const classNamesPath = store.getIn(['config', 'classNames']); - - if (filepath.includes(classNamesPath)) { - const oldClassnames = store.get('classNames'); - const newClassnames = utils.getClassnamesFromJSON(classNamesPath); - - if (!(0, _isEqual2.default)(oldClassnames, newClassnames)) { - return store.set('classNames', newClassnames); - } - } - - return store; -} - -/***/ }), - -/***/ "./src/cli/defaultStore.js": -/*!*********************************!*\ - !*** ./src/cli/defaultStore.js ***! - \*********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.config = exports.defaultStore = undefined; - -var _immutable = __webpack_require__(/*! immutable */ "immutable"); - -var _generateConfig = __webpack_require__(/*! ./generateConfig */ "./src/cli/generateConfig.js"); - -var _generateConfig2 = _interopRequireDefault(_generateConfig); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Create initial data structure - -// Merge Huron default webpack config with user config -const config = (0, _generateConfig2.default)(); - -// Make sure the kss option is represented as an array -config.huron.kss = [].concat(config.huron.kss); - -/* eslint-disable */ -/** - * Initial structure for immutable data store - * - * @global - */ -const defaultStore = (0, _immutable.Map)({ - types: ['template', 'data', 'description', 'section', 'prototype', 'sections-template'], - config: (0, _immutable.Map)(config.huron), - classNames: (0, _utils.getClassnamesFromJSON)(config.huron.classNames), - sections: (0, _immutable.Map)({ - sectionsByPath: (0, _immutable.Map)({}), - sectionsByURI: (0, _immutable.Map)({}), - sorted: {} - }), - templates: (0, _immutable.Map)({}), - prototypes: (0, _immutable.Map)({}), - sectionTemplatePath: '', - referenceDelimiter: '.' -}); -/* eslint-enable */ - -exports.defaultStore = defaultStore; -exports.config = config; - -/***/ }), - -/***/ "./src/cli/fileWatcher.js": -/*!********************************!*\ - !*** ./src/cli/fileWatcher.js ***! - \********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.watchedFiles = exports.extensions = undefined; - -var _gaze = __webpack_require__(/*! gaze */ "gaze"); - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var _defaultStore = __webpack_require__(/*! ./defaultStore */ "./src/cli/defaultStore.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Huron configuration object - * - * @global - */ -const huron = _defaultStore.defaultStore.get('config'); - -/** - * Available file extensions. Extensions should not include the leading '.' - * - * @global - */ -const extensions = exports.extensions = [huron.get('kssExtension'), huron.get('templates').extension, 'html', 'json'].map(extension => extension.replace('.', '')); - -// Generate watch list for Gaze, start gaze -const watchedFiles = exports.watchedFiles = []; - -// Watch section template -watchedFiles.push(_path2.default.resolve(huron.get('sectionTemplate'))); - -// Watch cssmodules classname files (if they exist) -if (huron.get('classNames')) { - watchedFiles.push( - // `${path.resolve(huron.get('classNames'))}/*.json` - _path2.default.resolve(huron.get('classNames'))); -} - -// Watch all provided kss directories -huron.get('kss').forEach(dir => { - watchedFiles.push(`${(0, _utils.removeTrailingSlash)(dir)}/**/*.+(${extensions.join('|')})`); -}); - -/** - * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON - * - * @global - */ -const gaze = new _gaze.Gaze(watchedFiles); - -exports.default = gaze; - -/***/ }), - -/***/ "./src/cli/generateConfig.js": -/*!***********************************!*\ - !*** ./src/cli/generateConfig.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = generateConfig; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _url = __webpack_require__(/*! url */ "url"); - -var _url2 = _interopRequireDefault(_url); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _webpack = __webpack_require__(/*! webpack */ "webpack"); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _htmlWebpackPlugin = __webpack_require__(/*! html-webpack-plugin */ "html-webpack-plugin"); - -var _htmlWebpackPlugin2 = _interopRequireDefault(_htmlWebpackPlugin); - -var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _requireExternal = __webpack_require__(/*! ./requireExternal */ "./src/cli/requireExternal.js"); - -var _requireExternal2 = _interopRequireDefault(_requireExternal); - -var _webpack3 = __webpack_require__(/*! ../defaultConfig/webpack.config */ "./src/defaultConfig/webpack.config.js"); - -var _webpack4 = _interopRequireDefault(_webpack3); - -var _huron = __webpack_require__(/*! ../defaultConfig/huron.config */ "./src/defaultConfig/huron.config.js"); - -var _huron2 = _interopRequireDefault(_huron); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const cwd = process.cwd(); - -// Require configs passed in by user from CLI -/** @module cli/generate-config */ -let defaultConfig = false; -const localConfig = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.webpackConfig)); -const localHuron = (0, _requireExternal2.default)(_path2.default.resolve(_parseArgs2.default.huronConfig)); - -/** - * Generate a mutant hybrid of the huron default webpack config and your local webpack config - * - * @function generateConfig - * @param {object} config - local webpack config - * @return {object} newConfig - updated data store - */ -function generateConfig() { - let newConfig = localConfig; - let newHuron = localHuron; - - // Execute config function, if provided - if ('function' === typeof newConfig) { - newConfig = newConfig(_parseArgs2.default.env); - } - - // Execute huron config function, if provided - if ('function' === typeof newHuron) { - newHuron = newHuron(_parseArgs2.default.env); - } - - // Merge huron defaults with user settings - newHuron = Object.assign({}, _huron2.default, newHuron); - // Use user huron config to modify webpack defaults - defaultConfig = (0, _webpack4.default)(newHuron); - - // Set ouput options - newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output); - newConfig.output.path = defaultConfig.output.path; - newConfig.output.publicPath = defaultConfig.output.publicPath; - - // configure entries - newConfig = configureEntries(newHuron, newConfig); - - // configure plugins - newConfig = configurePlugins(newHuron, newConfig); - - // configure loaders - newConfig = configureLoaders(newHuron, newConfig); - - // Add HTMLWebpackPlugin for each configured prototype - newConfig = configurePrototypes(newHuron, newConfig); - - // Remove existing devServer settings - delete newConfig.devServer; - - return { - huron: newHuron, - webpack: newConfig - }; -} - -/** - * Configure and manage webpack entry points - * @param {object} huron.entry Entry from huron config - * @param {string} huron.root Path to root - * @param {string} huron.port Port process is running on - * @param {object} config Webpack config object - * @return {object} Webpack config object with modified entries - */ -function configureEntries({ entry, root, port }, config) { - const originalEntry = config.entry[entry]; - const devServerEntries = _parseArgs2.default.production ? [] : [`webpack-dev-server/client/index.js?http://localhost:${port}/`, 'webpack/hot/dev-server']; - - return Object.assign({}, config, { - entry: { - [entry]: Array.prototype.concat(devServerEntries, _path2.default.join(cwd, root, 'huron-assets/index'), originalEntry) - } - }); -} - -/** - * Configure and manage webpack plugins - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configurePlugins(huron, config) { - const newConfig = config; - - newConfig.plugins = config.plugins || []; - - if (!_parseArgs2.default.production) { - if (newConfig.plugins && newConfig.plugins.length) { - newConfig.plugins = newConfig.plugins.filter(plugin => 'HotModuleReplacementPlugin' !== plugin.constructor.name && 'NamedModulesPlugin' !== plugin.constructor.name); - } - newConfig.plugins = newConfig.plugins.concat([new _webpack2.default.HotModuleReplacementPlugin(), new _webpack2.default.NamedModulesPlugin()]); - } - - return newConfig; -} - -/** - * Configure and manage webpack loaders - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configureLoaders(huron, config) { - // Manage loaders - const templatesLoader = huron.templates.rule || {}; - const newConfig = config; - - // Make sure we're only using templates loader for files in huron root - templatesLoader.include = [_path2.default.join(cwd, huron.root, huron.output)]; - - // Normalize module and module.rules - newConfig.module = newConfig.module || {}; - newConfig.module.rules = newConfig.module.rules || newConfig.module.loaders || []; - - // Add default loaders - newConfig.module.rules = defaultConfig.module.rules.concat(newConfig.module.rules, templatesLoader); - - return newConfig; -} - -/** - * Create an HTML webpack plugin for each configured prototype - * - * @param {object} huron - huron configuration object - * @param {object} config - webpack configuration object - * @return {object} newConfig - updated data store - */ -function configurePrototypes(huron, config) { - const wrapperTemplate = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../../templates/prototypeTemplate.hbs'), 'utf8'); - - const defaultHTMLPluginOptions = { - title: 'Huron', - window: huron.window, - js: [], - css: [], - filename: 'index.html', - template: _path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), - inject: false, - chunks: [huron.entry] - }; - const newConfig = config; - - // Write prototype template file for HTML webpack plugin - _fsExtra2.default.outputFileSync(_path2.default.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'), wrapperTemplate); - - huron.prototypes.forEach(prototype => { - const newPrototype = prototype; - let opts = {}; - - // Merge configured settings with default settings - if ('string' === typeof prototype) { - opts = Object.assign({}, defaultHTMLPluginOptions, { - title: prototype, - filename: `${prototype}.html` - }); - } else if ('object' === typeof prototype && {}.hasOwnProperty.call(prototype, 'title')) { - // Create filename based on configured title if not provided - if (!prototype.filename) { - newPrototype.filename = `${prototype.title}.html`; - } - - // Move css assets for this prototype, - // reset css option with new file paths - if (prototype.css) { - newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron); - } - - // Move js assets for this prototype, - // reset js option with new file paths - if (prototype.js) { - newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron); - } - - opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype); - } - - // Move global css assets, - // reset css option with new file paths - if (huron.css.length) { - opts.css = opts.css.concat(moveAdditionalAssets(huron.css, 'css', huron)); - } - - // Move global js assets, - // reset js option with new file paths - if (huron.js.length) { - opts.js = opts.js.concat(moveAdditionalAssets(huron.js, 'js', huron)); - } - - // Push a new plugin for each configured prototype - if (Object.keys(opts).length) { - newConfig.plugins.push(new _htmlWebpackPlugin2.default(opts)); - } - }); - - return newConfig; -} - -/** - * Move relative (and local) js and css assets provided in huron options - * - * @param {array|string} assets - array of assets or single asset - * @param {string} subdir - subdirectory in huron root from which to load additional asset - * @param {object} huron - huron configuration object - * @return {array} assetResults - paths to js and css assets - */ -function moveAdditionalAssets(assets, subdir = '', huron) { - const currentAssets = [].concat(assets); - const assetResults = []; - - currentAssets.forEach(asset => { - const assetInfo = _path2.default.parse(asset); - const assetURL = _url2.default.parse(asset); - const sourcePath = _path2.default.join(cwd, asset); - const outputPath = _path2.default.resolve(cwd, huron.root, subdir, assetInfo.base); - const loadPath = _path2.default.join(subdir, assetInfo.base); - let contents = false; - - if (!_path2.default.isAbsolute(asset) && !assetURL.protocol) { - try { - contents = _fsExtra2.default.readFileSync(sourcePath); - } catch (e) { - console.warn(`could not read ${sourcePath}`); - } - - if (contents) { - _fsExtra2.default.outputFileSync(outputPath, contents); - assetResults.push(loadPath); - } - } else { - assetResults.push(asset); - } - }); - - return assetResults; -} - -/***/ }), - -/***/ "./src/cli/handleHTML.js": -/*!*******************************!*\ - !*** ./src/cli/handleHTML.js ***! - \*******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateHTML = updateHTML; -exports.deleteHTML = deleteHTML; -exports.updatePrototype = updatePrototype; -exports.deletePrototype = deletePrototype; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of an HMTL template - * - * @function updateHTML - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateHTML(filepath, section, store) { - const file = _path2.default.parse(filepath); - const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - const newSection = section; - - if (content) { - newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, content, store); - newSection.templateContent = content; - - // Rewrite section data with template content - newSection.sectionPath = utils.writeSectionData(store, newSection); - - return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - console.log(`File ${file.base} could not be read`); - return store; -} - -/** - * Handle removal of an HMTL template - * - * @function deleteHTML - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -/** - * @module cli/html-handler - */ -function deleteHTML(filepath, section, store) { - const newSection = section; - - utils.removeFile(newSection.referenceURI, 'template', filepath, store); - - delete newSection.templatePath; - - return store.setIn(['sections', 'sectionsByPath', section.kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); -} - -/** - * Handle update for a prototype file - * - * @function updatePrototype - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function updatePrototype(filepath, store) { - const file = _path2.default.parse(filepath); - const content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - - if (content) { - const requirePath = utils.writeFile(file.name, 'prototype', filepath, content, store); - - return store.setIn(['prototypes', file.name], requirePath); - } - - console.log(`File ${file.base} could not be read`); - return store; -} - -/** - * Handle removal of a prototype file - * - * @function deletePrototype - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function deletePrototype(filepath, store) { - const file = _path2.default.parse(filepath); - const requirePath = utils.removeFile(file.name, 'prototype', filepath, store); - - return store.setIn(['prototypes', file.name], requirePath); -} - -/***/ }), - -/***/ "./src/cli/handleKSS.js": -/*!******************************!*\ - !*** ./src/cli/handleKSS.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateKSS = updateKSS; -exports.deleteKSS = deleteKSS; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _kss = __webpack_require__(/*! kss */ "kss"); - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var utils = _interopRequireWildcard(_utils); - -var _handleTemplates = __webpack_require__(/*! ./handleTemplates */ "./src/cli/handleTemplates.js"); - -var _requireTemplates = __webpack_require__(/*! ./requireTemplates */ "./src/cli/requireTemplates.js"); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of a KSS section - * - * @function updateKSS - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateKSS(filepath, store) { - const kssSource = _fsExtra2.default.readFileSync(filepath, 'utf8'); - const huron = store.get('config'); - const oldSection = utils.getSection(filepath, false, store) || {}; - const file = _path2.default.parse(filepath); - let newStore = store; - - if (kssSource) { - const styleguide = (0, _kss.parse)(kssSource, huron.get('kssOptions')); - - if (styleguide.data.sections.length) { - const section = utils.normalizeSectionData(styleguide.data.sections[0]); - - if (section.reference && section.referenceURI) { - // Update or add section data - newStore = updateSectionData(filepath, section, oldSection, newStore); - - // Remove old section data if reference URI has changed - if (oldSection && oldSection.referenceURI && oldSection.referenceURI !== section.referenceURI) { - newStore = unsetSection(oldSection, file, newStore, false); - } - - (0, _requireTemplates.writeStore)(newStore); - console.log(_chalk2.default.green(`KSS source in ${filepath} changed or added`)); - return newStore; - } - - console.log(_chalk2.default.magenta(`KSS section in ${filepath} is missing a section reference`)); - return newStore; - } - - console.log(_chalk2.default.magenta(`No KSS found in ${filepath}`)); - return newStore; - } - - if (oldSection) { - newStore = deleteKSS(filepath, oldSection, newStore); - } - - console.log(_chalk2.default.red(`${filepath} not found or empty`)); // eslint-disable-line no-console - return newStore; -} - -/** - * Handle removal of a KSS section - * - * @function deleteKSS - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - KSS section data - * @param {object} store - memory store - * @return {object} updated data store - */ -/** - * @module cli/kss-handler - */ - -function deleteKSS(filepath, section, store) { - const file = _path2.default.parse(filepath); - - if (section.reference && section.referenceURI) { - // Remove section data from memory store - return unsetSection(section, file, store, true); - } - - return store; -} - -/** - * Update the sections store with new data for a specific section - * - * @function updateSectionData - * @param {object} section - contains updated section data - * @param {string} kssPath - path to KSS section - * @param {object} store - memory store - * @return {object} updated data store - */ -function updateSectionData(kssPath, section, oldSection, store) { - const sectionFileInfo = _path2.default.parse(kssPath); - const dataFilepath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); - const isInline = null !== section.markup.match(/<\/[^>]*>/); - const newSort = sortSection(store.getIn(['sections', 'sorted']), section.reference, store.get('referenceDelimiter')); - const newSection = Object.assign({}, oldSection, section); - let newStore = store; - - // Required for reference from templates and data - newSection.kssPath = kssPath; - - if (isInline) { - // Set section value if inlineTempalte() returned a path - newStore = updateInlineTemplate(kssPath, oldSection, newSection, newStore); - } else { - // Remove inline template, if it exists - utils.removeFile(newSection.referenceURI, 'template', kssPath, store); - // Update markup and data fields - newStore = updateTemplateFields(sectionFileInfo, oldSection, newSection, newStore); - } - - // Output section description - newStore = updateDescription(kssPath, oldSection, newSection, newStore); - - // Output section data to a JSON file - newSection.sectionPath = utils.writeSectionData(newStore, newSection, dataFilepath); - - // Update section sorting - return newStore.setIn(['sections', 'sorted'], newSort).setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); -} - -/** - * Handle detection and output of inline templates, which is markup written - * in the KSS documentation itself as opposed to an external file - * - * @function updateInlineTemplate - * @param {string} oldSection - previous iteration of KSS data, if updated - * @param {object} section - KSS section data - * @return {object} updated data store with new template path info - */ -function updateInlineTemplate(filepath, oldSection, section, store) { - const newSection = section; - const newStore = store; - - // If we have inline markup - if (fieldShouldOutput(oldSection, section, 'markup')) { - newSection.templatePath = utils.writeFile(section.referenceURI, 'template', filepath, section.markup, store); - newSection.templateContent = section.markup; - - return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle output of section description - * - * @function updateDescription - * @param {string} oldSection - previous iteration of KSS data, if updated - * @param {object} section - KSS section data - * @return {object} updated data store with new descripton path info - */ -function updateDescription(filepath, oldSection, section, store) { - const newSection = section; - const newStore = store; - - // If we don't have previous KSS or the KSS has been updated - if (fieldShouldOutput(oldSection, section, 'description')) { - // Write new description - newSection.descriptionPath = utils.writeFile(section.referenceURI, 'description', filepath, section.description, store); - - return newStore.setIn(['sections', 'sectionsByPath', filepath], newSection).setIn(['sections', 'sectionsByURI', section.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle Data and Markup fields - * - * @function updateTemplateFields - * @param {string} file - File data for KSS file from path.parse() - * @param {object} oldSection - outdated KSS data - * @param {object} section - KSS section data - * @param {object} store - memory store - * @return {object} KSS section data with updated asset paths - */ -function updateTemplateFields(file, oldSection, section, store) { - const kssPath = _path2.default.format(file); - const newSection = section; - let filepath = ''; - let oldFilepath = ''; - let newStore = store; - - ['data', 'markup'].forEach(field => { - if (newSection[field]) { - if (oldSection[field]) { - oldFilepath = _path2.default.join(file.dir, oldSection[field]); - newStore = (0, _handleTemplates.deleteTemplate)(oldFilepath, oldSection, newStore); - } - - filepath = _path2.default.join(file.dir, newSection[field]); - newStore = (0, _handleTemplates.updateTemplate)(filepath, newSection, newStore); - } else { - delete newSection[field]; - newStore = newStore.setIn(['sections', 'sectionsByPath', kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); - } - }); - - return newStore; -} - -/** - * Remove a section from the memory store - * - * @function unsetSection - * @param {object} section - contains updated section data - * @param {string} file - file object from path.parse() - * @param {object} store - memory store - * @param {bool} removed - has the file been removed or just the section information changed? - * @return {object} updated data store with new descripton path info - */ -function unsetSection(section, file, store, removed) { - const sorted = store.getIn(['sections', 'sorted']); - const kssPath = _path2.default.format(file); - const dataFilepath = _path2.default.join(file.dir, `${file.name}.json`); - const isInline = section.markup && null !== section.markup.match(/<\/[^>]*>/); - const newSort = unsortSection(sorted, section.reference, store.get('referenceDelimiter')); - let newStore = store; - - // Remove old section data - utils.removeFile(section.referenceURI, 'section', dataFilepath, newStore); - - // Remove associated inline template - if (isInline) { - utils.removeFile(section.referenceURI, 'template', kssPath, newStore); - } - - // Remove description template - utils.removeFile(section.referenceURI, 'description', kssPath, newStore); - - // Remove data from sectionsByPath if file has been removed - if (removed) { - newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]); - } - - return newStore.deleteIn(['sections', 'sectionsByURI', section.referenceURI]).setIn(['sections', 'sorted'], newSort); -} - -/** - * Sort sections and subsections - * - * @function sortSection - * @param {object} sorted - currently sorted sections - * @param {string} reference - reference URI of section to sort - * @return {object} updated data store with new descripton path info - */ -function sortSection(sorted, reference, delimiter) { - const parts = reference.split(delimiter); - const newSort = sorted[parts[0]] || {}; - const newSorted = sorted; - - if (1 < parts.length) { - const newParts = parts.filter((part, idx) => 0 !== idx); - newSorted[parts[0]] = sortSection(newSort, newParts.join(delimiter), delimiter); - } else { - newSorted[parts[0]] = newSort; - } - - return newSorted; -} - -/** - * Remove a section from the sorted sections - * - * @function unsortSection - * @param {object} sorted - currently sorted sections - * @param {string} reference - reference URI of section to sort - * @return {object} updated data store with new descripton path info - */ -function unsortSection(sorted, reference, delimiter) { - const parts = reference.split(delimiter); - const subsections = Object.keys(sorted[parts[0]]); - const newSorted = sorted; - - if (subsections.length) { - if (1 < parts.length) { - const newParts = parts.filter((part, idx) => 0 !== idx); - newSorted[parts[0]] = unsortSection(newSorted[parts[0]], newParts.join(delimiter), delimiter); - } - } else { - delete newSorted[parts[0]]; - } - - return newSorted; -} - -/** - * Compare a KSS field between old and new KSS data to see if we need to output - * a new module for that field - * - * @function fieldShouldOutput - * @param {object} oldSection - currently sorted sections - * @param {object} newSection - reference URI of section to sort - * @param {string} field - KSS field to check - * @return {bool} output a new module for the KSS field - */ -function fieldShouldOutput(oldSection, newSection, field) { - return oldSection && (oldSection[field] !== newSection[field] || oldSection.referenceURI !== newSection.referenceURI) || !oldSection; -} - -/***/ }), - -/***/ "./src/cli/handleTemplates.js": -/*!************************************!*\ - !*** ./src/cli/handleTemplates.js ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.updateTemplate = updateTemplate; -exports.deleteTemplate = deleteTemplate; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var utils = _interopRequireWildcard(_utils); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Handle update of a template or data (json) file - * - * @function updateTemplate - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated memory store - */ -/** @module cli/template-handler */ -function updateTemplate(filepath, section, store) { - const file = _path2.default.parse(filepath); - const pairPath = utils.getTemplateDataPair(file, section, store); - const type = '.json' === file.ext ? 'data' : 'template'; - const newSection = section; - const newStore = store; - let content = false; - - try { - content = _fsExtra2.default.readFileSync(filepath, 'utf8'); - } catch (e) { - console.log(_chalk2.default.red(`${filepath} does not exist`)); - } - - if (content) { - const requirePath = utils.writeFile(newSection.referenceURI, type, filepath, content, newStore); - newSection[`${type}Path`] = requirePath; - - if ('template' === type) { - newSection.templateContent = content; - - // Rewrite section data with template content - newSection.sectionPath = utils.writeSectionData(newStore, newSection); - } - - return newStore.setIn(['templates', requirePath], pairPath).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); - } - - return newStore; -} - -/** - * Handle removal of a template or data (json) file - * - * @function deleteTemplate - * @param {string} filepath - filepath of changed file (comes from gaze) - * @param {object} section - contains KSS section data - * @param {object} store - memory store - * @return {object} updated memory store - */ -function deleteTemplate(filepath, section, store) { - const file = _path2.default.parse(filepath); - const type = '.json' === file.ext ? 'data' : 'template'; - const newSection = section; - const newStore = store; - - // Remove partner - const requirePath = utils.removeFile(newSection.referenceURI, type, filepath, newStore); - delete newSection[`${type}Path`]; - - return newStore.deleteIn(['templates', requirePath]).setIn(['sections', 'sectionsByPath', newSection.kssPath], newSection).setIn(['sections', 'sectionsByURI', newSection.referenceURI], newSection); -} - -/***/ }), - -/***/ "./src/cli/index.js": -/*!**************************!*\ - !*** ./src/cli/index.js ***! - \**************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _actions = __webpack_require__(/*! ./actions */ "./src/cli/actions.js"); - -var _requireTemplates = __webpack_require__(/*! ./requireTemplates */ "./src/cli/requireTemplates.js"); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _server = __webpack_require__(/*! ./server */ "./src/cli/server.js"); - -var _server2 = _interopRequireDefault(_server); - -var _defaultStore = __webpack_require__(/*! ./defaultStore */ "./src/cli/defaultStore.js"); - -var _fileWatcher = __webpack_require__(/*! ./fileWatcher */ "./src/cli/fileWatcher.js"); - -var _fileWatcher2 = _interopRequireDefault(_fileWatcher); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Initialize data store with files from gaze and original data structure - * - * @global - */ -// Local imports -const huron = _defaultStore.defaultStore.get('config'); -let store = (0, _actions.initFiles)(_fileWatcher2.default.watched(), _defaultStore.defaultStore); - -(0, _requireTemplates.requireTemplates)(store); -(0, _requireTemplates.writeStore)(store); - -// If building for production, close gaze and exit process once initFiles is done. -if (_parseArgs2.default.production) { - _fileWatcher2.default.close(); -} - -/** @module cli/gaze */ -_fileWatcher2.default.on('all', (event, filepath) => { - store = (0, _actions.updateClassNames)(filepath, store); - (0, _requireTemplates.writeStore)(store); -}); - -/** - * Anonymous handler for Gaze 'changed' event indicating a file has changed - * - * @callback changed - * @listens gaze:changed - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('changed', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.updateFile)(filepath, store); - } - - console.log(_chalk2.default.green(`${filepath} updated!`)); -}); - -/** - * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories - * - * @callback added - * @listens gaze:added - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('added', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.updateFile)(filepath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.blue(`${filepath} added!`)); -}); - -/** - * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed - * - * @callback renamed - * @listens gaze:renamed - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('renamed', (newPath, oldPath) => { - if ((0, _utils.matchKssDir)(newPath, huron)) { - store = (0, _actions.deleteFile)(oldPath, store); - store = (0, _actions.updateFile)(newPath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.blue(`${newPath} added!`)); -}); - -/** - * Anonymous handler for Gaze 'deleted' event indicating a file has been removed - * - * @callback deleted - * @listens gaze:deleted - * @param {string} filepath - absolute path of changed file - */ -_fileWatcher2.default.on('deleted', filepath => { - if ((0, _utils.matchKssDir)(filepath, huron)) { - store = (0, _actions.deleteFile)(filepath, store); - (0, _requireTemplates.writeStore)(store); - } - - console.log(_chalk2.default.red(`${filepath} deleted`)); -}); - -// Start webpack or build for production -(0, _server2.default)(_defaultStore.config); - -/***/ }), - -/***/ "./src/cli/parseArgs.js": -/*!******************************!*\ - !*** ./src/cli/parseArgs.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _commander = __webpack_require__(/*! commander */ "commander"); - -var _commander2 = _interopRequireDefault(_commander); - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Requires -/** @global */ - -// @todo this may be deprecated with webpack 4 - -/** - * Process huron CLI arguments - * - * @function parseArgs - * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production - */ -/** @module cli/parse-arguments */ -/* eslint-disable space-unary-ops */ - -function parseArgs() { - const envArg = {}; - - process.argv = process.argv.filter(arg => { - if (-1 !== arg.indexOf('--env')) { - const envParts = arg.split('.')[1].split('='); - - envArg[envParts[0]] = envParts[1] || true; - return false; - } - - return true; - }); - - _commander2.default.version('1.0.1').option('-c, --huron-config [huronConfig]', '[huronConfig] for all huron options', _path2.default.resolve(__dirname, '../defaultConfig/huron.config.js')).option('-w, --webpack-config [webpackConfig]', '[webpackConfig] for all webpack options', _path2.default.resolve(__dirname, '../defaultConfig/webpack.config.js')).option('-p, --production', 'compile assets once for production'); - - _commander2.default.env = envArg; - - // Only parse if we're not running tests - if (!process.env.npm_lifecycle_event || 'test' !== process.env.npm_lifecycle_event) { - _commander2.default.parse(process.argv); - } -} - -parseArgs(); -/* eslint-enable */ - -exports.default = _commander2.default; - -/***/ }), - -/***/ "./src/cli/requireExternal.js": -/*!************************************!*\ - !*** ./src/cli/requireExternal.js ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = requireExternal; -// Necessary to remove require statement from Webpack processing preserve it in output -/* eslint-disable import/no-dynamic-require, global-require */ -function requireExternal(requirePath) { - return require(requirePath); -} -/* eslint-enable */ - -/***/ }), - -/***/ "./src/cli/requireTemplates.js": -/*!*************************************!*\ - !*** ./src/cli/requireTemplates.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.writeStore = exports.requireTemplates = undefined; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _hotTemplate = __webpack_require__(/*! raw-loader!babel-loader!../../templates/hotTemplate */ "./node_modules/raw-loader/index.js!./node_modules/babel-loader/lib/index.js!./templates/hotTemplate.js"); - -var _hotTemplate2 = _interopRequireDefault(_hotTemplate); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* eslint-enable */ - -const cwd = process.cwd(); - -// We need to prepend this to the browser script as a string but still want to transpile it, -// hence loading it using `raw-loader` so we receive a string from webpack -/* eslint-disable */ -/** @module cli/require-templates */ - -const huronScript = _fsExtra2.default.readFileSync(_path2.default.join(__dirname, '../web/index.js'), 'utf8'); - -/** - * Write code for requiring all generated huron assets - * - * @function requireTemplates - * @param {object} store - memory store - */ -const requireTemplates = exports.requireTemplates = function requireTemplates(store) { - const huron = store.get('config'); - const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); - // These will be used to replace strings in the hotTemplate. - // In order to accurately replace strings but still keep things parseable by eslint and babel, - // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object. - // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`, - // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`. - const hotVariableScope = { - sectionTemplatePath: `'${huron.get('sectionTemplate')}'`, - requireRegex: new RegExp(`\\.html|\\.json|\\${huron.get('templates').extension}$`), - requirePath: `'../${huron.get('output')}'` - }; - const hotTemplateTransformed = Object.keys(hotVariableScope).reduce((acc, curr) => acc.replace(new RegExp(`hotScope.${curr}`, 'g'), hotVariableScope[curr]), _hotTemplate2.default); - - // Write the contents of this script. - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'index.js'), hotTemplateTransformed); - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'insertNodes.js'), huronScript); -}; - -/** - * Output entire data store to a JS object and handle if any KSS data has changed - * - * @function writeStore - * @param {object} store - memory store - * @param {string} changed - filepath of changed KSS section, if applicable - */ -const writeStore = exports.writeStore = function writeStore(store, newStore = false) { - const updatedStore = newStore || store; - const huron = updatedStore.get('config'); - const outputPath = _path2.default.join(cwd, huron.get('root'), 'huron-assets'); - - // Write updated data store - _fsExtra2.default.outputFileSync(_path2.default.join(outputPath, 'huron-store.js'), `module.exports = ${JSON.stringify(updatedStore.toJSON())}`); -}; - -/***/ }), - -/***/ "./src/cli/server.js": -/*!***************************!*\ - !*** ./src/cli/server.js ***! - \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = startWebpack; - -var _webpack = __webpack_require__(/*! webpack */ "webpack"); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _webpackDevServer = __webpack_require__(/*! webpack-dev-server */ "webpack-dev-server"); - -var _webpackDevServer2 = _interopRequireDefault(_webpackDevServer); - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -var _opn = __webpack_require__(/*! opn */ "opn"); - -var _opn2 = _interopRequireDefault(_opn); - -var _devServer = __webpack_require__(/*! ../../config/devServer.config */ "./config/devServer.config.js"); - -var _devServer2 = _interopRequireDefault(_devServer); - -var _parseArgs = __webpack_require__(/*! ./parseArgs */ "./src/cli/parseArgs.js"); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -var _utils = __webpack_require__(/*! ./utils */ "./src/cli/utils.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Spin up webpack-dev-server or, if production flag is set, run webpack a single time - * - * @function startWebpack - * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig} - * @see {@link module:cli/generate-config generateConfig} - */ -function startWebpack(config) { - const { - huron, - webpack: webpackConfig - } = config; - const compiler = (0, _webpack2.default)(webpackConfig); - - if (_parseArgs2.default.progress) { - compiler.apply(new _webpack2.default.ProgressPlugin((percentage, msg) => { - console.log(`${percentage * 100}% `, msg); - })); - } - - if (_parseArgs2.default.production) { - compiler.run((err, stats) => { - const info = stats.toJson(); - - if (err) { - console.log(err); - } - - if (stats.hasErrors()) { - console.error(_chalk2.default.red('Webpack encountered errors during compile: ', info.errors)); - } - - if (stats.hasWarnings()) { - console.error(_chalk2.default.yellow('Webpack encountered warnings during compile: ', info.warnings)); // eslint-disable-line max-len - } - }); - } else { - const server = new _webpackDevServer2.default(compiler, (0, _devServer2.default)(huron)); - const prototypeName = huron.prototypes[0].title || huron.prototypes[0]; - - server.listen(huron.port, 'localhost', err => { - if (err) { - return console.log(err); - } - - console.log(`Listening at http://localhost:${huron.port}/`); - (0, _opn2.default)(`http://localhost:${huron.port}/${(0, _utils.removeTrailingSlash)(huron.root)}/${prototypeName}.html`); - return true; - }); - } -} /** @module cli/webpack-server */ - -/***/ }), - -/***/ "./src/cli/utils.js": -/*!**************************!*\ - !*** ./src/cli/utils.js ***! - \**************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.normalizeSectionData = normalizeSectionData; -exports.writeSectionData = writeSectionData; -exports.getTemplateDataPair = getTemplateDataPair; -exports.normalizeHeader = normalizeHeader; -exports.wrapMarkup = wrapMarkup; -exports.generateFilename = generateFilename; -exports.writeFile = writeFile; -exports.removeFile = removeFile; -exports.writeSectionTemplate = writeSectionTemplate; -exports.getSection = getSection; -exports.matchKssDir = matchKssDir; -exports.getClassnamesFromJSON = getClassnamesFromJSON; -exports.removeTrailingSlash = removeTrailingSlash; - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _fsExtra = __webpack_require__(/*! fs-extra */ "fs-extra"); - -var _fsExtra2 = _interopRequireDefault(_fsExtra); - -var _chalk = __webpack_require__(/*! chalk */ "chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const cwd = process.cwd(); // Current working directory - -/** - * Ensure predictable data structure for KSS section data - * - * @function normalizeSectionData - * @param {object} section - section data - * @return {object} section data - */ -/** - * @module cli/utilities - */ -function normalizeSectionData(section) { - const data = section.data || section; - - if (!data.referenceURI || '' === data.referenceURI) { - data.referenceURI = section.referenceURI(); - } - - return data; -} - -/** - * Ensure predictable data structure for KSS section data - * - * @function writeSectionData - * @param {object} store - data store - * @param {object} section - section data - * @param {string} sectionPath - output destination for section data file - */ -function writeSectionData(store, section, sectionPath = false) { - let outputPath = sectionPath; - let sectionFileInfo; - - if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) { - sectionFileInfo = _path2.default.parse(section.kssPath); - outputPath = _path2.default.join(sectionFileInfo.dir, `${sectionFileInfo.name}.json`); - } - - // Output section data - if (outputPath) { - return writeFile(section.referenceURI, 'section', outputPath, JSON.stringify(section), store); - } - - console.warn(_chalk2.default.red(`Failed to write data for ${section.referenceURI}`)); - return false; -} - -/** - * Find .json from a template file or vice versa - * - * @function getTemplateDataPair - * @param {object} file - file object from path.parse() - * @param {object} section - KSS section data - * @return {string} relative path to module JSON file - */ -function getTemplateDataPair(file, section, store) { - const huron = store.get('config'); - const kssDir = matchKssDir(file.dir, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const partnerType = '.json' === file.ext ? 'template' : 'data'; - const partnerExt = '.json' === file.ext ? huron.get('templates').extension : '.json'; - - const pairPath = _path2.default.join(componentPath, generateFilename(section.referenceURI, partnerType, partnerExt, store)); - - return `./${pairPath}`; - } - - return false; -} - -/** - * Normalize a section title for use as a filename - * - * @function normalizeHeader - * @param {string} header - section header extracted from KSS documentation - * @return {string} modified header, lowercase and words separated by dash - */ -function normalizeHeader(header) { - return header.toLowerCase().replace(/\s?\W\s?/g, '-'); -} - -/** - * Wrap html in required template tags - * - * @function wrapMarkup - * @param {string} content - html or template markup - * @param {string} templateId - id of template (should be section reference) - * @return {string} modified HTML - */ -function wrapMarkup(content, templateId) { - return ` - -\n`; -} - -/** - * Generate a filename based on referenceURI, type and file object - * - * @function generateFilename - * @param {string} id - The name of the file (with extension). - * @param {string} type - the type of file output - * @param {object} ext - file extension - * @param {store} store - data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function generateFilename(id, type, ext, store) { - // Type of file and its corresponding extension(s) - const types = store.get('types'); - const outputExt = '.scss' !== ext ? ext : '.html'; - - /* eslint-disable */ - if (-1 === types.indexOf(type)) { - console.log(`Huron data ${type} does not exist`); - return false; - } - /* eslint-enable */ - - return `${id}-${type}${outputExt}`; -} - -/** - * Copy an HTML file into the huron output directory. - * - * @function writeFile - * @param {string} id - The name of the file (with extension). - * @param {string} content - The content of the file to write. - * @param {string} type - the type of file output - * @param {object} store - The data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function writeFile(id, type, filepath, content, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - const filename = generateFilename(id, type, file.ext, store); - const kssDir = matchKssDir(filepath, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); - const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); - let newContent = content; - - if ('data' !== type && 'section' !== type) { - newContent = wrapMarkup(content, id); - } - - try { - _fsExtra2.default.outputFileSync(outputPath, newContent); - console.log(_chalk2.default.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console - } catch (e) { - console.log(_chalk2.default.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console - } - - return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; - } - - return false; -} - -/** - * Delete a file in the huron output directory - * - * @function removeFile - * @param {string} filename - The name of the file (with extension). - * @param {object} store - The data store - * @return {string} Path to output file, relative to ouput dir (can be use in require statements) - */ -function removeFile(id, type, filepath, store) { - const huron = store.get('config'); - const file = _path2.default.parse(filepath); - const filename = generateFilename(id, type, file.ext, store); - const kssDir = matchKssDir(filepath, huron); - - if (kssDir) { - const componentPath = _path2.default.relative(_path2.default.resolve(cwd, kssDir), file.dir); - const outputRelative = _path2.default.join(huron.get('output'), componentPath, `${filename}`); - const outputPath = _path2.default.resolve(cwd, huron.get('root'), outputRelative); - - try { - _fsExtra2.default.removeSync(outputPath); - console.log(_chalk2.default.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console - } catch (e) { - console.log(_chalk2.default.red(`${outputRelative} does not exist or cannot be deleted`)); // eslint-disable-line - } - - return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`; - } - - return false; -} - -/** - * Write a template for sections - * - * @function writeSectionTemplate - * @param {string} filepath - the original template file - * @param {object} store - data store - * @return {object} updated store - */ -function writeSectionTemplate(filepath, store) { - const huron = store.get('config'); - const sectionTemplate = wrapMarkup(_fsExtra2.default.readFileSync(filepath, 'utf8')); - const componentPath = './huron-assets/section.hbs'; - const output = _path2.default.join(cwd, huron.get('root'), componentPath); - - // Move huron script and section template into huron root - _fsExtra2.default.outputFileSync(output, sectionTemplate); - console.log(_chalk2.default.green(`writing section template to ${output}`)); // eslint-disable-line no-console - - return store.set('sectionTemplatePath', componentPath); -} - -/** - * Request for section data based on section reference - * - * @function writeSectionTemplate - * @param {string} search - key on which to match section - * @param {field} string - field in which to look to determine section - * @param {obj} store - sections memory store - */ -function getSection(search, field, store) { - const sectionValues = store.getIn(['sections', 'sectionsByPath']).valueSeq(); - let selectedSection = false; - - if (field) { - selectedSection = sectionValues.filter(value => value[field] === search).get(0); - } else { - selectedSection = store.getIn(['sections', 'sectionsByPath', search]); - } - - return selectedSection; -} - -/** - * Find which configured KSS directory a filepath exists in - * - * @function matchKssDir - * @param {string} filepath - filepath to search for - * @param {object} huron - huron configuration - * @return {string} kssMatch - relative path to KSS directory - */ -function matchKssDir(filepath, huron) { - const kssSource = huron.get('kss'); - // Include forward slash in our test to make sure we're matchin a directory, not a file extension - const kssMatch = kssSource.filter(dir => filepath.includes(`/${dir}`)); - - if (kssMatch.length) { - return kssMatch[0]; - } - - return false; -} - -/** - * Merge JSON files for css modules classnames in a provided directory - * - * @function mergeClassnameJSON - * @param {string} directory - directory containing classname JSON files - * - * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within - * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) - */ -// Have the huron config provide a path to a file that provides the classnames mainfest -// and use wahtever is in that -function getClassnamesFromJSON(filepath) { - const fileInfo = _path2.default.parse(filepath); - let classNames = {}; - - if ('.json' === fileInfo.ext) { - try { - const contents = _fsExtra2.default.readFileSync(filepath, 'utf8'); - classNames = JSON.parse(contents); - } catch (e) { - console.warn(_chalk2.default.red(e)); - } - } - - // return { [filepath]: classNames }; - return classNames; -} - -// export function mergeClassnameJSON(directory) { -// let files; - -// // If no config is provided, return immediately -// if (!directory) { -// return {}; -// } - -// // Try to read through classnames directory -// try { -// files = fs.readdirSync(directory); -// } catch (e) { -// console.warn(chalk.red(e)); -// } - -// // Merge classname json files -// const classNamesMerged = files.reduce((acc, file) => { -// const fileInfo = path.parse(file); -// let classNames = {}; - -// if ('.json' === fileInfo.ext) { -// try { -// const contents = fs.readFileSync( -// path.join(directory, file), -// 'utf8' -// ); -// classNames = JSON.parse(contents); -// } catch (e) { -// console.warn(chalk.red(e)); -// } -// } - -// return Object.assign({}, acc, { [fileInfo.name]: classNames }); -// }, {}); - -// return classNamesMerged; -// } - -/** - * Remove the trailing slash from a provided directory - * - * @function removeTrailingSlash - * @param {string} directory - directory path - * @return {string} directory - directory path with trailing slash removed - */ -function removeTrailingSlash(directory) { - if ('/' === directory.slice(-1)) { - return directory.slice(0, -1); - } - - return directory; -} - -/***/ }), - -/***/ "./src/defaultConfig/huron.config.js": -/*!*******************************************!*\ - !*** ./src/defaultConfig/huron.config.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = { - css: [], - entry: 'huron', - js: [], - kss: 'css/', - kssExtension: '.css', - kssOptions: { - multiline: true, - markdown: true, - custom: ['data'] - }, - output: 'partials', - port: 8080, - prototypes: ['index'], - root: 'dist/', - sectionTemplate: _path2.default.join(__dirname, '../../templates/section.hbs'), - classNames: false, - templates: { - rule: { - test: /\.(hbs|handlebars)$/, - use: 'handlebars-loader' - }, - extension: '.hbs' - }, - window: {} -}; - -/***/ }), - -/***/ "./src/defaultConfig/webpack.config.js": -/*!*********************************************!*\ - !*** ./src/defaultConfig/webpack.config.js ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _webpack = __webpack_require__(/*! webpack */ "webpack"); - -var _webpack2 = _interopRequireDefault(_webpack); - -var _path = __webpack_require__(/*! path */ "path"); - -var _path2 = _interopRequireDefault(_path); - -var _parseArgs = __webpack_require__(/*! ../cli/parseArgs */ "./src/cli/parseArgs.js"); - -var _parseArgs2 = _interopRequireDefault(_parseArgs); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = ({ root, output }) => ({ - mode: 'development', - entry: {}, - output: { - path: _path2.default.join(process.cwd(), root), - publicPath: _parseArgs2.default.production ? '' : `/${root}`, - filename: '[name].js', - chunkFilename: '[name].chunk.min.js' - }, - optimization: { - namedModules: true - }, - plugins: [new _webpack2.default.HotModuleReplacementPlugin()], - resolve: { - modulesDirectories: [_path2.default.resolve(__dirname, '../src/js')] - }, - resolveLoader: { - modulesDirectories: ['web_loaders', 'web_modules', 'node_loaders', 'node_modules', _path2.default.resolve(__dirname, '../node_modules')] - }, - module: { - rules: [{ - test: /\.html$/, - include: [_path2.default.join(process.cwd(), root, output)], - use: 'html-loader' - }, { - test: /\.(hbs|handlebars)$/, - include: [_path2.default.join(process.cwd(), root, 'huron-assets')], - use: { - loader: 'handlebars-loader', - query: { - helperDirs: [_path2.default.join(__dirname, '../../', 'templates/handlebarsHelpers')] - } - } - }] - } -}); - -/***/ }), - -/***/ 0: -/*!*****************************!*\ - !*** multi ./src/cli/index ***! - \*****************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./src/cli/index */"./src/cli/index.js"); - - -/***/ }), - -/***/ "chalk": -/*!************************!*\ - !*** external "chalk" ***! - \************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("chalk"); - -/***/ }), - -/***/ "commander": -/*!****************************!*\ - !*** external "commander" ***! - \****************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("commander"); - -/***/ }), - -/***/ "fs-extra": -/*!***************************!*\ - !*** external "fs-extra" ***! - \***************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("fs-extra"); - -/***/ }), - -/***/ "gaze": -/*!***********************!*\ - !*** external "gaze" ***! - \***********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("gaze"); - -/***/ }), - -/***/ "html-webpack-plugin": -/*!**************************************!*\ - !*** external "html-webpack-plugin" ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("html-webpack-plugin"); - -/***/ }), - -/***/ "immutable": -/*!****************************!*\ - !*** external "immutable" ***! - \****************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("immutable"); - -/***/ }), - -/***/ "kss": -/*!**********************!*\ - !*** external "kss" ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("kss"); - -/***/ }), - -/***/ "lodash/isEqual": -/*!*********************************!*\ - !*** external "lodash/isEqual" ***! - \*********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("lodash/isEqual"); - -/***/ }), - -/***/ "opn": -/*!**********************!*\ - !*** external "opn" ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("opn"); - -/***/ }), - -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("path"); - -/***/ }), - -/***/ "url": -/*!**********************!*\ - !*** external "url" ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("url"); - -/***/ }), - -/***/ "webpack": -/*!**************************!*\ - !*** external "webpack" ***! - \**************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("webpack"); - -/***/ }), - -/***/ "webpack-dev-server": -/*!*************************************!*\ - !*** external "webpack-dev-server" ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = require("webpack-dev-server"); - -/***/ }) - -/******/ }); +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var s=t[o]={i:o,l:!1,exports:{}};return e[o].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="../",n(n.s=30)}([function(e,t){e.exports=require("path")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeSectionData=function(e){const t=e.data||e;t.referenceURI&&""!==t.referenceURI||(t.referenceURI=e.referenceURI());return t},t.writeSectionData=function(e,t,n=!1){let s,l=n;!l&&{}.hasOwnProperty.call(t,"kssPath")&&(s=o.default.parse(t.kssPath),l=o.default.join(s.dir,`${s.name}.json`));if(l)return c(t.referenceURI,"section",l,JSON.stringify(t),e);return console.warn(r.default.red(`Failed to write data for ${t.referenceURI}`)),!1},t.getTemplateDataPair=function(e,t,n){const s=n.get("config"),r=d(e.dir,s);if(r){const l=o.default.relative(o.default.resolve(a,r),e.dir),u=".json"===e.ext?"template":"data",c=".json"===e.ext?s.get("templates").extension:".json",d=o.default.join(l,i(t.referenceURI,u,c,n));return`./${d}`}return!1},t.normalizeHeader=function(e){return e.toLowerCase().replace(/\s?\W\s?/g,"-")},t.wrapMarkup=u,t.generateFilename=i,t.writeFile=c,t.removeFile=function(e,t,n,l){const u=l.get("config"),c=o.default.parse(n),f=i(e,t,c.ext,l),p=d(n,u);if(p){const e=o.default.relative(o.default.resolve(a,p),c.dir),t=o.default.join(u.get("output"),e,`${f}`),n=o.default.resolve(a,u.get("root"),t);try{s.default.removeSync(n),console.log(r.default.green(`Removing ${t}`))}catch(e){console.log(r.default.red(`${t} does not exist or cannot be deleted`))}return`./${t.replace(`${u.get("output")}/`,"")}`}return!1},t.writeSectionTemplate=function(e,t){const n=t.get("config"),l=u(s.default.readFileSync(e,"utf8")),i=o.default.join(a,n.get("root"),"./huron-assets/section.hbs");return s.default.outputFileSync(i,l),console.log(r.default.green(`writing section template to ${i}`)),t.set("sectionTemplatePath","./huron-assets/section.hbs")},t.getSection=function(e,t,n){const o=n.getIn(["sections","sectionsByPath"]).valueSeq();let s=!1;s=t?o.filter(n=>n[t]===e).get(0):n.getIn(["sections","sectionsByPath",e]);return s},t.matchKssDir=d,t.getClassnamesFromJSON=function(e){let t={};if(".json"===o.default.parse(e).ext)try{const n=s.default.readFileSync(e,"utf8");t=JSON.parse(n)}catch(e){console.warn(r.default.red(e))}return t},t.removeTrailingSlash=function(e){if("/"===e.slice(-1))return e.slice(0,-1);return e};var o=l(n(0)),s=l(n(2)),r=l(n(3));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd();function u(e,t){return`\n\n\n`}function i(e,t,n,o){const s=o.get("types"),r=".scss"!==n?n:".html";return-1===s.indexOf(t)?(console.log(`Huron data ${t} does not exist`),!1):`${e}-${t}${r}`}function c(e,t,n,l,c){const f=c.get("config"),p=o.default.parse(n),m=i(e,t,p.ext,c),h=d(n,f);if(h){const n=o.default.relative(o.default.resolve(a,h),p.dir),i=o.default.join(f.get("output"),n,`${m}`),c=o.default.resolve(a,f.get("root"),i);let d=l;"data"!==t&&"section"!==t&&(d=u(l,e));try{s.default.outputFileSync(c,d),console.log(r.default.green(`Writing ${i}`))}catch(e){console.log(r.default.red(`Failed to write ${i}`))}return`./${i.replace(`${f.get("output")}/`,"")}`}return!1}function d(e,t){const n=t.get("kss").filter(t=>e.includes(`/${t}`));return!!n.length&&n[0]}},function(e,t){e.exports=require("fs-extra")},function(e,t){e.exports=require("chalk")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(22)),s=r(n(0));function r(e){return e&&e.__esModule?e:{default:e}}!function(){const e={};process.argv=process.argv.filter(t=>{if(-1!==t.indexOf("--env")){const n=t.split(".")[1].split("=");return e[n[0]]=n[1]||!0,!1}return!0}),o.default.version("1.0.1").option("-c, --huron-config [huronConfig]","[huronConfig] for all huron options",s.default.resolve(__dirname,"../defaultConfig/huron.config.js")).option("-w, --webpack-config [webpackConfig]","[webpackConfig] for all webpack options",s.default.resolve(__dirname,"../defaultConfig/webpack.config.js")).option("-p, --production","compile assets once for production"),o.default.env=e,process.env.npm_lifecycle_event&&"test"===process.env.npm_lifecycle_event||o.default.parse(process.argv)}(),t.default=o.default},function(e,t){e.exports=require("webpack")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.config=t.defaultStore=void 0;var o,s=n(17),r=n(16),l=(o=r)&&o.__esModule?o:{default:o},a=n(1);const u=(0,l.default)();u.huron.kss=[].concat(u.huron.kss);const i=(0,s.Map)({types:["template","data","description","section","prototype","sections-template"],config:(0,s.Map)(u.huron),classNames:(0,a.getClassnamesFromJSON)(u.huron.classNames),sections:(0,s.Map)({sectionsByPath:(0,s.Map)({}),sectionsByURI:(0,s.Map)({}),sorted:{}}),templates:(0,s.Map)({}),prototypes:(0,s.Map)({}),sectionTemplatePath:"",referenceDelimiter:"."});t.defaultStore=i,t.config=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.writeStore=t.requireTemplates=void 0;var o=l(n(0)),s=l(n(2)),r=l(n(23));function l(e){return e&&e.__esModule?e:{default:e}}const a=process.cwd(),u=s.default.readFileSync(o.default.join(__dirname,"../web/index.js"),"utf8");t.requireTemplates=function(e){const t=e.get("config"),n=o.default.join(a,t.get("root"),"huron-assets"),l={sectionTemplatePath:`'${t.get("sectionTemplate")}'`,requireRegex:new RegExp(`\\.html|\\.json|\\${t.get("templates").extension}$`),requirePath:`'../${t.get("output")}'`},i=Object.keys(l).reduce((e,t)=>e.replace(new RegExp(`hotScope.${t}`,"g"),l[t]),r.default);s.default.outputFileSync(o.default.join(n,"index.js"),i),s.default.outputFileSync(o.default.join(n,"insertNodes.js"),u)},t.writeStore=function(e,t=!1){const n=t||e,r=n.get("config"),l=o.default.join(a,r.get("root"),"huron-assets");s.default.outputFileSync(o.default.join(l,"huron-store.js"),`module.exports = ${JSON.stringify(n.toJSON())}`)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateTemplate=function(e,t,n){const a=o.default.parse(e),u=l.getTemplateDataPair(a,t,n),i=".json"===a.ext?"data":"template",c=t,d=n;let f=!1;try{f=s.default.readFileSync(e,"utf8")}catch(t){console.log(r.default.red(`${e} does not exist`))}if(f){const t=l.writeFile(c.referenceURI,i,e,f,d);return c[`${i}Path`]=t,"template"===i&&(c.templateContent=f,c.sectionPath=l.writeSectionData(d,c)),d.setIn(["templates",t],u).setIn(["sections","sectionsByPath",c.kssPath],c).setIn(["sections","sectionsByURI",c.referenceURI],c)}return d},t.deleteTemplate=function(e,t,n){const s=".json"===o.default.parse(e).ext?"data":"template",r=t,a=n,u=l.removeFile(r.referenceURI,s,e,a);return delete r[`${s}Path`],a.deleteIn(["templates",u]).setIn(["sections","sectionsByPath",r.kssPath],r).setIn(["sections","sectionsByURI",r.referenceURI],r)};var o=a(n(0)),s=a(n(2)),r=a(n(3)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function a(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("gaze")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.watchedFiles=t.extensions=void 0;var o,s=n(9),r=n(0),l=(o=r)&&o.__esModule?o:{default:o},a=n(1);const u=n(6).defaultStore.get("config"),i=t.extensions=[u.get("kssExtension"),u.get("templates").extension,"html","json"].map(e=>e.replace(".","")),c=t.watchedFiles=[];c.push(l.default.resolve(u.get("sectionTemplate"))),u.get("classNames")&&c.push(l.default.resolve(u.get("classNames"))),u.get("kss").forEach(e=>{c.push(`${(0,a.removeTrailingSlash)(e)}/**/*.+(${i.join("|")})`)});const d=new s.Gaze(c);t.default=d},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,s=n(0),r=(o=s)&&o.__esModule?o:{default:o};t.default={css:[],entry:"huron",js:[],kss:"css/",kssExtension:".css",kssOptions:{multiline:!0,markdown:!0,custom:["data"]},output:"partials",port:8080,prototypes:["index"],root:"dist/",sectionTemplate:r.default.join(__dirname,"../../templates/section.hbs"),classNames:!1,templates:{rule:{test:/\.(hbs|handlebars)$/,use:"handlebars-loader"},extension:".hbs"},window:{}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=l(n(5)),s=l(n(0)),r=l(n(4));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(({root:e,output:t})=>({mode:"development",entry:{},output:{path:s.default.join(process.cwd(),e),publicPath:r.default.production?"":`/${e}`,filename:"[name].js",chunkFilename:"[name].chunk.min.js"},optimization:{namedModules:!0},plugins:[new o.default.HotModuleReplacementPlugin],resolve:{modulesDirectories:[s.default.resolve(__dirname,"../src/js")]},resolveLoader:{modulesDirectories:["web_loaders","web_modules","node_loaders","node_modules",s.default.resolve(__dirname,"../node_modules")]},module:{rules:[{test:/\.html$/,include:[s.default.join(process.cwd(),e,t)],use:"html-loader"},{test:/\.(hbs|handlebars)$/,include:[s.default.join(process.cwd(),e,"huron-assets")],use:{loader:"handlebars-loader",query:{helperDirs:[s.default.join(__dirname,"../../","templates/handlebarsHelpers")]}}}]}}))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return require(e)}},function(e,t){e.exports=require("html-webpack-plugin")},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){let e=h,t=g;"function"==typeof e&&(e=e(u.default.env));"function"==typeof t&&(t=t(u.default.env));return t=Object.assign({},d.default,t),m=(0,c.default)(t),e.output=Object.assign({},m.output,e.output),e.output.path=m.output.path,e.output.publicPath=m.output.publicPath,e=function(e,t){const n=t;return n.plugins=t.plugins||[],u.default.production||(n.plugins&&n.plugins.length&&(n.plugins=n.plugins.filter(e=>"HotModuleReplacementPlugin"!==e.constructor.name&&"NamedModulesPlugin"!==e.constructor.name)),n.plugins=n.plugins.concat([new l.default.HotModuleReplacementPlugin,new l.default.NamedModulesPlugin])),n}(0,e=function({entry:e,root:t,port:n},s){const r=s.entry[e],l=u.default.production?[]:[`webpack-dev-server/client/index.js?http://localhost:${n}/`,"webpack/hot/dev-server"];return Object.assign({},s,{entry:{[e]:Array.prototype.concat(l,o.default.join(p,t,"huron-assets/index"),r)}})}(t,e)),e=function(e,t){const n=e.templates.rule||{},s=t;return n.include=[o.default.join(p,e.root,e.output)],s.module=s.module||{},s.module.rules=s.module.rules||s.module.loaders||[],s.module.rules=m.module.rules.concat(s.module.rules,n),s}(t,e),delete(e=function(e,t){const n=r.default.readFileSync(o.default.join(__dirname,"../../templates/prototypeTemplate.hbs"),"utf8"),s={title:"Huron",window:e.window,js:[],css:[],filename:"index.html",template:o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),chunks:[e.entry]},l=t;return r.default.outputFileSync(o.default.join(p,e.root,"huron-assets/prototypeTemplate.hbs"),n),e.prototypes.forEach(t=>{const n=t;let o={};"string"==typeof t?o=Object.assign({},s,{title:t,filename:`${t}.html`}):"object"==typeof t&&{}.hasOwnProperty.call(t,"title")&&(t.filename||(n.filename=`${t.title}.html`),t.css&&(n.css=y(t.css,"css",e)),t.js&&(n.js=y(t.js,"js",e)),o=Object.assign({},s,n)),e.css.length&&(o.css=o.css.concat(y(e.css,"css",e))),e.js.length&&(o.js=o.js.concat(y(e.js,"js",e))),Object.keys(o).length&&l.plugins.push(new a.default(o))}),l}(t,e)).devServer,{huron:t,webpack:e}};var o=f(n(0)),s=f(n(15)),r=f(n(2)),l=f(n(5)),a=f(n(14)),u=f(n(4)),i=f(n(13)),c=f(n(12)),d=f(n(11));function f(e){return e&&e.__esModule?e:{default:e}}const p=process.cwd();let m=!1;const h=(0,i.default)(o.default.resolve(u.default.webpackConfig)),g=(0,i.default)(o.default.resolve(u.default.huronConfig));function y(e,t="",n){const l=[];return[].concat(e).forEach(e=>{const a=o.default.parse(e),u=s.default.parse(e),i=o.default.join(p,e),c=o.default.resolve(p,n.root,t,a.base),d=o.default.join(t,a.base);let f=!1;if(o.default.isAbsolute(e)||u.protocol)l.push(e);else{try{f=r.default.readFileSync(i)}catch(e){console.warn(`could not read ${i}`)}f&&(r.default.outputFileSync(c,f),l.push(d))}}),l}},function(e,t){e.exports=require("immutable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e=>({hot:!0,host:"localhost",quiet:!1,noInfo:!1,overlay:!0,stats:{colors:!0,hash:!1,version:!1,assets:!1,chunks:!1,modules:!1,reasons:!1,children:!1,source:!1},publicPath:`/${e.root}`}))},function(e,t){e.exports=require("opn")},function(e,t){e.exports=require("webpack-dev-server")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const{huron:t,webpack:n}=e,c=(0,o.default)(n);u.default.progress&&c.apply(new o.default.ProgressPlugin((e,t)=>{console.log(`${100*e}% `,t)}));if(u.default.production)c.run((e,t)=>{const n=t.toJson();e&&console.log(e),t.hasErrors()&&console.error(r.default.red("Webpack encountered errors during compile: ",n.errors)),t.hasWarnings()&&console.error(r.default.yellow("Webpack encountered warnings during compile: ",n.warnings))});else{const e=new s.default(c,(0,a.default)(t)),n=t.prototypes[0].title||t.prototypes[0];e.listen(t.port,"localhost",e=>e?console.log(e):(console.log(`Listening at http://localhost:${t.port}/`),(0,l.default)(`http://localhost:${t.port}/${(0,i.removeTrailingSlash)(t.root)}/${n}.html`),!0))}};var o=c(n(5)),s=c(n(20)),r=c(n(3)),l=c(n(19)),a=c(n(18)),u=c(n(4)),i=n(1);function c(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("commander")},function(e,t){e.exports="'use strict';\n\nvar _huronStore = require('./huron-store');\n\nvar _huronStore2 = _interopRequireDefault(_huronStore);\n\nvar _insertNodes = require('./insertNodes');\n\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\n\nvar _section = require('./section.hbs');\n\nvar _section2 = _interopRequireDefault(_section);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-enable */\n\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\n\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\n// with CLI arguments or config properties passed in by the user.\n\n/* eslint-disable */\n\nconst modules = {};\n\nmodules[hotScope.sectionTemplatePath] = _section2.default;\n\nassets.keys().forEach(key => {\n modules[key] = assets(key);\n});\n\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\n\nif (module.hot) {\n // Hot Module Replacement for huron components (json, hbs, html)\n module.hot.accept(assets.id, () => {\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\n\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n newModules.forEach(module => {\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\n hotReplace(module[0], module[1], modules);\n });\n });\n\n // Hot Module Replacement for sections template\n module.hot.accept('./section.hbs', () => {\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\n\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\n });\n\n // Hot Module Replacement for data store\n module.hot.accept('./huron-store.js', () => {\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\n });\n}\n\nfunction hotReplace(key, module, newModules) {\n insert.modules = newModules;\n if (key === _huronStore2.default.sectionTemplatePath) {\n insert.cycleSections();\n } else {\n insert.inserted = [];\n insert.loadModule(key, module, false);\n }\n}\n\nfunction updateStore(newStore) {\n insert.store = newStore;\n}"},function(e,t){e.exports=require("kss")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateKSS=function(e,t){const n=s.default.readFileSync(e,"utf8"),c=t.get("config"),m=a.getSection(e,!1,t)||{},h=o.default.parse(e);let g=t;if(n){const t=(0,r.parse)(n,c.get("kssOptions"));if(t.data.sections.length){const n=a.normalizeSectionData(t.data.sections[0]);return n.reference&&n.referenceURI?(g=function(e,t,n,s){const r=o.default.parse(e),l=o.default.join(r.dir,`${r.name}.json`),i=null!==t.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const s=n.split(o);const r=t[s[0]]||{};const l=t;if(10!==t);l[s[0]]=e(r,t.join(o),o)}else l[s[0]]=r;return l}(s.getIn(["sections","sorted"]),t.reference,s.get("referenceDelimiter")),d=Object.assign({},n,t);let f=s;d.kssPath=e,i?f=function(e,t,n,o){const s=n,r=o;if(p(t,n,"markup"))return s.templatePath=a.writeFile(n.referenceURI,"template",e,n.markup,o),s.templateContent=n.markup,r.setIn(["sections","sectionsByPath",e],s).setIn(["sections","sectionsByURI",n.referenceURI],s);return r}(e,n,d,f):(a.removeFile(d.referenceURI,"template",e,s),f=function(e,t,n,s){const r=o.default.format(e),l=n;let a="",i="",c=s;return["data","markup"].forEach(n=>{l[n]?(t[n]&&(i=o.default.join(e.dir,t[n]),c=(0,u.deleteTemplate)(i,t,c)),a=o.default.join(e.dir,l[n]),c=(0,u.updateTemplate)(a,l,c)):(delete l[n],c=c.setIn(["sections","sectionsByPath",r],l).setIn(["sections","sectionsByURI",l.referenceURI],l))}),c}(r,n,d,f));return f=function(e,t,n,o){const s=n,r=o;return p(t,n,"description")?(s.descriptionPath=a.writeFile(n.referenceURI,"description",e,n.description,o),r.setIn(["sections","sectionsByPath",e],s).setIn(["sections","sectionsByURI",n.referenceURI],s)):r}(e,n,d,f),d.sectionPath=a.writeSectionData(f,d,l),f.setIn(["sections","sorted"],c).setIn(["sections","sectionsByPath",e],d).setIn(["sections","sectionsByURI",t.referenceURI],d)}(e,n,m,g),m&&m.referenceURI&&m.referenceURI!==n.referenceURI&&(g=f(m,h,g,!1)),(0,i.writeStore)(g),console.log(l.default.green(`KSS source in ${e} changed or added`)),g):(console.log(l.default.magenta(`KSS section in ${e} is missing a section reference`)),g)}return console.log(l.default.magenta(`No KSS found in ${e}`)),g}m&&(g=d(e,m,g));return console.log(l.default.red(`${e} not found or empty`)),g},t.deleteKSS=d;var o=c(n(0)),s=c(n(2)),r=n(24),l=c(n(3)),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=n(8),i=n(7);function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t,n){const s=o.default.parse(e);return t.reference&&t.referenceURI?f(t,s,n,!0):n}function f(e,t,n,s){const r=n.getIn(["sections","sorted"]),l=o.default.format(t),u=o.default.join(t.dir,`${t.name}.json`),i=e.markup&&null!==e.markup.match(/<\/[^>]*>/),c=function e(t,n,o){const s=n.split(o);const r=Object.keys(t[s[0]]);const l=t;if(r.length){if(10!==t);l[s[0]]=e(l[s[0]],t.join(o),o)}}else delete l[s[0]];return l}(r,e.reference,n.get("referenceDelimiter"));let d=n;return a.removeFile(e.referenceURI,"section",u,d),i&&a.removeFile(e.referenceURI,"template",l,d),a.removeFile(e.referenceURI,"description",l,d),s&&(d=d.deleteIn(["sections","sectionsByPath",l])),d.deleteIn(["sections","sectionsByURI",e.referenceURI]).setIn(["sections","sorted"],c)}function p(e,t,n){return e&&(e[n]!==t[n]||e.referenceURI!==t.referenceURI)||!e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateHTML=function(e,t,n){const l=o.default.parse(e),a=s.default.readFileSync(e,"utf8"),u=t;if(a)return u.templatePath=r.writeFile(t.referenceURI,"template",e,a,n),u.templateContent=a,u.sectionPath=r.writeSectionData(n,u),n.setIn(["sections","sectionsByPath",t.kssPath],u).setIn(["sections","sectionsByURI",t.referenceURI],u);return console.log(`File ${l.base} could not be read`),n},t.deleteHTML=function(e,t,n){const o=t;return r.removeFile(o.referenceURI,"template",e,n),delete o.templatePath,n.setIn(["sections","sectionsByPath",t.kssPath],o).setIn(["sections","sectionsByURI",t.referenceURI],o)},t.updatePrototype=function(e,t){const n=o.default.parse(e),l=s.default.readFileSync(e,"utf8");if(l){const o=r.writeFile(n.name,"prototype",e,l,t);return t.setIn(["prototypes",n.name],o)}return console.log(`File ${n.base} could not be read`),t},t.deletePrototype=function(e,t){const n=o.default.parse(e),s=r.removeFile(n.name,"prototype",e,t);return t.setIn(["prototypes",n.name],s)};var o=l(n(0)),s=l(n(2)),r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function l(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=require("lodash/isEqual")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFiles=function e(t,n,s=0){const r=Object.prototype.toString.call(t);const l=n.get("config");let a=n;let u;let i;switch(r){case"[object Object]":i=Object.keys(t),a=i.reduce((n,o)=>e(t[o],n,s),a);break;case"[object Array]":a=t.reduce((t,n)=>e(n,t,s),a);break;case"[object String]":(u=o.default.parse(t)).ext&&!t.includes(l.get("classNames"))&&(a=d(t,n))}return a},t.updateFile=d,t.deleteFile=function(e,t){const n=t.get("config"),r=o.default.parse(e);let c="",d=null,f=t;switch(r.ext){case".html":(d=i.getSection(r.base,"markup",t))?f=(0,l.deleteHTML)(e,d,t):r.dir.includes("prototypes")&&r.name.includes("prototype-")&&(f=(0,l.deletePrototype)(e,t));break;case n.get("templates").extension:case".json":c=".json"===r.ext?"data":"markup",(d=i.getSection(r.base,c,t))&&(f=(0,a.deleteTemplate)(e,d,t));break;case n.get("kssExtension"):(d=i.getSection(e,!1,t))&&(f=(0,u.deleteKSS)(e,d,t));break;default:console.warn(s.default.red(`Could not delete: ${r.name}`))}return f},t.updateClassNames=function(e,t){const n=t.getIn(["config","classNames"]);if(e.includes(n)){const e=t.get("classNames"),o=i.getClassnamesFromJSON(n);if(!(0,r.default)(e,o))return t.set("classNames",o)}return t};var o=c(n(0)),s=c(n(3)),r=c(n(27)),l=n(26),a=n(8),u=n(25),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function c(e){return e&&e.__esModule?e:{default:e}}function d(e,t){const n=t.get("config"),r=o.default.parse(e);let c,d;if(e.includes(n.get("sectionTemplate")))return i.writeSectionTemplate(e,t);switch(r.ext){case".html":if(d=i.getSection(r.base,"markup",t))return(0,l.updateHTML)(e,d,t);if(r.dir.includes("prototypes")&&r.name.includes("prototype-"))return(0,l.updatePrototype)(e,t);console.log(s.default.red(`Failed to write file: ${r.name}`));break;case n.get("templates").extension:case".json":if(c=".json"===r.ext?"data":"markup",d=i.getSection(r.base,c,t))return(0,a.updateTemplate)(e,d,t);console.log(s.default.red(`Failed to find KSS section for ${e}`));break;case n.get("kssExtension"):return(0,u.updateKSS)(e,t);default:return t}return t}},function(e,t,n){"use strict";var o=d(n(3)),s=n(28),r=n(7),l=n(1),a=d(n(4)),u=d(n(21)),i=n(6),c=d(n(10));function d(e){return e&&e.__esModule?e:{default:e}}const f=i.defaultStore.get("config");let p=(0,s.initFiles)(c.default.watched(),i.defaultStore);(0,r.requireTemplates)(p),(0,r.writeStore)(p),a.default.production&&c.default.close(),c.default.on("all",(e,t)=>{p=(0,s.updateClassNames)(t,p),(0,r.writeStore)(p)}),c.default.on("changed",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,s.updateFile)(e,p)),console.log(o.default.green(`${e} updated!`))}),c.default.on("added",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,s.updateFile)(e,p),(0,r.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("renamed",(e,t)=>{(0,l.matchKssDir)(e,f)&&(p=(0,s.deleteFile)(t,p),p=(0,s.updateFile)(e,p),(0,r.writeStore)(p)),console.log(o.default.blue(`${e} added!`))}),c.default.on("deleted",e=>{(0,l.matchKssDir)(e,f)&&(p=(0,s.deleteFile)(e,p),(0,r.writeStore)(p)),console.log(o.default.red(`${e} deleted`))}),(0,u.default)(i.config)},function(e,t,n){e.exports=n(29)}]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/cli/index.js.map b/dist/cli/index.js.map index 200d55b..e2d55f0 100644 --- a/dist/cli/index.js.map +++ b/dist/cli/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap","webpack:///config/devServer.config.js","webpack:///./templates/hotTemplate.js","webpack:///src/cli/actions.js","webpack:///src/cli/defaultStore.js","webpack:///src/cli/fileWatcher.js","webpack:///src/cli/generateConfig.js","webpack:///src/cli/handleHTML.js","webpack:///src/cli/handleKSS.js","webpack:///src/cli/handleTemplates.js","webpack:///src/cli/index.js","webpack:///src/cli/parseArgs.js","webpack:///src/cli/requireExternal.js","webpack:///src/cli/requireTemplates.js","webpack:///src/cli/server.js","webpack:///src/cli/utils.js","webpack:///src/defaultConfig/huron.config.js","webpack:///src/defaultConfig/webpack.config.js","webpack:///external \"chalk\"","webpack:///external \"commander\"","webpack:///external \"fs-extra\"","webpack:///external \"gaze\"","webpack:///external \"html-webpack-plugin\"","webpack:///external \"immutable\"","webpack:///external \"kss\"","webpack:///external \"lodash/isEqual\"","webpack:///external \"opn\"","webpack:///external \"path\"","webpack:///external \"url\"","webpack:///external \"webpack\"","webpack:///external \"webpack-dev-server\""],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export default (huron) => ({\n hot: true,\n host: 'localhost',\n quiet: false,\n noInfo: false,\n overlay: true,\n stats: {\n colors: true,\n hash: false,\n version: false,\n assets: false,\n chunks: false,\n modules: false,\n reasons: false,\n children: false,\n source: false,\n },\n publicPath: `/${huron.root}`,\n});\n","module.exports = \"'use strict';\\n\\nvar _huronStore = require('./huron-store');\\n\\nvar _huronStore2 = _interopRequireDefault(_huronStore);\\n\\nvar _insertNodes = require('./insertNodes');\\n\\nvar _insertNodes2 = _interopRequireDefault(_insertNodes);\\n\\nvar _section = require('./section.hbs');\\n\\nvar _section2 = _interopRequireDefault(_section);\\n\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\\n\\n/* eslint-enable */\\n\\nconst assets = require.context(hotScope.requirePath, true, hotScope.requireRegex); /* globals hotScope */\\n\\n// NOTE: This is not a normal JS file! It is pulled in by the CLI as a string\\n// and prepended to the browser script after replacing anything referenced via `hotScope[variable]`\\n// with CLI arguments or config properties passed in by the user.\\n\\n/* eslint-disable */\\n\\nconst modules = {};\\n\\nmodules[hotScope.sectionTemplatePath] = _section2.default;\\n\\nassets.keys().forEach(key => {\\n modules[key] = assets(key);\\n});\\n\\nconst insert = new _insertNodes2.default(modules, _huronStore2.default);\\n\\nif (module.hot) {\\n // Hot Module Replacement for huron components (json, hbs, html)\\n module.hot.accept(assets.id, () => {\\n const newAssets = require.context(hotScope.requirePath, true, hotScope.requireRegex);\\n const newModules = newAssets.keys().map(key => [key, newAssets(key)]).filter(newModule => modules[newModule[0]] !== newModule[1]);\\n\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n newModules.forEach(module => {\\n modules[module[0]] = module[1]; // eslint-disable-line prefer-destructuring\\n hotReplace(module[0], module[1], modules);\\n });\\n });\\n\\n // Hot Module Replacement for sections template\\n module.hot.accept('./section.hbs', () => {\\n const newSectionTemplate = require('./section.hbs'); // eslint-disable-line global-require, import/no-unresolved\\n\\n modules[hotScope.sectionTemplatePath] = newSectionTemplate;\\n hotReplace('./huron-assets/section.hbs', newSectionTemplate, modules);\\n });\\n\\n // Hot Module Replacement for data store\\n module.hot.accept('./huron-store.js', () => {\\n updateStore(require('./huron-store.js')); // eslint-disable-line global-require, import/no-unresolved\\n });\\n}\\n\\nfunction hotReplace(key, module, newModules) {\\n insert.modules = newModules;\\n if (key === _huronStore2.default.sectionTemplatePath) {\\n insert.cycleSections();\\n } else {\\n insert.inserted = [];\\n insert.loadModule(key, module, false);\\n }\\n}\\n\\nfunction updateStore(newStore) {\\n insert.store = newStore;\\n}\"","/**\n * @module cli/actions\n */\n\n// Imports\nimport path from 'path';\nimport chalk from 'chalk';\nimport isEqual from 'lodash/isEqual';\n\nimport {\n updateHTML,\n deleteHTML,\n updatePrototype,\n deletePrototype,\n} from './handleHTML';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { updateKSS, deleteKSS } from './handleKSS';\nimport * as utils from './utils';\n\n/**\n * Recursively loop through initial watched files list from Gaze.\n *\n * @param {object} data - object containing directory and file paths\n * @param {object} store - memory store\n * @return {object} newStore - map object of entire data store\n */\nexport function initFiles(data, store, depth = 0) {\n const type = Object.prototype.toString.call(data);\n const huron = store.get('config');\n let newStore = store;\n let info;\n let files;\n\n switch (type) {\n case '[object Object]':\n files = Object.keys(data);\n newStore = files.reduce(\n (prevStore, file) => initFiles(data[file], prevStore, depth),\n newStore\n );\n break;\n\n case '[object Array]':\n newStore = data.reduce(\n (prevStore, file) => initFiles(file, prevStore, depth),\n newStore\n );\n break;\n\n case '[object String]':\n info = path.parse(data);\n\n // Only call update if data is a filepath and it's within the KSS source directory\n if (info.ext && !data.includes(huron.get('classNames'))) {\n newStore = updateFile(data, store);\n }\n break;\n\n default:\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating and writing file information based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} store - map object of map object of entire data store\n */\nexport function updateFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field;\n let section;\n\n if (filepath.includes(huron.get('sectionTemplate'))) {\n return utils.writeSectionTemplate(filepath, store);\n }\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n return updateHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n return updatePrototype(filepath, store);\n }\n\n console.log(chalk.red(`Failed to write file: ${file.name}`));\n break;\n\n // Handlebars template, external\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n return updateTemplate(filepath, section, store);\n }\n\n console.log(chalk.red(`Failed to find KSS section for ${filepath}`));\n\n break;\n\n // KSS documentation (default extension is `.css`)\n // Will also output a template if markup is inline\n // Note: inline markup does _not_ support handlebars currently\n case huron.get('kssExtension'):\n return updateKSS(filepath, store);\n\n // This should never happen if Gaze is working properly\n default:\n return store;\n }\n\n return store;\n}\n\n/**\n * Logic for deleting file information and files based on file type (extension)\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n * @return {object} newStore - map object of map object of entire data store\n */\nexport function deleteFile(filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n let field = '';\n let section = null;\n let newStore = store;\n\n switch (file.ext) {\n // Plain HTML template, external\n case '.html':\n section = utils.getSection(file.base, 'markup', store);\n\n if (section) {\n newStore = deleteHTML(filepath, section, store);\n } else if (\n file.dir.includes('prototypes') &&\n file.name.includes('prototype-')\n ) {\n newStore = deletePrototype(filepath, store);\n }\n break;\n\n case huron.get('templates').extension:\n case '.json':\n field = ('.json' === file.ext) ? 'data' : 'markup';\n section = utils.getSection(file.base, field, store);\n\n if (section) {\n newStore = deleteTemplate(filepath, section, store);\n }\n break;\n\n case huron.get('kssExtension'):\n section = utils.getSection(filepath, false, store);\n\n if (section) {\n newStore = deleteKSS(filepath, section, store);\n }\n break;\n\n default:\n console.warn(chalk.red(`Could not delete: ${file.name}`));\n break;\n }\n\n return newStore;\n}\n\n/**\n * Logic for updating localized classnames from CSS modules\n *\n * @param {string} filepath - path to updated file. usually passed in from Gaze\n * @param {object} store - memory store\n *\n * @return void\n */\nexport function updateClassNames(filepath, store) {\n const classNamesPath = store.getIn(['config', 'classNames']);\n\n if (filepath.includes(classNamesPath)) {\n const oldClassnames = store.get('classNames');\n const newClassnames = utils.getClassnamesFromJSON(classNamesPath);\n\n if (!isEqual(oldClassnames, newClassnames)) {\n return store.set('classNames', newClassnames);\n }\n }\n\n return store;\n}\n","import { Map } from 'immutable';\n\nimport generateConfig from './generateConfig';\nimport { getClassnamesFromJSON } from './utils';\n// Create initial data structure\n\n// Merge Huron default webpack config with user config\nconst config = generateConfig();\n\n// Make sure the kss option is represented as an array\nconfig.huron.kss = [].concat(config.huron.kss);\n\n/* eslint-disable */\n/**\n * Initial structure for immutable data store\n *\n * @global\n */\nconst defaultStore = Map({\n types: [\n 'template',\n 'data',\n 'description',\n 'section',\n 'prototype',\n 'sections-template',\n ],\n config: Map(config.huron),\n classNames: getClassnamesFromJSON(config.huron.classNames),\n sections: Map({\n sectionsByPath: Map({}),\n sectionsByURI: Map({}),\n sorted: {},\n }),\n templates: Map({}),\n prototypes: Map({}),\n sectionTemplatePath: '',\n referenceDelimiter: '.',\n});\n/* eslint-enable */\n\nexport { defaultStore, config };\n","import { Gaze } from 'gaze';\nimport path from 'path';\n\nimport { removeTrailingSlash } from './utils';\nimport { defaultStore } from './defaultStore';\n\n/**\n * Huron configuration object\n *\n * @global\n */\nconst huron = defaultStore.get('config');\n\n/**\n * Available file extensions. Extensions should not include the leading '.'\n *\n * @global\n */\nexport const extensions = [\n huron.get('kssExtension'),\n huron.get('templates').extension,\n 'html',\n 'json',\n].map((extension) => extension.replace('.', ''));\n\n// Generate watch list for Gaze, start gaze\nexport const watchedFiles = [];\n\n// Watch section template\nwatchedFiles.push(path.resolve(huron.get('sectionTemplate')));\n\n// Watch cssmodules classname files (if they exist)\nif (huron.get('classNames')) {\n watchedFiles.push(\n // `${path.resolve(huron.get('classNames'))}/*.json`\n path.resolve(huron.get('classNames'))\n );\n}\n\n// Watch all provided kss directories\nhuron.get('kss').forEach((dir) => {\n watchedFiles.push(\n `${removeTrailingSlash(dir)}/**/*.+(${extensions.join('|')})`\n );\n});\n\n/**\n * Gaze instance for watching all files, including KSS, html, hbs/template, and JSON\n *\n * @global\n */\nconst gaze = new Gaze(watchedFiles);\n\nexport default gaze;\n","/** @module cli/generate-config */\nimport path from 'path';\nimport url from 'url';\nimport fs from 'fs-extra';\nimport webpack from 'webpack';\nimport HTMLWebpackPlugin from 'html-webpack-plugin';\n\nimport program from './parseArgs';\nimport requireExternal from './requireExternal';\nimport defaultWebpack from '../defaultConfig/webpack.config';\nimport defaultHuron from '../defaultConfig/huron.config';\n\nconst cwd = process.cwd();\n\n// Require configs passed in by user from CLI\nlet defaultConfig = false;\nconst localConfig = requireExternal(\n path.resolve(program.webpackConfig)\n);\nconst localHuron = requireExternal(\n path.resolve(program.huronConfig)\n);\n\n/**\n * Generate a mutant hybrid of the huron default webpack config and your local webpack config\n *\n * @function generateConfig\n * @param {object} config - local webpack config\n * @return {object} newConfig - updated data store\n */\nexport default function generateConfig() {\n let newConfig = localConfig;\n let newHuron = localHuron;\n\n // Execute config function, if provided\n if ('function' === typeof newConfig) {\n newConfig = newConfig(program.env);\n }\n\n // Execute huron config function, if provided\n if ('function' === typeof newHuron) {\n newHuron = newHuron(program.env);\n }\n\n // Merge huron defaults with user settings\n newHuron = Object.assign({}, defaultHuron, newHuron);\n // Use user huron config to modify webpack defaults\n defaultConfig = defaultWebpack(newHuron);\n\n // Set ouput options\n newConfig.output = Object.assign({}, defaultConfig.output, newConfig.output);\n newConfig.output.path = defaultConfig.output.path;\n newConfig.output.publicPath = defaultConfig.output.publicPath;\n\n // configure entries\n newConfig = configureEntries(newHuron, newConfig);\n\n // configure plugins\n newConfig = configurePlugins(newHuron, newConfig);\n\n // configure loaders\n newConfig = configureLoaders(newHuron, newConfig);\n\n // Add HTMLWebpackPlugin for each configured prototype\n newConfig = configurePrototypes(newHuron, newConfig);\n\n // Remove existing devServer settings\n delete newConfig.devServer;\n\n return {\n huron: newHuron,\n webpack: newConfig,\n };\n}\n\n/**\n * Configure and manage webpack entry points\n * @param {object} huron.entry Entry from huron config\n * @param {string} huron.root Path to root\n * @param {string} huron.port Port process is running on\n * @param {object} config Webpack config object\n * @return {object} Webpack config object with modified entries\n */\nfunction configureEntries({ entry, root, port }, config) {\n const originalEntry = config.entry[entry];\n const devServerEntries = program.production ? [] : [\n `webpack-dev-server/client/index.js?http://localhost:${port}/`,\n 'webpack/hot/dev-server',\n ];\n\n return Object.assign({},\n config,\n {\n entry: {\n [entry]: Array.prototype.concat(\n devServerEntries,\n path.join(cwd, root, 'huron-assets/index'),\n originalEntry\n ),\n },\n });\n}\n\n/**\n * Configure and manage webpack plugins\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePlugins(huron, config) {\n const newConfig = config;\n\n newConfig.plugins = config.plugins || [];\n\n if (!program.production) {\n if (newConfig.plugins && newConfig.plugins.length) {\n newConfig.plugins = newConfig.plugins.filter(\n (plugin) => 'HotModuleReplacementPlugin' !== plugin.constructor.name &&\n 'NamedModulesPlugin' !== plugin.constructor.name\n );\n }\n newConfig.plugins = newConfig.plugins\n .concat([\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NamedModulesPlugin(),\n ]);\n }\n\n return newConfig;\n}\n\n/**\n * Configure and manage webpack loaders\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configureLoaders(huron, config) {\n // Manage loaders\n const templatesLoader = huron.templates.rule || {};\n const newConfig = config;\n\n // Make sure we're only using templates loader for files in huron root\n templatesLoader.include = [path.join(cwd, huron.root, huron.output)];\n\n // Normalize module and module.rules\n newConfig.module = newConfig.module || {};\n newConfig.module.rules = newConfig.module.rules ||\n newConfig.module.loaders ||\n [];\n\n // Add default loaders\n newConfig.module.rules = defaultConfig.module.rules\n .concat(\n newConfig.module.rules,\n templatesLoader\n );\n\n return newConfig;\n}\n\n/**\n * Create an HTML webpack plugin for each configured prototype\n *\n * @param {object} huron - huron configuration object\n * @param {object} config - webpack configuration object\n * @return {object} newConfig - updated data store\n */\nfunction configurePrototypes(huron, config) {\n const wrapperTemplate = fs.readFileSync(\n path.join(__dirname, '../../templates/prototypeTemplate.hbs'),\n 'utf8'\n );\n\n const defaultHTMLPluginOptions = {\n title: 'Huron',\n window: huron.window,\n js: [],\n css: [],\n filename: 'index.html',\n template: path.join(\n cwd,\n huron.root,\n 'huron-assets/prototypeTemplate.hbs'\n ),\n inject: false,\n chunks: [huron.entry],\n };\n const newConfig = config;\n\n // Write prototype template file for HTML webpack plugin\n fs.outputFileSync(\n path.join(cwd, huron.root, 'huron-assets/prototypeTemplate.hbs'),\n wrapperTemplate\n );\n\n huron.prototypes.forEach((prototype) => {\n const newPrototype = prototype;\n let opts = {};\n\n // Merge configured settings with default settings\n if ('string' === typeof prototype) {\n opts = Object.assign({}, defaultHTMLPluginOptions, {\n title: prototype,\n filename: `${prototype}.html`,\n });\n } else if (\n 'object' === typeof prototype &&\n {}.hasOwnProperty.call(prototype, 'title')\n ) {\n // Create filename based on configured title if not provided\n if (!prototype.filename) {\n newPrototype.filename = `${prototype.title}.html`;\n }\n\n // Move css assets for this prototype,\n // reset css option with new file paths\n if (prototype.css) {\n newPrototype.css = moveAdditionalAssets(prototype.css, 'css', huron);\n }\n\n // Move js assets for this prototype,\n // reset js option with new file paths\n if (prototype.js) {\n newPrototype.js = moveAdditionalAssets(prototype.js, 'js', huron);\n }\n\n opts = Object.assign({}, defaultHTMLPluginOptions, newPrototype);\n }\n\n // Move global css assets,\n // reset css option with new file paths\n if (huron.css.length) {\n opts.css = opts.css.concat(\n moveAdditionalAssets(huron.css, 'css', huron)\n );\n }\n\n // Move global js assets,\n // reset js option with new file paths\n if (huron.js.length) {\n opts.js = opts.js.concat(\n moveAdditionalAssets(huron.js, 'js', huron)\n );\n }\n\n // Push a new plugin for each configured prototype\n if (Object.keys(opts).length) {\n newConfig.plugins.push(\n new HTMLWebpackPlugin(opts)\n );\n }\n });\n\n return newConfig;\n}\n\n/**\n * Move relative (and local) js and css assets provided in huron options\n *\n * @param {array|string} assets - array of assets or single asset\n * @param {string} subdir - subdirectory in huron root from which to load additional asset\n * @param {object} huron - huron configuration object\n * @return {array} assetResults - paths to js and css assets\n */\nfunction moveAdditionalAssets(assets, subdir = '', huron) {\n const currentAssets = [].concat(assets);\n const assetResults = [];\n\n currentAssets.forEach((asset) => {\n const assetInfo = path.parse(asset);\n const assetURL = url.parse(asset);\n const sourcePath = path.join(cwd, asset);\n const outputPath = path.resolve(cwd, huron.root, subdir, assetInfo.base);\n const loadPath = path.join(subdir, assetInfo.base);\n let contents = false;\n\n if (\n !path.isAbsolute(asset) &&\n !assetURL.protocol\n ) {\n try {\n contents = fs.readFileSync(sourcePath);\n } catch (e) {\n console.warn(`could not read ${sourcePath}`);\n }\n\n if (contents) {\n fs.outputFileSync(outputPath, contents);\n assetResults.push(loadPath);\n }\n } else {\n assetResults.push(asset);\n }\n });\n\n return assetResults;\n}\n","/**\n * @module cli/html-handler\n */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport * as utils from './utils';\n\n/**\n * Handle update of an HMTL template\n *\n * @function updateHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateHTML(filepath, section, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n const newSection = section;\n\n if (content) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n content,\n store\n );\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(store, newSection);\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of an HMTL template\n *\n * @function deleteHTML\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteHTML(filepath, section, store) {\n const newSection = section;\n\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n filepath,\n store\n );\n\n delete newSection.templatePath;\n\n return store\n .setIn(\n ['sections', 'sectionsByPath', section.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle update for a prototype file\n *\n * @function updatePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updatePrototype(filepath, store) {\n const file = path.parse(filepath);\n const content = fs.readFileSync(filepath, 'utf8');\n\n if (content) {\n const requirePath = utils.writeFile(\n file.name,\n 'prototype',\n filepath,\n content,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n }\n\n console.log(`File ${file.base} could not be read`);\n return store;\n}\n\n/**\n * Handle removal of a prototype file\n *\n * @function deletePrototype\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deletePrototype(filepath, store) {\n const file = path.parse(filepath);\n const requirePath = utils.removeFile(\n file.name,\n 'prototype',\n filepath,\n store\n );\n\n return store.setIn(\n ['prototypes', file.name],\n requirePath\n );\n}\n","/**\n * @module cli/kss-handler\n */\n\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { parse } from 'kss';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\nimport { updateTemplate, deleteTemplate } from './handleTemplates';\nimport { writeStore } from './requireTemplates';\n\n/**\n * Handle update of a KSS section\n *\n * @function updateKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function updateKSS(filepath, store) {\n const kssSource = fs.readFileSync(filepath, 'utf8');\n const huron = store.get('config');\n const oldSection = utils.getSection(filepath, false, store) || {};\n const file = path.parse(filepath);\n let newStore = store;\n\n if (kssSource) {\n const styleguide = parse(kssSource, huron.get('kssOptions'));\n\n if (styleguide.data.sections.length) {\n const section = utils.normalizeSectionData(\n styleguide.data.sections[0]\n );\n\n if (section.reference && section.referenceURI) {\n // Update or add section data\n newStore = updateSectionData(\n filepath,\n section,\n oldSection,\n newStore\n );\n\n // Remove old section data if reference URI has changed\n if (oldSection &&\n oldSection.referenceURI &&\n oldSection.referenceURI !== section.referenceURI\n ) {\n newStore = unsetSection(oldSection, file, newStore, false);\n }\n\n writeStore(newStore);\n console.log(\n chalk.green(\n `KSS source in ${filepath} changed or added`\n )\n );\n return newStore;\n }\n\n console.log(\n chalk.magenta(\n `KSS section in ${filepath} is missing a section reference`\n )\n );\n return newStore;\n }\n\n console.log(chalk.magenta(`No KSS found in ${filepath}`));\n return newStore;\n }\n\n if (oldSection) {\n newStore = deleteKSS(filepath, oldSection, newStore);\n }\n\n console.log(chalk.red(`${filepath} not found or empty`)); // eslint-disable-line no-console\n return newStore;\n}\n\n/**\n * Handle removal of a KSS section\n *\n * @function deleteKSS\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nexport function deleteKSS(filepath, section, store) {\n const file = path.parse(filepath);\n\n if (section.reference && section.referenceURI) {\n // Remove section data from memory store\n return unsetSection(section, file, store, true);\n }\n\n return store;\n}\n\n/**\n * Update the sections store with new data for a specific section\n *\n * @function updateSectionData\n * @param {object} section - contains updated section data\n * @param {string} kssPath - path to KSS section\n * @param {object} store - memory store\n * @return {object} updated data store\n */\nfunction updateSectionData(kssPath, section, oldSection, store) {\n const sectionFileInfo = path.parse(kssPath);\n const dataFilepath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n const isInline = null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = sortSection(\n store.getIn(['sections', 'sorted']),\n section.reference,\n store.get('referenceDelimiter')\n );\n const newSection = Object.assign({}, oldSection, section);\n let newStore = store;\n\n // Required for reference from templates and data\n newSection.kssPath = kssPath;\n\n if (isInline) {\n // Set section value if inlineTempalte() returned a path\n newStore = updateInlineTemplate(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n } else {\n // Remove inline template, if it exists\n utils.removeFile(\n newSection.referenceURI,\n 'template',\n kssPath,\n store\n );\n // Update markup and data fields\n newStore = updateTemplateFields(\n sectionFileInfo,\n oldSection,\n newSection,\n newStore\n );\n }\n\n // Output section description\n newStore = updateDescription(\n kssPath,\n oldSection,\n newSection,\n newStore\n );\n\n // Output section data to a JSON file\n newSection.sectionPath = utils.writeSectionData(\n newStore,\n newSection,\n dataFilepath\n );\n\n // Update section sorting\n return newStore\n .setIn(\n ['sections', 'sorted'],\n newSort\n )\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n}\n\n/**\n * Handle detection and output of inline templates, which is markup written\n * in the KSS documentation itself as opposed to an external file\n *\n * @function updateInlineTemplate\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new template path info\n */\nfunction updateInlineTemplate(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we have inline markup\n if (fieldShouldOutput(oldSection, section, 'markup')) {\n newSection.templatePath = utils.writeFile(\n section.referenceURI,\n 'template',\n filepath,\n section.markup,\n store\n );\n newSection.templateContent = section.markup;\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle output of section description\n *\n * @function updateDescription\n * @param {string} oldSection - previous iteration of KSS data, if updated\n * @param {object} section - KSS section data\n * @return {object} updated data store with new descripton path info\n */\nfunction updateDescription(filepath, oldSection, section, store) {\n const newSection = section;\n const newStore = store;\n\n // If we don't have previous KSS or the KSS has been updated\n if (fieldShouldOutput(oldSection, section, 'description')) {\n // Write new description\n newSection.descriptionPath = utils.writeFile(\n section.referenceURI,\n 'description',\n filepath,\n section.description,\n store\n );\n\n return newStore\n .setIn(\n ['sections', 'sectionsByPath', filepath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', section.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle Data and Markup fields\n *\n * @function updateTemplateFields\n * @param {string} file - File data for KSS file from path.parse()\n * @param {object} oldSection - outdated KSS data\n * @param {object} section - KSS section data\n * @param {object} store - memory store\n * @return {object} KSS section data with updated asset paths\n */\nfunction updateTemplateFields(file, oldSection, section, store) {\n const kssPath = path.format(file);\n const newSection = section;\n let filepath = '';\n let oldFilepath = '';\n let newStore = store;\n\n ['data', 'markup'].forEach((field) => {\n if (newSection[field]) {\n if (oldSection[field]) {\n oldFilepath = path.join(file.dir, oldSection[field]);\n newStore = deleteTemplate(\n oldFilepath,\n oldSection,\n newStore\n );\n }\n\n filepath = path.join(file.dir, newSection[field]);\n newStore = updateTemplate(\n filepath,\n newSection,\n newStore\n );\n } else {\n delete newSection[field];\n newStore = newStore\n .setIn(\n ['sections', 'sectionsByPath', kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n });\n\n return newStore;\n}\n\n/**\n * Remove a section from the memory store\n *\n * @function unsetSection\n * @param {object} section - contains updated section data\n * @param {string} file - file object from path.parse()\n * @param {object} store - memory store\n * @param {bool} removed - has the file been removed or just the section information changed?\n * @return {object} updated data store with new descripton path info\n */\nfunction unsetSection(section, file, store, removed) {\n const sorted = store.getIn(['sections', 'sorted']);\n const kssPath = path.format(file);\n const dataFilepath = path.join(file.dir, `${file.name}.json`);\n const isInline = section.markup &&\n null !== section.markup.match(/<\\/[^>]*>/);\n const newSort = unsortSection(\n sorted,\n section.reference,\n store.get('referenceDelimiter')\n );\n let newStore = store;\n\n // Remove old section data\n utils.removeFile(\n section.referenceURI,\n 'section',\n dataFilepath,\n newStore\n );\n\n // Remove associated inline template\n if (isInline) {\n utils.removeFile(section.referenceURI, 'template', kssPath, newStore);\n }\n\n // Remove description template\n utils.removeFile(section.referenceURI, 'description', kssPath, newStore);\n\n // Remove data from sectionsByPath if file has been removed\n if (removed) {\n newStore = newStore.deleteIn(['sections', 'sectionsByPath', kssPath]);\n }\n\n return newStore\n .deleteIn(['sections', 'sectionsByURI', section.referenceURI])\n .setIn(['sections', 'sorted'], newSort);\n}\n\n/**\n * Sort sections and subsections\n *\n * @function sortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction sortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const newSort = sorted[parts[0]] || {};\n const newSorted = sorted;\n\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = sortSection(\n newSort,\n newParts.join(delimiter),\n delimiter\n );\n } else {\n newSorted[parts[0]] = newSort;\n }\n\n return newSorted;\n}\n\n/**\n * Remove a section from the sorted sections\n *\n * @function unsortSection\n * @param {object} sorted - currently sorted sections\n * @param {string} reference - reference URI of section to sort\n * @return {object} updated data store with new descripton path info\n */\nfunction unsortSection(sorted, reference, delimiter) {\n const parts = reference.split(delimiter);\n const subsections = Object.keys(sorted[parts[0]]);\n const newSorted = sorted;\n\n if (subsections.length) {\n if (1 < parts.length) {\n const newParts = parts.filter((part, idx) => 0 !== idx);\n newSorted[parts[0]] = unsortSection(\n newSorted[parts[0]],\n newParts.join(delimiter),\n delimiter\n );\n }\n } else {\n delete newSorted[parts[0]];\n }\n\n return newSorted;\n}\n\n/**\n * Compare a KSS field between old and new KSS data to see if we need to output\n * a new module for that field\n *\n * @function fieldShouldOutput\n * @param {object} oldSection - currently sorted sections\n * @param {object} newSection - reference URI of section to sort\n * @param {string} field - KSS field to check\n * @return {bool} output a new module for the KSS field\n */\nfunction fieldShouldOutput(oldSection, newSection, field) {\n return (oldSection &&\n (oldSection[field] !== newSection[field] ||\n oldSection.referenceURI !== newSection.referenceURI)\n ) ||\n !oldSection;\n}\n","/** @module cli/template-handler */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nimport * as utils from './utils';\n\n/**\n * Handle update of a template or data (json) file\n *\n * @function updateTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function updateTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const pairPath = utils.getTemplateDataPair(file, section, store);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n let content = false;\n\n try {\n content = fs.readFileSync(filepath, 'utf8');\n } catch (e) {\n console.log(chalk.red(`${filepath} does not exist`));\n }\n\n if (content) {\n const requirePath = utils.writeFile(\n newSection.referenceURI,\n type,\n filepath,\n content,\n newStore\n );\n newSection[`${type}Path`] = requirePath;\n\n if ('template' === type) {\n newSection.templateContent = content;\n\n // Rewrite section data with template content\n newSection.sectionPath = utils.writeSectionData(newStore, newSection);\n }\n\n return newStore\n .setIn(\n ['templates', requirePath],\n pairPath\n )\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n }\n\n return newStore;\n}\n\n/**\n * Handle removal of a template or data (json) file\n *\n * @function deleteTemplate\n * @param {string} filepath - filepath of changed file (comes from gaze)\n * @param {object} section - contains KSS section data\n * @param {object} store - memory store\n * @return {object} updated memory store\n */\nexport function deleteTemplate(filepath, section, store) {\n const file = path.parse(filepath);\n const type = '.json' === file.ext ? 'data' : 'template';\n const newSection = section;\n const newStore = store;\n\n // Remove partner\n const requirePath = utils.removeFile(\n newSection.referenceURI,\n type,\n filepath,\n newStore\n );\n delete newSection[`${type}Path`];\n\n return newStore\n .deleteIn(['templates', requirePath])\n .setIn(\n ['sections', 'sectionsByPath', newSection.kssPath],\n newSection\n )\n .setIn(\n ['sections', 'sectionsByURI', newSection.referenceURI],\n newSection\n );\n}\n","// Local imports\nimport chalk from 'chalk';\n\nimport {\n initFiles,\n updateFile,\n deleteFile,\n updateClassNames,\n} from './actions';\nimport { requireTemplates, writeStore } from './requireTemplates';\nimport { matchKssDir } from './utils';\nimport program from './parseArgs';\nimport startWebpack from './server';\nimport { defaultStore, config } from './defaultStore';\nimport gaze from './fileWatcher';\n\n/**\n * Initialize data store with files from gaze and original data structure\n *\n * @global\n */\nconst huron = defaultStore.get('config');\nlet store = initFiles(gaze.watched(), defaultStore);\n\nrequireTemplates(store);\nwriteStore(store);\n\n// If building for production, close gaze and exit process once initFiles is done.\nif (program.production) {\n gaze.close();\n}\n\n/** @module cli/gaze */\ngaze.on('all', (event, filepath) => {\n store = updateClassNames(filepath, store);\n writeStore(store);\n});\n\n/**\n * Anonymous handler for Gaze 'changed' event indicating a file has changed\n *\n * @callback changed\n * @listens gaze:changed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('changed', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n }\n\n console.log(chalk.green(`${filepath} updated!`));\n});\n\n/**\n * Anonymous handler for Gaze 'added' event indicating a file has been added to the watched directories\n *\n * @callback added\n * @listens gaze:added\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('added', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = updateFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${filepath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'renamed' event indicating a file has been renamed\n *\n * @callback renamed\n * @listens gaze:renamed\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('renamed', (newPath, oldPath) => {\n if (matchKssDir(newPath, huron)) {\n store = deleteFile(oldPath, store);\n store = updateFile(newPath, store);\n writeStore(store);\n }\n\n console.log(chalk.blue(`${newPath} added!`));\n});\n\n/**\n * Anonymous handler for Gaze 'deleted' event indicating a file has been removed\n *\n * @callback deleted\n * @listens gaze:deleted\n * @param {string} filepath - absolute path of changed file\n */\ngaze.on('deleted', (filepath) => {\n if (matchKssDir(filepath, huron)) {\n store = deleteFile(filepath, store);\n writeStore(store);\n }\n\n console.log(chalk.red(`${filepath} deleted`));\n});\n\n// Start webpack or build for production\nstartWebpack(config);\n","/** @module cli/parse-arguments */\n/* eslint-disable space-unary-ops */\n\nimport program from 'commander';\nimport path from 'path';\n\n// Requires\n/** @global */\n\n// @todo this may be deprecated with webpack 4\n\n/**\n * Process huron CLI arguments\n *\n * @function parseArgs\n * @example node huron/dist/cli/huron-cli.js --config 'client/config/webpack.config.js' --production\n */\nfunction parseArgs() {\n const envArg = {};\n\n process.argv = process.argv.filter((arg) => {\n if (-1 !== arg.indexOf('--env')) {\n const envParts = arg\n .split('.')[1]\n .split('=');\n\n envArg[envParts[0]] = envParts[1] || true;\n return false;\n }\n\n return true;\n });\n\n program.version('1.0.1')\n .option(\n '-c, --huron-config [huronConfig]',\n '[huronConfig] for all huron options',\n path.resolve(__dirname, '../defaultConfig/huron.config.js')\n )\n .option(\n '-w, --webpack-config [webpackConfig]',\n '[webpackConfig] for all webpack options',\n path.resolve(__dirname, '../defaultConfig/webpack.config.js')\n )\n .option('-p, --production', 'compile assets once for production');\n\n program.env = envArg;\n\n // Only parse if we're not running tests\n if (\n ! process.env.npm_lifecycle_event ||\n 'test' !== process.env.npm_lifecycle_event\n ) {\n program.parse(process.argv);\n }\n}\n\nparseArgs();\n/* eslint-enable */\n\nexport default program;\n","// Necessary to remove require statement from Webpack processing preserve it in output\n/* eslint-disable import/no-dynamic-require, global-require */\nexport default function requireExternal(requirePath) {\n return require(requirePath);\n}\n/* eslint-enable */\n","/** @module cli/require-templates */\nimport path from 'path';\nimport fs from 'fs-extra';\n\n// We need to prepend this to the browser script as a string but still want to transpile it,\n// hence loading it using `raw-loader` so we receive a string from webpack\n/* eslint-disable */\nimport hotTemplate from '!raw-loader!babel-loader!../../templates/hotTemplate';\n/* eslint-enable */\n\nconst cwd = process.cwd();\nconst huronScript = fs.readFileSync(\n path.join(__dirname, '../web/index.js'),\n 'utf8'\n);\n\n/**\n * Write code for requiring all generated huron assets\n *\n * @function requireTemplates\n * @param {object} store - memory store\n */\nexport const requireTemplates = function requireTemplates(store) {\n const huron = store.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n // These will be used to replace strings in the hotTemplate.\n // In order to accurately replace strings but still keep things parseable by eslint and babel,\n // each replaceable value should be referenced in `hotTemplate.js` under the `hotScope` object.\n // For example, if you need to replace a string with a value passed in from the CLI called `userVariable`,\n // you would reference that string in `hotTemplate.js` with `hotScope.userVariable`.\n const hotVariableScope = {\n sectionTemplatePath: `'${huron.get('sectionTemplate')}'`,\n requireRegex: new RegExp(`\\\\.html|\\\\.json|\\\\${\n huron.get('templates').extension\n }$`),\n requirePath: `'../${huron.get('output')}'`,\n };\n const hotTemplateTransformed = Object.keys(hotVariableScope)\n .reduce(\n (acc, curr) => acc.replace(\n new RegExp(`hotScope.${curr}`, 'g'),\n hotVariableScope[curr]\n ), hotTemplate\n );\n\n // Write the contents of this script.\n fs.outputFileSync(\n path.join(outputPath, 'index.js'),\n hotTemplateTransformed\n );\n fs.outputFileSync(\n path.join(outputPath, 'insertNodes.js'),\n huronScript\n );\n};\n\n/**\n * Output entire data store to a JS object and handle if any KSS data has changed\n *\n * @function writeStore\n * @param {object} store - memory store\n * @param {string} changed - filepath of changed KSS section, if applicable\n */\nexport const writeStore = function writeStore(store, newStore = false) {\n const updatedStore = newStore || store;\n const huron = updatedStore.get('config');\n const outputPath = path.join(cwd, huron.get('root'), 'huron-assets');\n\n // Write updated data store\n fs.outputFileSync(\n path.join(outputPath, 'huron-store.js'),\n `module.exports = ${JSON.stringify(updatedStore.toJSON())}`\n );\n};\n\n","/** @module cli/webpack-server */\nimport webpack from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\nimport chalk from 'chalk';\nimport open from 'opn';\n\nimport createDevServerConfig from '../../config/devServer.config';\nimport program from './parseArgs';\nimport { removeTrailingSlash } from './utils';\n\n/**\n * Spin up webpack-dev-server or, if production flag is set, run webpack a single time\n *\n * @function startWebpack\n * @param {object} config - webpack configuration, preprocessed by {@link module:cli/generate-config generateConfig}\n * @see {@link module:cli/generate-config generateConfig}\n */\nexport default function startWebpack(config) {\n const {\n huron,\n webpack: webpackConfig,\n } = config;\n const compiler = webpack(webpackConfig);\n\n if (program.progress) {\n compiler.apply(new webpack.ProgressPlugin((percentage, msg) => {\n console.log(`${(percentage * 100)}% `, msg);\n }));\n }\n\n if (program.production) {\n compiler.run((err, stats) => {\n const info = stats.toJson();\n\n if (err) {\n console.log(err);\n }\n\n if (stats.hasErrors()) {\n console.error(\n chalk.red(\n 'Webpack encountered errors during compile: ',\n info.errors\n )\n );\n }\n\n if (stats.hasWarnings()) {\n console.error(chalk.yellow('Webpack encountered warnings during compile: ', info.warnings)); // eslint-disable-line max-len\n }\n });\n } else {\n const server = new WebpackDevServer(compiler, createDevServerConfig(huron));\n const prototypeName = huron.prototypes[0].title || huron.prototypes[0];\n\n server.listen(\n huron.port,\n 'localhost',\n (err) => {\n if (err) {\n return console.log(err);\n }\n\n console.log(`Listening at http://localhost:${huron.port}/`);\n open(`http://localhost:${huron.port}/${\n removeTrailingSlash(huron.root)\n }/${prototypeName}.html`);\n return true;\n }\n );\n }\n}\n","/**\n * @module cli/utilities\n */\nimport path from 'path';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\n\nconst cwd = process.cwd(); // Current working directory\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function normalizeSectionData\n * @param {object} section - section data\n * @return {object} section data\n */\nexport function normalizeSectionData(section) {\n const data = section.data || section;\n\n if (!data.referenceURI || '' === data.referenceURI) {\n data.referenceURI = section.referenceURI();\n }\n\n return data;\n}\n\n/**\n * Ensure predictable data structure for KSS section data\n *\n * @function writeSectionData\n * @param {object} store - data store\n * @param {object} section - section data\n * @param {string} sectionPath - output destination for section data file\n */\nexport function writeSectionData(store, section, sectionPath = false) {\n let outputPath = sectionPath;\n let sectionFileInfo;\n\n if (!outputPath && {}.hasOwnProperty.call(section, 'kssPath')) {\n sectionFileInfo = path.parse(section.kssPath);\n outputPath = path.join(\n sectionFileInfo.dir,\n `${sectionFileInfo.name}.json`\n );\n }\n\n // Output section data\n if (outputPath) {\n return writeFile(\n section.referenceURI,\n 'section',\n outputPath,\n JSON.stringify(section),\n store\n );\n }\n\n console.warn(chalk.red(`Failed to write data for ${section.referenceURI}`));\n return false;\n}\n\n/**\n * Find .json from a template file or vice versa\n *\n * @function getTemplateDataPair\n * @param {object} file - file object from path.parse()\n * @param {object} section - KSS section data\n * @return {string} relative path to module JSON file\n */\nexport function getTemplateDataPair(file, section, store) {\n const huron = store.get('config');\n const kssDir = matchKssDir(file.dir, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const partnerType = '.json' === file.ext ? 'template' : 'data';\n const partnerExt = '.json' === file.ext ?\n huron.get('templates').extension :\n '.json';\n\n const pairPath = path.join(\n componentPath,\n generateFilename(\n section.referenceURI,\n partnerType,\n partnerExt,\n store\n )\n );\n\n return `./${pairPath}`;\n }\n\n return false;\n}\n\n/**\n * Normalize a section title for use as a filename\n *\n * @function normalizeHeader\n * @param {string} header - section header extracted from KSS documentation\n * @return {string} modified header, lowercase and words separated by dash\n */\nexport function normalizeHeader(header) {\n return header\n .toLowerCase()\n .replace(/\\s?\\W\\s?/g, '-');\n}\n\n/**\n * Wrap html in required template tags\n *\n * @function wrapMarkup\n * @param {string} content - html or template markup\n * @param {string} templateId - id of template (should be section reference)\n * @return {string} modified HTML\n */\nexport function wrapMarkup(content, templateId) {\n return `\n\n\\n`;\n}\n\n/**\n * Generate a filename based on referenceURI, type and file object\n *\n * @function generateFilename\n * @param {string} id - The name of the file (with extension).\n * @param {string} type - the type of file output\n * @param {object} ext - file extension\n * @param {store} store - data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function generateFilename(id, type, ext, store) {\n // Type of file and its corresponding extension(s)\n const types = store.get('types');\n const outputExt = '.scss' !== ext ? ext : '.html';\n\n /* eslint-disable */\n if (-1 === types.indexOf(type)) {\n console.log(`Huron data ${type} does not exist`);\n return false;\n }\n /* eslint-enable */\n\n return `${id}-${type}${outputExt}`;\n}\n\n/**\n * Copy an HTML file into the huron output directory.\n *\n * @function writeFile\n * @param {string} id - The name of the file (with extension).\n * @param {string} content - The content of the file to write.\n * @param {string} type - the type of file output\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function writeFile(id, type, filepath, content, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n let newContent = content;\n\n if ('data' !== type && 'section' !== type) {\n newContent = wrapMarkup(content, id);\n }\n\n try {\n fs.outputFileSync(outputPath, newContent);\n console.log(chalk.green(`Writing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log(chalk.red(`Failed to write ${outputRelative}`)); // eslint-disable-line no-console\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Delete a file in the huron output directory\n *\n * @function removeFile\n * @param {string} filename - The name of the file (with extension).\n * @param {object} store - The data store\n * @return {string} Path to output file, relative to ouput dir (can be use in require statements)\n */\nexport function removeFile(id, type, filepath, store) {\n const huron = store.get('config');\n const file = path.parse(filepath);\n const filename = generateFilename(id, type, file.ext, store);\n const kssDir = matchKssDir(filepath, huron);\n\n if (kssDir) {\n const componentPath = path.relative(\n path.resolve(cwd, kssDir),\n file.dir\n );\n const outputRelative = path.join(\n huron.get('output'),\n componentPath,\n `${filename}`\n );\n const outputPath = path.resolve(cwd, huron.get('root'), outputRelative);\n\n try {\n fs.removeSync(outputPath);\n console.log(chalk.green(`Removing ${outputRelative}`)); // eslint-disable-line no-console\n } catch (e) {\n console.log(chalk.red(`${outputRelative} does not exist or cannot be deleted`)); // eslint-disable-line\n }\n\n return `./${outputRelative.replace(`${huron.get('output')}/`, '')}`;\n }\n\n return false;\n}\n\n/**\n * Write a template for sections\n *\n * @function writeSectionTemplate\n * @param {string} filepath - the original template file\n * @param {object} store - data store\n * @return {object} updated store\n */\nexport function writeSectionTemplate(filepath, store) {\n const huron = store.get('config');\n const sectionTemplate = wrapMarkup(fs.readFileSync(filepath, 'utf8'));\n const componentPath = './huron-assets/section.hbs';\n const output = path.join(\n cwd,\n huron.get('root'),\n componentPath\n );\n\n // Move huron script and section template into huron root\n fs.outputFileSync(output, sectionTemplate);\n console.log(chalk.green(`writing section template to ${output}`)); // eslint-disable-line no-console\n\n return store.set('sectionTemplatePath', componentPath);\n}\n\n/**\n * Request for section data based on section reference\n *\n * @function writeSectionTemplate\n * @param {string} search - key on which to match section\n * @param {field} string - field in which to look to determine section\n * @param {obj} store - sections memory store\n */\nexport function getSection(search, field, store) {\n const sectionValues = store\n .getIn(['sections', 'sectionsByPath'])\n .valueSeq();\n let selectedSection = false;\n\n if (field) {\n selectedSection = sectionValues\n .filter((value) => value[field] === search)\n .get(0);\n } else {\n selectedSection = store.getIn(['sections', 'sectionsByPath', search]);\n }\n\n return selectedSection;\n}\n\n/**\n * Find which configured KSS directory a filepath exists in\n *\n * @function matchKssDir\n * @param {string} filepath - filepath to search for\n * @param {object} huron - huron configuration\n * @return {string} kssMatch - relative path to KSS directory\n */\nexport function matchKssDir(filepath, huron) {\n const kssSource = huron.get('kss');\n // Include forward slash in our test to make sure we're matchin a directory, not a file extension\n const kssMatch = kssSource.filter((dir) => filepath.includes(`/${dir}`));\n\n if (kssMatch.length) {\n return kssMatch[0];\n }\n\n return false;\n}\n\n/**\n * Merge JSON files for css modules classnames in a provided directory\n *\n * @function mergeClassnameJSON\n * @param {string} directory - directory containing classname JSON files\n *\n * @return {object} classnamesMerged - merged classnames. contents of each JSON file is nested within\n * the returned object by filename. (e.g. article.json -> { article: {...json contents}})\n */\n// Have the huron config provide a path to a file that provides the classnames mainfest\n// and use wahtever is in that\nexport function getClassnamesFromJSON(filepath) {\n const fileInfo = path.parse(filepath);\n let classNames = {};\n\n if ('.json' === fileInfo.ext) {\n try {\n const contents = fs.readFileSync(\n filepath,\n 'utf8'\n );\n classNames = JSON.parse(contents);\n } catch (e) {\n console.warn(chalk.red(e));\n }\n }\n\n // return { [filepath]: classNames };\n return classNames;\n}\n\n// export function mergeClassnameJSON(directory) {\n// let files;\n\n// // If no config is provided, return immediately\n// if (!directory) {\n// return {};\n// }\n\n// // Try to read through classnames directory\n// try {\n// files = fs.readdirSync(directory);\n// } catch (e) {\n// console.warn(chalk.red(e));\n// }\n\n// // Merge classname json files\n// const classNamesMerged = files.reduce((acc, file) => {\n// const fileInfo = path.parse(file);\n// let classNames = {};\n\n// if ('.json' === fileInfo.ext) {\n// try {\n// const contents = fs.readFileSync(\n// path.join(directory, file),\n// 'utf8'\n// );\n// classNames = JSON.parse(contents);\n// } catch (e) {\n// console.warn(chalk.red(e));\n// }\n// }\n\n// return Object.assign({}, acc, { [fileInfo.name]: classNames });\n// }, {});\n\n// return classNamesMerged;\n// }\n\n/**\n * Remove the trailing slash from a provided directory\n *\n * @function removeTrailingSlash\n * @param {string} directory - directory path\n * @return {string} directory - directory path with trailing slash removed\n */\nexport function removeTrailingSlash(directory) {\n if ('/' === directory.slice(-1)) {\n return directory.slice(0, -1);\n }\n\n return directory;\n}\n","import path from 'path';\n\nexport default {\n css: [],\n entry: 'huron',\n js: [],\n kss: 'css/',\n kssExtension: '.css',\n kssOptions: {\n multiline: true,\n markdown: true,\n custom: ['data'],\n },\n output: 'partials',\n port: 8080,\n prototypes: ['index'],\n root: 'dist/',\n sectionTemplate: path.join(__dirname, '../../templates/section.hbs'),\n classNames: false,\n templates: {\n rule: {\n test: /\\.(hbs|handlebars)$/,\n use: 'handlebars-loader',\n },\n extension: '.hbs',\n },\n window: {},\n};\n","import webpack from 'webpack';\nimport path from 'path';\n\nimport program from '../cli/parseArgs';\n\nexport default ({ root, output }) => ({\n mode: 'development',\n entry: {},\n output: {\n path: path.join(process.cwd(), root),\n publicPath: program.production ? '' :\n `/${root}`,\n filename: '[name].js',\n chunkFilename: '[name].chunk.min.js',\n },\n optimization: {\n namedModules: true,\n },\n plugins: [\n new webpack.HotModuleReplacementPlugin(),\n ],\n resolve: {\n modulesDirectories: [\n path.resolve(__dirname, '../src/js'),\n ],\n },\n resolveLoader: {\n modulesDirectories: [\n 'web_loaders',\n 'web_modules',\n 'node_loaders',\n 'node_modules',\n path.resolve(__dirname, '../node_modules'),\n ],\n },\n module: {\n rules: [\n {\n test: /\\.html$/,\n include: [path.join(process.cwd(), root, output)],\n use: 'html-loader',\n },\n {\n test: /\\.(hbs|handlebars)$/,\n include: [path.join(process.cwd(), root, 'huron-assets')],\n use: {\n loader: 'handlebars-loader',\n query: {\n helperDirs: [path.join(\n __dirname,\n '../../',\n 'templates/handlebarsHelpers'\n )],\n },\n },\n },\n ],\n },\n});\n","module.exports = require(\"chalk\");","module.exports = require(\"commander\");","module.exports = require(\"fs-extra\");","module.exports = require(\"gaze\");","module.exports = require(\"html-webpack-plugin\");","module.exports = require(\"immutable\");","module.exports = require(\"kss\");","module.exports = require(\"lodash/isEqual\");","module.exports = require(\"opn\");","module.exports = require(\"path\");","module.exports = require(\"url\");","module.exports = require(\"webpack\");","module.exports = require(\"webpack-dev-server\");"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAWA;AAjBA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;AC0BA;AA8CA;AA8DA;AAwDA;AACA;AA1LA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;AADA;AACA;;;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AACA;AA4BA;AACA;AACA;AACA;;;;;;;AAjEA;;;;AAIA;AAoEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAvCA;AACA;AAyCA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnCA;AACA;AAqCA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3MA;AACA;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AAnBA;AAqBA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AAAA;AACA;;;AACA;AACA;AAAA;AACA;;;AACA;;;;;AAKA;AACA;AACA;;;;;AAKA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;AAKA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBA;AACA;AA9BA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AAdA;AAeA;AACA;AAGA;AACA;AAGA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AAIA;AAGA;AACA;AADA;AADA;AASA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAZA;AAcA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3RA;AA0CA;AA+BA;AA+BA;AACA;AAtHA;AACA;;;AAAA;AACA;;;AAAA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAjDA;;;AA0DA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AASA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AAMA;AAIA;;;;;;;;;;;;;;;;;AChHA;AAsEA;AACA;AAxFA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;AACA;AACA;AADA;AACA;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAMA;AACA;AAIA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAlFA;;;;AA2FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AAIA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAMA;AACA;AAMA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAKA;AACA;AAaA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AASA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAKA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AAKA;;;;;;;;;;;;;;;;;AChaA;AA0DA;AACA;AA1EA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;AADA;AACA;;;;;AACA;;;;;;;;;AAPA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAUA;;;;;;;;;;;;;;AClGA;AACA;;;AACA;AACA;AAKA;AACA;AAAA;AACA;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;AAAA;AACA;;;;;AACA;;;;;AAhBA;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpGA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAXA;AACA;AACA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1DA;AAFA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACJA;AACA;;;AAAA;AACA;;;AAIA;AACA;;;;;AAAA;AACA;AACA;AACA;AAPA;AACA;AACA;AANA;AACA;AAUA;AACA;AAIA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AALA;AAOA;AACA;AAOA;AACA;AAIA;AAIA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;;;;;ACxDA;AACA;AAjBA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;AACA;;;;;;;AAOA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;;;;;;;;;;;;;;;;;ACvDA;AAkBA;AAmCA;AAqCA;AAcA;AAkBA;AAyBA;AA4CA;AAuCA;AAyBA;AAyBA;AAuBA;AAiEA;AACA;AA9XA;AACA;;;AAAA;AACA;;;AAAA;AACA;;;;;AACA;AACA;AACA;;;;;;;AATA;;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AAGA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;;AAFA;AAKA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtYA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAIA;AALA;AAOA;AAxBA;;;;;;;;;;;;;;;;;;ACFA;AACA;;;AAAA;AACA;;;AACA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AALA;AAOA;AACA;AADA;AAGA;AAGA;AACA;AADA;AAKA;AACA;AADA;AASA;AACA;AAEA;AACA;AACA;AAHA;AAMA;AACA;AACA;AACA;AACA;AACA;AADA;AAFA;AAHA;AAPA;AA9BA;;;;;;;;;;;;;;;;;;;;;;;ACLA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack:///webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 30);\n"],"mappings":"AACA","sourceRoot":""} \ No newline at end of file diff --git a/dist/web/index.js b/dist/web/index.js index 08791f7..4225663 100644 --- a/dist/web/index.js +++ b/dist/web/index.js @@ -1,2152 +1,6 @@ -module.exports = -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "../"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/lodash/fp.js": -/*!***********************************!*\ - !*** ./node_modules/lodash/fp.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var _ = __webpack_require__(/*! ./lodash.min */ "./node_modules/lodash/lodash.min.js").runInContext(); -module.exports = __webpack_require__(/*! ./fp/_baseConvert */ "./node_modules/lodash/fp/_baseConvert.js")(_, _); - - -/***/ }), - -/***/ "./node_modules/lodash/fp/_baseConvert.js": -/*!************************************************!*\ - !*** ./node_modules/lodash/fp/_baseConvert.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var mapping = __webpack_require__(/*! ./_mapping */ "./node_modules/lodash/fp/_mapping.js"), - fallbackHolder = __webpack_require__(/*! ./placeholder */ "./node_modules/lodash/fp/placeholder.js"); - -/** Built-in value reference. */ -var push = Array.prototype.push; - +module.exports=function(t){var n={};function e(r){if(n[r])return n[r].exports;var u=n[r]={i:r,l:!1,exports:{}};return t[r].call(u.exports,u,u.exports,e),u.l=!0,u.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="../",e(e.s=0)}({"./node_modules/lodash/fp.js":function(t,n,e){var r=e("./node_modules/lodash/lodash.min.js").runInContext();t.exports=e("./node_modules/lodash/fp/_baseConvert.js")(r,r)},"./node_modules/lodash/fp/_baseConvert.js":function(t,n,e){var r=e("./node_modules/lodash/fp/_mapping.js"),u=e("./node_modules/lodash/fp/placeholder.js"),i=Array.prototype.push;function o(t,n){return 2==n?function(n,e){return t(n,e)}:function(n){return t(n)}}function a(t){for(var n=t?t.length:0,e=Array(n);n--;)e[n]=t[n];return e}function c(t,n){return function(){var e=arguments.length;if(e){for(var r=Array(e);e--;)r[e]=arguments[e];var u=r[0]=n.apply(void 0,r);return t.apply(void 0,r),u}}}t.exports=function t(n,e,f,l){var s,p="function"==typeof e,h=e===Object(e);if(h&&(l=f,f=e,e=void 0),null==f)throw new TypeError;l||(l={});var d={cap:!("cap"in l)||l.cap,curry:!("curry"in l)||l.curry,fixed:!("fixed"in l)||l.fixed,immutable:!("immutable"in l)||l.immutable,rearg:!("rearg"in l)||l.rearg},g="curry"in l&&l.curry,y="fixed"in l&&l.fixed,_="rearg"in l&&l.rearg,v=p?f:u,b=p?f.runInContext():void 0,m=p?f:{ary:n.ary,assign:n.assign,clone:n.clone,curry:n.curry,forEach:n.forEach,isArray:n.isArray,isError:n.isError,isFunction:n.isFunction,isWeakMap:n.isWeakMap,iteratee:n.iteratee,keys:n.keys,rearg:n.rearg,toInteger:n.toInteger,toPath:n.toPath},x=m.ary,j=m.assign,A=m.clone,w=m.curry,k=m.forEach,O=m.isArray,I=m.isError,E=m.isFunction,W=m.isWeakMap,R=m.keys,S=m.rearg,M=m.toInteger,B=m.toPath,L=R(r.aryMethod),C={castArray:function(t){return function(){var n=arguments[0];return O(n)?t(a(n)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var n=arguments[0],e=arguments[1],r=t(n,e),u=r.length;return d.cap&&"number"==typeof e?(e=e>2?e-2:1,u&&u<=e?r:o(r,e)):r}},mixin:function(t){return function(n){var e=this;if(!E(e))return t(e,Object(n));var r=[];return k(R(n),function(t){E(n[t])&&r.push([t,e.prototype[t]])}),t(e,Object(n)),k(r,function(t){var n=t[1];E(n)?e.prototype[t[0]]=n:delete e.prototype[t[0]]}),e}},nthArg:function(t){return function(n){var e=n<0?1:M(n)+1;return w(t(n),e)}},rearg:function(t){return function(n,e){var r=e?e.length:0;return w(t(n,e),r)}},runInContext:function(e){return function(r){return t(n,e(r),l)}}};function T(t,n){if(d.cap){var e=r.iterateeRearg[t];if(e)return function(t,n){return U(t,function(t){var e=n.length;return function(t,n){return 2==n?function(n,e){return t.apply(void 0,arguments)}:function(n){return t.apply(void 0,arguments)}}(S(o(t,e),n),e)})}(n,e);var u=!p&&r.iterateeAry[t];if(u)return function(t,n){return U(t,function(t){return"function"==typeof t?o(t,n):t})}(n,u)}return n}function z(t,n,e){if(d.fixed&&(y||!r.skipFixed[t])){var u=r.methodSpread[t],o=u&&u.start;return void 0===o?x(n,e):function(t,n){return function(){for(var e=arguments.length,r=e-1,u=Array(e);e--;)u[e]=arguments[e];var o=u[n],a=u.slice(0,n);return o&&i.apply(a,o),n!=r&&i.apply(a,u.slice(n+1)),t.apply(this,a)}}(n,o)}return n}function F(t,n,e){return d.rearg&&e>1&&(_||!r.skipRearg[t])?S(n,r.methodRearg[t]||r.aryRearg[e]):n}function D(t,n){for(var e=-1,r=(n=B(n)).length,u=r-1,i=A(Object(t)),o=i;null!=o&&++e1?w(c,f):c,!1}var c,f}),!e}),e||(e=i),e==n&&(e=g?w(e,1):function(){return n.apply(this,arguments)}),e.convert=P(u,n),r.placeholder[u]&&(s=!0,e.placeholder=n.placeholder=v),e}if(!h)return N(e,f);var q=f,$=[];return k(L,function(t){k(r.aryMethod[t],function(t){var n=q[r.remap[t]||t];n&&$.push([t,N(t,n)])})}),k(R(q),function(t){var n=q[t];if("function"==typeof n){for(var e=$.length;e--;)if($[e][0]==t)return;n.convert=P(t,n),$.push([t,n])}}),k($,function(t){q[t[0]]=t[1]}),q.convert=function(t){return q.runInContext.convert(t)(void 0)},s&&(q.placeholder=v),k(R(q),function(t){k(r.realToAlias[t]||[],function(n){q[n]=q[t]})}),q}},"./node_modules/lodash/fp/_mapping.js":function(t,n){n.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},n.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},n.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},n.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},n.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},n.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},n.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},n.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},n.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},n.realToAlias=function(){var t=Object.prototype.hasOwnProperty,e=n.aliasToReal,r={};for(var u in e){var i=e[u];t.call(r,i)?r[i].push(u):r[i]=[u]}return r}(),n.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},n.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},n.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}},"./node_modules/lodash/fp/placeholder.js":function(t,n){t.exports={}},"./node_modules/lodash/lodash.min.js":function(t,n,e){(function(t,r){var u; /** - * Creates a function, with an arity of `n`, that invokes `func` with the - * arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} n The arity of the new function. - * @returns {Function} Returns the new function. - */ -function baseArity(func, n) { - return n == 2 - ? function(a, b) { return func.apply(undefined, arguments); } - : function(a) { return func.apply(undefined, arguments); }; -} - -/** - * Creates a function that invokes `func`, with up to `n` arguments, ignoring - * any additional arguments. - * - * @private - * @param {Function} func The function to cap arguments for. - * @param {number} n The arity cap. - * @returns {Function} Returns the new function. - */ -function baseAry(func, n) { - return n == 2 - ? function(a, b) { return func(a, b); } - : function(a) { return func(a); }; -} - -/** - * Creates a clone of `array`. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the cloned array. - */ -function cloneArray(array) { - var length = array ? array.length : 0, - result = Array(length); - - while (length--) { - result[length] = array[length]; - } - return result; -} - -/** - * Creates a function that clones a given object using the assignment `func`. - * - * @private - * @param {Function} func The assignment function. - * @returns {Function} Returns the new cloner function. - */ -function createCloner(func) { - return function(object) { - return func({}, object); - }; -} - -/** - * A specialized version of `_.spread` which flattens the spread array into - * the arguments of the invoked `func`. - * - * @private - * @param {Function} func The function to spread arguments over. - * @param {number} start The start position of the spread. - * @returns {Function} Returns the new function. - */ -function flatSpread(func, start) { - return function() { - var length = arguments.length, - lastIndex = length - 1, - args = Array(length); - - while (length--) { - args[length] = arguments[length]; - } - var array = args[start], - otherArgs = args.slice(0, start); - - if (array) { - push.apply(otherArgs, array); - } - if (start != lastIndex) { - push.apply(otherArgs, args.slice(start + 1)); - } - return func.apply(this, otherArgs); - }; -} - -/** - * Creates a function that wraps `func` and uses `cloner` to clone the first - * argument it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} cloner The function to clone arguments. - * @returns {Function} Returns the new immutable function. - */ -function wrapImmutable(func, cloner) { - return function() { - var length = arguments.length; - if (!length) { - return; - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var result = args[0] = cloner.apply(undefined, args); - func.apply(undefined, args); - return result; - }; -} - -/** - * The base implementation of `convert` which accepts a `util` object of methods - * required to perform conversions. - * - * @param {Object} util The util object. - * @param {string} name The name of the function to convert. - * @param {Function} func The function to convert. - * @param {Object} [options] The options object. - * @param {boolean} [options.cap=true] Specify capping iteratee arguments. - * @param {boolean} [options.curry=true] Specify currying. - * @param {boolean} [options.fixed=true] Specify fixed arity. - * @param {boolean} [options.immutable=true] Specify immutable operations. - * @param {boolean} [options.rearg=true] Specify rearranging arguments. - * @returns {Function|Object} Returns the converted function or object. - */ -function baseConvert(util, name, func, options) { - var setPlaceholder, - isLib = typeof name == 'function', - isObj = name === Object(name); - - if (isObj) { - options = func; - func = name; - name = undefined; - } - if (func == null) { - throw new TypeError; - } - options || (options = {}); - - var config = { - 'cap': 'cap' in options ? options.cap : true, - 'curry': 'curry' in options ? options.curry : true, - 'fixed': 'fixed' in options ? options.fixed : true, - 'immutable': 'immutable' in options ? options.immutable : true, - 'rearg': 'rearg' in options ? options.rearg : true - }; - - var forceCurry = ('curry' in options) && options.curry, - forceFixed = ('fixed' in options) && options.fixed, - forceRearg = ('rearg' in options) && options.rearg, - placeholder = isLib ? func : fallbackHolder, - pristine = isLib ? func.runInContext() : undefined; - - var helpers = isLib ? func : { - 'ary': util.ary, - 'assign': util.assign, - 'clone': util.clone, - 'curry': util.curry, - 'forEach': util.forEach, - 'isArray': util.isArray, - 'isError': util.isError, - 'isFunction': util.isFunction, - 'isWeakMap': util.isWeakMap, - 'iteratee': util.iteratee, - 'keys': util.keys, - 'rearg': util.rearg, - 'toInteger': util.toInteger, - 'toPath': util.toPath - }; - - var ary = helpers.ary, - assign = helpers.assign, - clone = helpers.clone, - curry = helpers.curry, - each = helpers.forEach, - isArray = helpers.isArray, - isError = helpers.isError, - isFunction = helpers.isFunction, - isWeakMap = helpers.isWeakMap, - keys = helpers.keys, - rearg = helpers.rearg, - toInteger = helpers.toInteger, - toPath = helpers.toPath; - - var aryMethodKeys = keys(mapping.aryMethod); - - var wrappers = { - 'castArray': function(castArray) { - return function() { - var value = arguments[0]; - return isArray(value) - ? castArray(cloneArray(value)) - : castArray.apply(undefined, arguments); - }; - }, - 'iteratee': function(iteratee) { - return function() { - var func = arguments[0], - arity = arguments[1], - result = iteratee(func, arity), - length = result.length; - - if (config.cap && typeof arity == 'number') { - arity = arity > 2 ? (arity - 2) : 1; - return (length && length <= arity) ? result : baseAry(result, arity); - } - return result; - }; - }, - 'mixin': function(mixin) { - return function(source) { - var func = this; - if (!isFunction(func)) { - return mixin(func, Object(source)); - } - var pairs = []; - each(keys(source), function(key) { - if (isFunction(source[key])) { - pairs.push([key, func.prototype[key]]); - } - }); - - mixin(func, Object(source)); - - each(pairs, function(pair) { - var value = pair[1]; - if (isFunction(value)) { - func.prototype[pair[0]] = value; - } else { - delete func.prototype[pair[0]]; - } - }); - return func; - }; - }, - 'nthArg': function(nthArg) { - return function(n) { - var arity = n < 0 ? 1 : (toInteger(n) + 1); - return curry(nthArg(n), arity); - }; - }, - 'rearg': function(rearg) { - return function(func, indexes) { - var arity = indexes ? indexes.length : 0; - return curry(rearg(func, indexes), arity); - }; - }, - 'runInContext': function(runInContext) { - return function(context) { - return baseConvert(util, runInContext(context), options); - }; - } - }; - - /*--------------------------------------------------------------------------*/ - - /** - * Casts `func` to a function with an arity capped iteratee if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @returns {Function} Returns the cast function. - */ - function castCap(name, func) { - if (config.cap) { - var indexes = mapping.iterateeRearg[name]; - if (indexes) { - return iterateeRearg(func, indexes); - } - var n = !isLib && mapping.iterateeAry[name]; - if (n) { - return iterateeAry(func, n); - } - } - return func; - } - - /** - * Casts `func` to a curried function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity of `func`. - * @returns {Function} Returns the cast function. - */ - function castCurry(name, func, n) { - return (forceCurry || (config.curry && n > 1)) - ? curry(func, n) - : func; - } - - /** - * Casts `func` to a fixed arity function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity cap. - * @returns {Function} Returns the cast function. - */ - function castFixed(name, func, n) { - if (config.fixed && (forceFixed || !mapping.skipFixed[name])) { - var data = mapping.methodSpread[name], - start = data && data.start; - - return start === undefined ? ary(func, n) : flatSpread(func, start); - } - return func; - } - - /** - * Casts `func` to an rearged function if needed. - * - * @private - * @param {string} name The name of the function to inspect. - * @param {Function} func The function to inspect. - * @param {number} n The arity of `func`. - * @returns {Function} Returns the cast function. - */ - function castRearg(name, func, n) { - return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name])) - ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n]) - : func; - } - - /** - * Creates a clone of `object` by `path`. - * - * @private - * @param {Object} object The object to clone. - * @param {Array|string} path The path to clone by. - * @returns {Object} Returns the cloned object. - */ - function cloneByPath(object, path) { - path = toPath(path); - - var index = -1, - length = path.length, - lastIndex = length - 1, - result = clone(Object(object)), - nested = result; - - while (nested != null && ++index < length) { - var key = path[index], - value = nested[key]; - - if (value != null && - !(isFunction(value) || isError(value) || isWeakMap(value))) { - nested[key] = clone(index == lastIndex ? value : Object(value)); - } - nested = nested[key]; - } - return result; - } - - /** - * Converts `lodash` to an immutable auto-curried iteratee-first data-last - * version with conversion `options` applied. - * - * @param {Object} [options] The options object. See `baseConvert` for more details. - * @returns {Function} Returns the converted `lodash`. - */ - function convertLib(options) { - return _.runInContext.convert(options)(undefined); - } - - /** - * Create a converter function for `func` of `name`. - * - * @param {string} name The name of the function to convert. - * @param {Function} func The function to convert. - * @returns {Function} Returns the new converter function. - */ - function createConverter(name, func) { - var realName = mapping.aliasToReal[name] || name, - methodName = mapping.remap[realName] || realName, - oldOptions = options; - - return function(options) { - var newUtil = isLib ? pristine : helpers, - newFunc = isLib ? pristine[methodName] : func, - newOptions = assign(assign({}, oldOptions), options); - - return baseConvert(newUtil, realName, newFunc, newOptions); - }; - } - - /** - * Creates a function that wraps `func` to invoke its iteratee, with up to `n` - * arguments, ignoring any additional arguments. - * - * @private - * @param {Function} func The function to cap iteratee arguments for. - * @param {number} n The arity cap. - * @returns {Function} Returns the new function. - */ - function iterateeAry(func, n) { - return overArg(func, function(func) { - return typeof func == 'function' ? baseAry(func, n) : func; - }); - } - - /** - * Creates a function that wraps `func` to invoke its iteratee with arguments - * arranged according to the specified `indexes` where the argument value at - * the first index is provided as the first argument, the argument value at - * the second index is provided as the second argument, and so on. - * - * @private - * @param {Function} func The function to rearrange iteratee arguments for. - * @param {number[]} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - */ - function iterateeRearg(func, indexes) { - return overArg(func, function(func) { - var n = indexes.length; - return baseArity(rearg(baseAry(func, n), indexes), n); - }); - } - - /** - * Creates a function that invokes `func` with its first argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function() { - var length = arguments.length; - if (!length) { - return func(); - } - var args = Array(length); - while (length--) { - args[length] = arguments[length]; - } - var index = config.rearg ? 0 : (length - 1); - args[index] = transform(args[index]); - return func.apply(undefined, args); - }; - } - - /** - * Creates a function that wraps `func` and applys the conversions - * rules by `name`. - * - * @private - * @param {string} name The name of the function to wrap. - * @param {Function} func The function to wrap. - * @returns {Function} Returns the converted function. - */ - function wrap(name, func) { - var result, - realName = mapping.aliasToReal[name] || name, - wrapped = func, - wrapper = wrappers[realName]; - - if (wrapper) { - wrapped = wrapper(func); - } - else if (config.immutable) { - if (mapping.mutate.array[realName]) { - wrapped = wrapImmutable(func, cloneArray); - } - else if (mapping.mutate.object[realName]) { - wrapped = wrapImmutable(func, createCloner(func)); - } - else if (mapping.mutate.set[realName]) { - wrapped = wrapImmutable(func, cloneByPath); - } - } - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(otherName) { - if (realName == otherName) { - var data = mapping.methodSpread[realName], - afterRearg = data && data.afterRearg; - - result = afterRearg - ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey) - : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey); - - result = castCap(realName, result); - result = castCurry(realName, result, aryKey); - return false; - } - }); - return !result; - }); - - result || (result = wrapped); - if (result == func) { - result = forceCurry ? curry(result, 1) : function() { - return func.apply(this, arguments); - }; - } - result.convert = createConverter(realName, func); - if (mapping.placeholder[realName]) { - setPlaceholder = true; - result.placeholder = func.placeholder = placeholder; - } - return result; - } - - /*--------------------------------------------------------------------------*/ - - if (!isObj) { - return wrap(name, func); - } - var _ = func; - - // Convert methods by ary cap. - var pairs = []; - each(aryMethodKeys, function(aryKey) { - each(mapping.aryMethod[aryKey], function(key) { - var func = _[mapping.remap[key] || key]; - if (func) { - pairs.push([key, wrap(key, func)]); - } - }); - }); - - // Convert remaining methods. - each(keys(_), function(key) { - var func = _[key]; - if (typeof func == 'function') { - var length = pairs.length; - while (length--) { - if (pairs[length][0] == key) { - return; - } - } - func.convert = createConverter(key, func); - pairs.push([key, func]); - } - }); - - // Assign to `_` leaving `_.prototype` unchanged to allow chaining. - each(pairs, function(pair) { - _[pair[0]] = pair[1]; - }); - - _.convert = convertLib; - if (setPlaceholder) { - _.placeholder = placeholder; - } - // Assign aliases. - each(keys(_), function(key) { - each(mapping.realToAlias[key] || [], function(alias) { - _[alias] = _[key]; - }); - }); - - return _; -} - -module.exports = baseConvert; - - -/***/ }), - -/***/ "./node_modules/lodash/fp/_mapping.js": -/*!********************************************!*\ - !*** ./node_modules/lodash/fp/_mapping.js ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -/** Used to map aliases to their real names. */ -exports.aliasToReal = { - - // Lodash aliases. - 'each': 'forEach', - 'eachRight': 'forEachRight', - 'entries': 'toPairs', - 'entriesIn': 'toPairsIn', - 'extend': 'assignIn', - 'extendAll': 'assignInAll', - 'extendAllWith': 'assignInAllWith', - 'extendWith': 'assignInWith', - 'first': 'head', - - // Methods that are curried variants of others. - 'conforms': 'conformsTo', - 'matches': 'isMatch', - 'property': 'get', - - // Ramda aliases. - '__': 'placeholder', - 'F': 'stubFalse', - 'T': 'stubTrue', - 'all': 'every', - 'allPass': 'overEvery', - 'always': 'constant', - 'any': 'some', - 'anyPass': 'overSome', - 'apply': 'spread', - 'assoc': 'set', - 'assocPath': 'set', - 'complement': 'negate', - 'compose': 'flowRight', - 'contains': 'includes', - 'dissoc': 'unset', - 'dissocPath': 'unset', - 'dropLast': 'dropRight', - 'dropLastWhile': 'dropRightWhile', - 'equals': 'isEqual', - 'identical': 'eq', - 'indexBy': 'keyBy', - 'init': 'initial', - 'invertObj': 'invert', - 'juxt': 'over', - 'omitAll': 'omit', - 'nAry': 'ary', - 'path': 'get', - 'pathEq': 'matchesProperty', - 'pathOr': 'getOr', - 'paths': 'at', - 'pickAll': 'pick', - 'pipe': 'flow', - 'pluck': 'map', - 'prop': 'get', - 'propEq': 'matchesProperty', - 'propOr': 'getOr', - 'props': 'at', - 'symmetricDifference': 'xor', - 'symmetricDifferenceBy': 'xorBy', - 'symmetricDifferenceWith': 'xorWith', - 'takeLast': 'takeRight', - 'takeLastWhile': 'takeRightWhile', - 'unapply': 'rest', - 'unnest': 'flatten', - 'useWith': 'overArgs', - 'where': 'conformsTo', - 'whereEq': 'isMatch', - 'zipObj': 'zipObject' -}; - -/** Used to map ary to method names. */ -exports.aryMethod = { - '1': [ - 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create', - 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow', - 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll', - 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse', - 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart', - 'uniqueId', 'words', 'zipAll' - ], - '2': [ - 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith', - 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith', - 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN', - 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference', - 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq', - 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex', - 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach', - 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get', - 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection', - 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy', - 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty', - 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit', - 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial', - 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll', - 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', - 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex', - 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy', - 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', - 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', - 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', - 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', - 'zipObjectDeep' - ], - '3': [ - 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith', - 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr', - 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith', - 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth', - 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd', - 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight', - 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', - 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy', - 'xorWith', 'zipWith' - ], - '4': [ - 'fill', 'setWith', 'updateWith' - ] -}; - -/** Used to map ary to rearg configs. */ -exports.aryRearg = { - '2': [1, 0], - '3': [2, 0, 1], - '4': [3, 2, 0, 1] -}; - -/** Used to map method names to their iteratee ary. */ -exports.iterateeAry = { - 'dropRightWhile': 1, - 'dropWhile': 1, - 'every': 1, - 'filter': 1, - 'find': 1, - 'findFrom': 1, - 'findIndex': 1, - 'findIndexFrom': 1, - 'findKey': 1, - 'findLast': 1, - 'findLastFrom': 1, - 'findLastIndex': 1, - 'findLastIndexFrom': 1, - 'findLastKey': 1, - 'flatMap': 1, - 'flatMapDeep': 1, - 'flatMapDepth': 1, - 'forEach': 1, - 'forEachRight': 1, - 'forIn': 1, - 'forInRight': 1, - 'forOwn': 1, - 'forOwnRight': 1, - 'map': 1, - 'mapKeys': 1, - 'mapValues': 1, - 'partition': 1, - 'reduce': 2, - 'reduceRight': 2, - 'reject': 1, - 'remove': 1, - 'some': 1, - 'takeRightWhile': 1, - 'takeWhile': 1, - 'times': 1, - 'transform': 2 -}; - -/** Used to map method names to iteratee rearg configs. */ -exports.iterateeRearg = { - 'mapKeys': [1], - 'reduceRight': [1, 0] -}; - -/** Used to map method names to rearg configs. */ -exports.methodRearg = { - 'assignInAllWith': [1, 0], - 'assignInWith': [1, 2, 0], - 'assignAllWith': [1, 0], - 'assignWith': [1, 2, 0], - 'differenceBy': [1, 2, 0], - 'differenceWith': [1, 2, 0], - 'getOr': [2, 1, 0], - 'intersectionBy': [1, 2, 0], - 'intersectionWith': [1, 2, 0], - 'isEqualWith': [1, 2, 0], - 'isMatchWith': [2, 1, 0], - 'mergeAllWith': [1, 0], - 'mergeWith': [1, 2, 0], - 'padChars': [2, 1, 0], - 'padCharsEnd': [2, 1, 0], - 'padCharsStart': [2, 1, 0], - 'pullAllBy': [2, 1, 0], - 'pullAllWith': [2, 1, 0], - 'rangeStep': [1, 2, 0], - 'rangeStepRight': [1, 2, 0], - 'setWith': [3, 1, 2, 0], - 'sortedIndexBy': [2, 1, 0], - 'sortedLastIndexBy': [2, 1, 0], - 'unionBy': [1, 2, 0], - 'unionWith': [1, 2, 0], - 'updateWith': [3, 1, 2, 0], - 'xorBy': [1, 2, 0], - 'xorWith': [1, 2, 0], - 'zipWith': [1, 2, 0] -}; - -/** Used to map method names to spread configs. */ -exports.methodSpread = { - 'assignAll': { 'start': 0 }, - 'assignAllWith': { 'start': 0 }, - 'assignInAll': { 'start': 0 }, - 'assignInAllWith': { 'start': 0 }, - 'defaultsAll': { 'start': 0 }, - 'defaultsDeepAll': { 'start': 0 }, - 'invokeArgs': { 'start': 2 }, - 'invokeArgsMap': { 'start': 2 }, - 'mergeAll': { 'start': 0 }, - 'mergeAllWith': { 'start': 0 }, - 'partial': { 'start': 1 }, - 'partialRight': { 'start': 1 }, - 'without': { 'start': 1 }, - 'zipAll': { 'start': 0 } -}; - -/** Used to identify methods which mutate arrays or objects. */ -exports.mutate = { - 'array': { - 'fill': true, - 'pull': true, - 'pullAll': true, - 'pullAllBy': true, - 'pullAllWith': true, - 'pullAt': true, - 'remove': true, - 'reverse': true - }, - 'object': { - 'assign': true, - 'assignAll': true, - 'assignAllWith': true, - 'assignIn': true, - 'assignInAll': true, - 'assignInAllWith': true, - 'assignInWith': true, - 'assignWith': true, - 'defaults': true, - 'defaultsAll': true, - 'defaultsDeep': true, - 'defaultsDeepAll': true, - 'merge': true, - 'mergeAll': true, - 'mergeAllWith': true, - 'mergeWith': true, - }, - 'set': { - 'set': true, - 'setWith': true, - 'unset': true, - 'update': true, - 'updateWith': true - } -}; - -/** Used to track methods with placeholder support */ -exports.placeholder = { - 'bind': true, - 'bindKey': true, - 'curry': true, - 'curryRight': true, - 'partial': true, - 'partialRight': true -}; - -/** Used to map real names to their aliases. */ -exports.realToAlias = (function() { - var hasOwnProperty = Object.prototype.hasOwnProperty, - object = exports.aliasToReal, - result = {}; - - for (var key in object) { - var value = object[key]; - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - } - return result; -}()); - -/** Used to map method names to other names. */ -exports.remap = { - 'assignAll': 'assign', - 'assignAllWith': 'assignWith', - 'assignInAll': 'assignIn', - 'assignInAllWith': 'assignInWith', - 'curryN': 'curry', - 'curryRightN': 'curryRight', - 'defaultsAll': 'defaults', - 'defaultsDeepAll': 'defaultsDeep', - 'findFrom': 'find', - 'findIndexFrom': 'findIndex', - 'findLastFrom': 'findLast', - 'findLastIndexFrom': 'findLastIndex', - 'getOr': 'get', - 'includesFrom': 'includes', - 'indexOfFrom': 'indexOf', - 'invokeArgs': 'invoke', - 'invokeArgsMap': 'invokeMap', - 'lastIndexOfFrom': 'lastIndexOf', - 'mergeAll': 'merge', - 'mergeAllWith': 'mergeWith', - 'padChars': 'pad', - 'padCharsEnd': 'padEnd', - 'padCharsStart': 'padStart', - 'propertyOf': 'get', - 'rangeStep': 'range', - 'rangeStepRight': 'rangeRight', - 'restFrom': 'rest', - 'spreadFrom': 'spread', - 'trimChars': 'trim', - 'trimCharsEnd': 'trimEnd', - 'trimCharsStart': 'trimStart', - 'zipAll': 'zip' -}; - -/** Used to track methods that skip fixing their arity. */ -exports.skipFixed = { - 'castArray': true, - 'flow': true, - 'flowRight': true, - 'iteratee': true, - 'mixin': true, - 'rearg': true, - 'runInContext': true -}; - -/** Used to track methods that skip rearranging arguments. */ -exports.skipRearg = { - 'add': true, - 'assign': true, - 'assignIn': true, - 'bind': true, - 'bindKey': true, - 'concat': true, - 'difference': true, - 'divide': true, - 'eq': true, - 'gt': true, - 'gte': true, - 'isEqual': true, - 'lt': true, - 'lte': true, - 'matchesProperty': true, - 'merge': true, - 'multiply': true, - 'overArgs': true, - 'partial': true, - 'partialRight': true, - 'propertyOf': true, - 'random': true, - 'range': true, - 'rangeRight': true, - 'subtract': true, - 'zip': true, - 'zipObject': true, - 'zipObjectDeep': true -}; - - -/***/ }), - -/***/ "./node_modules/lodash/fp/placeholder.js": -/*!***********************************************!*\ - !*** ./node_modules/lodash/fp/placeholder.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -/** - * The default argument placeholder value for methods. - * - * @type {Object} - */ -module.exports = {}; - - -/***/ }), - -/***/ "./node_modules/lodash/lodash.min.js": -/*!*******************************************!*\ - !*** ./node_modules/lodash/lodash.min.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** * @license * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE - */ -;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; -Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false; -var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true, -Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,Dn=parseInt,Mn=typeof global=="object"&&global&&global.Object===Object&&global,Tn=typeof self=="object"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function("return this")(),Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){ -try{var n=Nn&&Nn.f&&Nn.f("util").types;return n?n:Zn&&Zn.binding&&Zn.binding("util")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I", -"\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C", -"\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i", -"\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r", -"\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij", -"\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),nt=x({"&":"&","<":"<",">":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,"__wrapped__"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n, -this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(cf(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn), -i=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ni("Expected a function"); -return yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s), -l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ -return du(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return du(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?"[object Array]":_o(n),c=o?"[object Array]":_o(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ -if(!(1&r)&&(i=a&&ii.call(n,"__wrapped__"),f=o&&ii.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())), -n=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)), -t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a), -o-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1], -r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T; -for(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){ -return n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){ -return t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!="function")throw new ni("Expected a function");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder, -n}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)), -s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ni("Expected a function");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Li(ku(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ni("Expected a function"); -return r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!="function")throw new ni("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!bu(n); -}function pu(n){return!!gu(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function _u(n){return typeof n=="number"&&n==Au(n)}function vu(n){return typeof n=="number"&&-1=n}function gu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function du(n){return null!=n&&typeof n=="object"}function yu(n){return typeof n=="number"||du(n)&&"[object Number]"==Ot(n)}function bu(n){return!(!du(n)||"[object Object]"!=Ot(n))&&(n=gi(n), -null===n||(n=ii.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n=="string"||!of(n)&&du(n)&&"[object String]"==Ot(n)}function ju(n){return typeof n=="symbol"||du(n)&&"[object Symbol]"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),("[object Map]"==t?W:"[object Set]"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n), -n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n=="number")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=gu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?"":yr(n); -}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n)); -}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,"")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n=="function"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&"chain"in e&&!e.chain),f=pu(n);return r(i,function(r){ -var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn["__core-js_shared__"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){ -var n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu("^"+ui.call(ii).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,"defineProperty"); -return n({},"",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,"DataView"),Fi=je(mn,"Map"),Ni=je(mn,"Promise"),Pi=je(mn,"Set"),Zi=je(mn,"WeakMap"),qi=je(Yu,"create"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){ -function n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], -this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1), ---this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n); -},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){ -return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,"toString",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){ -return $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&"[object DataView]"!=_o(new $i(new ArrayBuffer(1)))||Fi&&"[object Map]"!=_o(new Fi)||Ni&&"[object Promise]"!=_o(Ni.resolve())||Pi&&"[object Set]"!=_o(new Pi)||Zi&&"[object WeakMap]"!=_o(new Zi))&&(_o=function(n){ -var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Me(n):"")switch(n){case Gi:return"[object DataView]";case Hi:return"[object Map]";case Ji:return"[object Promise]";case Yi:return"[object Set]";case Qi:return"[object WeakMap]"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ -t.push(e?u.replace(hn,"$1"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(), -r.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T), -mr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t=="function"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,"callee")&&!yi.call(n,"callee")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){ -if(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[]; -},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t=="string"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ni("Expected a function");return r=null==r?0:Li(Au(r),0), -fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n), -n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ni("Expected a function");return gu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{}; -}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){ -return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu, -An.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){ -n=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At); -},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&"[object WeakMap]"==_o(n)},An.isWeakSet=function(n){return du(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)), -t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){ -return""},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length; -return e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+"g")), -u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({ -iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n); -},Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295); -},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({ -func:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+""; -(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n; -},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){ -var e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe), -An}(); true?($n._=rt, !(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return rt}).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))):undefined}).call(this); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) - -/***/ }), - -/***/ "./node_modules/webpack/buildin/global.js": -/*!***********************************!*\ - !*** (webpack)/buildin/global.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1, eval)("this"); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), - -/***/ "./node_modules/webpack/buildin/module.js": -/*!***********************************!*\ - !*** (webpack)/buildin/module.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function(module) { - if (!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - return module; -}; - - -/***/ }), - -/***/ "./src/web/index.js": -/*!**************************!*\ - !*** ./src/web/index.js ***! - \**************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint-disable no-underscore-dangle */ - - -var _fp = __webpack_require__(/*! lodash/fp */ "./node_modules/lodash/fp.js"); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -// Accept the huron.js module for Huron development -if (false) {} - -/** Class for inserting HTML snippets at particular insertion points. - * Uses require() to grab html partials, then inserts that html - * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section, - * and [huron-type] corresponding with the required KSS field - */ - -var InsertNodes = function () { - function InsertNodes(modules, store) { - _classCallCheck(this, InsertNodes); - - /** webpack module list in which keys are relative require paths and values are the module contents */ - this._modules = modules; - /** array of module keys */ - this._moduleIds = Object.keys(modules); - /** reference to the huron config */ - this._config = null; - /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */ - this._sections = null; - /** Key/value pairs of partner data and template files */ - this._templates = null; - /** array of prototypes */ - this._prototypes = null; - /** array of valid huron placeholder types */ - this._types = null; - /** array of CSS modules classnames */ - this._classNames = null; - - /** Cache for module metadata */ - this.meta = {}; - - /** Reference to entire memory store */ - this.store = store; - - // Inits - this.cycleModules(); - this.cycleStyleguide(); - } - - /** - * Apply a modifier if one exists - * - * @param {object} data - data with which to render template - * @param {string} modifier - target modifier - * - * @return {string} data - subset of data object for supplied modifier - */ - - - _createClass(InsertNodes, [{ - key: 'cycleModules', - - - /** - * Replace all template markers with the actual template markup. - * - * @param {string} context - The within which to replace markup - * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs - */ - value: function cycleModules() { - var _this = this; - - var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var moduleList = {}; - var elementList = context; - - // We're replacing top-level elements - if (!elementList) { - this.regenCache(); - - // Find all top-level huron placeholders - elementList = [].concat(_toConsumableArray(document.querySelectorAll('[data-huron-id][data-huron-type]'))); - } - - moduleList = this.getModuleListFromTags(elementList); - - // Loop through modules array - Object.keys(moduleList).forEach(function (key) { - var module = _this._modules[key]; - var replaceElements = moduleList[key]; - - _this.loadModule(key, module, replaceElements, true, filter); - }); - } - - /** - * Helper for reloading sections only - */ - - }, { - key: 'cycleSections', - value: function cycleSections() { - this.cycleModules(false, { - property: 'type', - values: ['section'], - include: true - }); - } - - /** - * Reload styleguide sections and menu helpers - */ - - }, { - key: 'cycleStyleguide', - value: function cycleStyleguide() { - var sectionsQuery = document.querySelector('[huron-sections]'); - var menuQuery = document.querySelector('[huron-menu]'); - - // Sections - if (sectionsQuery) { - sectionsQuery.innerHTML = ''; - this.outputSections(null, sectionsQuery); - this.cycleSections(); - } - - // Menu - if (menuQuery) { - menuQuery.innerHTML = ''; - - if (null === document.querySelector('.section-menu__expand')) { - var menuTrigger = document.createElement('button'); - - menuTrigger.classList.add('section-menu__expand'); - menuTrigger.innerHTML = 'Sections Menu'; - document.body.insertBefore(menuQuery.appendChild(menuTrigger), document.body.childNodes[0]); - - // Add menu trigger handler - menuTrigger.addEventListener('click', function () { - document.body.classList.toggle('section-menu-open'); - }); - } - - // Create menu - this.outputMenu(null, menuQuery); - } - } - - /** - * Generate a unique key for targeting markup replacement - * - * @param {string} key - module key (webpack require path) to convert into a replacement key - * @return {string} key - generated replacement key - */ - - }, { - key: 'generateModuleReplaceKey', - value: function generateModuleReplaceKey(key) { - var currentKey = key; - - // If this is section data, use the section template path - if (key.includes('-section.json')) { - currentKey = this._sectionTemplatePath; - // If updated module is a json file, use template key instead - } else if (key.includes('.json')) { - currentKey = this._templates[key]; - } - - return '_' + currentKey.replace(/[/.]/g, '_'); - } - - /** - * Get module metadata from a module require path - * - * @param {string} key - Module require path - * @return {object} containing module id, module type, key and the module contents - */ - - }, { - key: 'getMetaFromPath', - value: function getMetaFromPath(key, module) { - var _this2 = this; - - var sections = this._sections.sectionsByPath; - var templateTypes = this._types.filter(function (type) { - return 'prototype' !== type; - }); - var id = false; - var type = false; - - /* eslint-disable space-unary-ops */ - if (-1 !== key.indexOf('./prototypes')) { - /* eslint-enable space-unary-ops */ - var prototype = Object.keys(this._prototypes).filter(function (name) { - return _this2._prototypes[name] === key; - }); - - if (prototype.length) { - var _prototype = _slicedToArray(prototype, 1); - - id = _prototype[0]; - - type = 'prototype'; - } - } else if (key === this._sectionTemplatePath) { - id = 'sections-template'; - type = 'sections-template'; - } else { - var testTypes = []; - var testSections = Object.keys(sections).filter(function (section) { - var tempTypes = templateTypes.filter(function (currentType) { - return sections[section][currentType + 'Path'] === key; - }); - - if (tempTypes.length) { - testTypes = tempTypes; - return true; - } - - return false; - }); - - if (testSections && testSections.length && testTypes && testTypes.length) { - id = sections[testSections[0]].referenceURI; - var _testTypes = testTypes; - - var _testTypes2 = _slicedToArray(_testTypes, 1); - - type = _testTypes2[0]; - } - } - - if (id && type) { - var renderData = this.getModuleRender(type, key, module); - var replaceKey = this.generateModuleReplaceKey(key); - - if (renderData) { - return Object.assign({ - id: id, type: type, key: key, replaceKey: replaceKey, module: module - }, renderData); - } - } - - console.warn('Module \'' + key + '\' does not exist on the page\n or is no longer in use'); - return false; - } - - /** - * Check if a tag is a huron placeholder and, if so, - * return its associated module key - * - * @param {object} tag - tag to check - * @return {bool} associated module key - */ - - }, { - key: 'getModuleKeyFromTag', - value: function getModuleKeyFromTag(tag) { - // Safari/webkit has some trouble parsing dataset in certain cases. - // This is a fallback method of accessing the same data. - var type = InsertNodes.getDataAttribute(tag, 'huron-type'); - var id = InsertNodes.getDataAttribute(tag, 'huron-id'); - var section = this._sections.sectionsByURI[id]; - - if (id && type) { - if (section) { - return section[type + 'Path']; - } else if ('prototype' === type) { - return this._prototypes[id]; - } - } - - return false; - } - - /** - * Check if an array of elements contains a Huron placeholder - * - * @param {array} tags - array of DOM nodes - * @param {bool} recurse - should we recurse this function with a new array - * @return {object} moduleList - Huron placeholder DOM node - */ - - }, { - key: 'getModuleListFromTags', - value: function getModuleListFromTags(elements) { - var _this3 = this; - - var recurse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - var moduleList = {}; - var newList = {}; - - if (elements && elements.length) { - elements.forEach(function (element) { - var moduleKey = _this3.getModuleKeyFromTag(element); - - if (moduleKey) { - if (!moduleList[moduleKey]) { - moduleList[moduleKey] = []; - } - moduleList[moduleKey].push(element); - } else if (recurse) { - newList = _this3.getModuleListFromTags([].concat(_toConsumableArray(element.querySelectorAll('[data-huron-id][data-huron-type]'))), false); - - Object.keys(newList).forEach(function (key) { - moduleList[key] = moduleList[key] ? moduleList[key].concat(newList[key]) : newList[key]; - }); - } - }); - } - - return moduleList; - } - - /** - * Transform every module into a predictable object - * - * @param {object} type - Module metadata - * @param {mixed} module - Module contents - * @return {object} containing render function, render data and module id - */ - - }, { - key: 'getModuleRender', - value: function getModuleRender(type, key, module) { - var render = false; - var data = false; - - if ('template' === type && 'function' === typeof module) { - // It's a render function for a template - render = module; - data = this._modules[this._templates[key]]; - } else if ('sections-template' === type && 'function' === typeof module) { - // It's a kss section template - render = module; - } else if ('section' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { - // It's section data - render = this._modules[this._sectionTemplatePath]; - data = module; - } else if (('template' === type || 'description' === type || 'prototype' === type) && 'string' === typeof module) { - // it's straight HTML - render = function render() { - return module; - }; - } else if ('data' === type && 'object' === (typeof module === 'undefined' ? 'undefined' : _typeof(module))) { - // It's a data file (.json) - render = this._modules[this._templates[key]]; - data = module; - } - - // Only need render, as data will be left empty for static HTML - if (render) { - return { render: render, data: data }; - } - - return false; - } - - /** - * Replace all sections. For hot reloading use when the section template has changed. - * - * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace - * @param {string} key - Module require path - * @param {mixed} module - Module contents - * @param {bool} cached - Whether or not to use cached values for module replacement - * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs - */ - - }, { - key: 'loadModule', - value: function loadModule(key, module, replaceElements) { - var cached = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var filter = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - var shouldLoad = true; - var moduleMeta = false; - - // Check if we should load from internal module metadata cache - if (cached) { - moduleMeta = this.meta[key]; - } else { - this.meta[key] = this.getMetaFromPath(key, module); - moduleMeta = this.meta[key]; - } - - if (moduleMeta) { - if (filter) { - shouldLoad = InsertNodes.filterModules(filter, moduleMeta); - } - - if (shouldLoad) { - this.replaceTemplate(moduleMeta, replaceElements); - } - } - } - - /* - * Helper function for inserting styleguide sections. - * - * Recurses over sorted styleguide sections and inserts a
            to be used as a menu for each section - */ - - }, { - key: 'outputMenu', - value: function outputMenu(parent, el) { - var _this4 = this; - - var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; - - var templateId = null; - var newEl = el; - - Object.keys(sections).forEach(function (section) { - var hasSubmenu = Object.keys(sections[section]).length; - var menuTarget = void 0; - var nextMenu = void 0; - - if (parent) { - templateId = parent + '-' + section; - } else { - templateId = section; - } - - if (newEl) { - var title = _this4._sections.sectionsByURI[templateId] ? _this4._sections.sectionsByURI[templateId].header : templateId; - var sectionMenu = document.createElement('ul'); - var menuItem = document.createElement('li'); - var link = '' + title + ''; - - sectionMenu.classList.add('section-menu'); - menuItem.classList.add('section-menu__item'); - menuItem.innerHTML = link; - - // Check if this is a UL and, if not, create one - if ('UL' !== newEl.tagName) { - menuTarget = sectionMenu.cloneNode(); - newEl.appendChild(menuTarget); - newEl = menuTarget; - } - - // Has subsections - if (hasSubmenu) { - nextMenu = sectionMenu.cloneNode(); - nextMenu.classList.add('section-menu--submenu'); - menuItem.classList.add('section-menu__item--has-submenu'); - menuItem.appendChild(nextMenu); - } - - newEl.appendChild(menuItem); - - if (hasSubmenu) { - _this4.outputMenu(templateId, nextMenu, sections[section]); - } - } - }); - } - - /** - * Helper function for inserting styleguide sections. - * - * Recurses over sorted styleguide sections and inserts a
            tag with [huron-id] equal to the section template name. - */ - - }, { - key: 'outputSections', - value: function outputSections(parent, el) { - var _this5 = this; - - var sections = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this._sections.sorted; - - var templateId = null; - var placeholder = null; - - Object.keys(sections).forEach(function (section) { - var istopLevel = false; - var topLevelWrapper = null; - var topLevelSection = null; - var insertionEl = el; - - // Generate section ID and check if it is top-level - if (parent) { - templateId = parent + '-' + section; - } else { - templateId = section; - istopLevel = true; - } - - if (el) { - // Generate huron placeholder for this section - placeholder = document.createElement('div'); - placeholder.dataset.huronId = templateId; - placeholder.dataset.huronType = 'section'; - - if (istopLevel) { - // Generate wrapper to contain top-level section and all subsections underneath it - topLevelWrapper = document.createElement('div'); - topLevelWrapper.classList.add('section--top-level__wrapper'); - - // Generate wrapper for top-level section - topLevelSection = document.createElement('div'); - topLevelSection.classList.add('section', 'section--top-level'); - - // Append wrappers to huron-sections element - topLevelSection.appendChild(placeholder); - topLevelWrapper.appendChild(topLevelSection); - el.appendChild(topLevelWrapper); - insertionEl = topLevelWrapper; - } else { - // If this is not top-level, append placeholder - el.appendChild(placeholder); - } - } - - // Recursively call this function to insert other sections - if (Object.keys(sections[section]).length && placeholder) { - _this5.outputSections(templateId, insertionEl, sections[section]); - } - }); - } - - /** - * Apply a modifier and merge classnames into template data, if it exists - * - * @param {object} data - data with which to render template - * @param {string} modifier - target modifier - * - * @return {string} rendered - the modified HTML module - */ - - }, { - key: 'provideClassnames', - value: function provideClassnames(data) { - console.log(this._classNames); - if (this._classNames) { - return Object.assign({}, data, { classNames: this._classNames }); - } - - return data; - } - - /** - * Regenerate module meta cache - */ - - }, { - key: 'regenCache', - value: function regenCache() { - var _this6 = this; - - Object.keys(this._modules).forEach(function (moduleKey) { - _this6.meta[moduleKey] = _this6.getMetaFromPath(moduleKey, _this6._modules[moduleKey]); - }); - } - - /** - * Recursively remove old tags - * - * @param {string} replaceKey - key of module for which we need to remove old tags - * @param {object} tag - tag to start our search with - * (usually the tag immediately preceding the current placeholder) - */ - - }, { - key: 'removeOldTags', - value: function removeOldTags(replaceKey, tag) { - if (tag) { - var parentModule = InsertNodes.getDataAttribute(tag, 'parent-module'); - var selfModule = InsertNodes.getDataAttribute(tag, 'self-module'); - - if (parentModule === replaceKey && selfModule !== replaceKey) { - // This is a child of the current module, - // so remove it and its children (if applicable) - var childrenModule = selfModule; - var nextTag = tag.previousSibling; - - if (childrenModule) { - this.removeOldTags(childrenModule, nextTag); - // Reset nextTag if we removed a child - nextTag = tag.previousSibling; - } - - tag.parentNode.removeChild(tag); - this.removeOldTags(replaceKey, nextTag); - } - } - } - - /** - * Replace a single template marker with template content. - * - * @param {object} replaceElements - Array of elements to check for Huron placeholders - * @param {object} meta - Module metadata - */ - - }, { - key: 'replaceTemplate', - value: function replaceTemplate(meta, replaceElements) { - var _this7 = this; - - var type = this.validateType(meta.type); - var tags = []; - var replace = replaceElements; - var hasStyleguideHelpers = false; - - if (!replace) { - replace = document.querySelectorAll('[data-huron-id][data-huron-type]'); - } - - if (type) { - replace.forEach(function (tag) { - var tagType = InsertNodes.getDataAttribute(tag, 'huron-type'); - var tagId = InsertNodes.getDataAttribute(tag, 'huron-id'); - - if (tagId === meta.id && tagType === type) { - tags.push(tag); - } - }); - - if (tags && tags.length && meta.render) { - tags.forEach(function (currentTag) { - var modifiedPlaceholder = currentTag; - var modifier = InsertNodes.getDataAttribute(modifiedPlaceholder, 'huron-modifier'); - var parent = modifiedPlaceholder.parentNode; - var data = (0, _fp.compose)(_this7.provideClassnames.bind(_this7), InsertNodes.applyModifier)(meta.data, modifier); - var rendered = meta.render(data); - var renderedTemplate = InsertNodes.convertToElement(rendered).querySelector('template'); - var renderedContents = null; - - // Remove existing module tags - _this7.removeOldTags(meta.replaceKey, modifiedPlaceholder.previousSibling); - - // Get the contents of the rendered template - renderedContents = [].concat(_toConsumableArray(renderedTemplate.content.children)); - - // Insert each tag of the template contents before placeholder - renderedContents.forEach(function (element) { - var newEl = element; - - if (1 === newEl.nodeType) { - newEl.dataset.parentModule = meta.replaceKey; - hasStyleguideHelpers = !hasStyleguideHelpers ? InsertNodes.isSectionHelper(newEl, meta) : hasStyleguideHelpers; - - parent.insertBefore(newEl, modifiedPlaceholder); - } - }); - - // Add module replacement key to this placeholder - modifiedPlaceholder.dataset.selfModule = meta.replaceKey; - - // Hide the placeholder - modifiedPlaceholder.style.display = 'none'; - - // Recursively load modules, excluding the current one - _this7.cycleModules(renderedContents, { - property: 'key', - values: [meta.key, _this7._sectionTemplatePath], - include: false - }); - - if (hasStyleguideHelpers) { - _this7.cycleStyleguide(); - } - }); - } - } else { - console.warn('Could not render module\n section: ' + meta.id + '\n type: ' + meta.type); - } - } - - /** - * Verify specified element is using an acceptable huron type - * - * @param {string} type - type of partial (template, data, description, section or prototype ) - * @return {string} type - huron type or 'template' if invalid - */ - - }, { - key: 'validateType', - value: function validateType(type) { - if ('data' === type) { - return 'template'; - } - - if (!this._types.includes(type)) { - return false; - } - - return type; - } - - /* - * Set new modules object - */ - - }, { - key: 'modules', - set: function set(modules) { - this._modules = modules; - this._moduleIds = Object.keys(modules); - } - - /* - * Set store - */ - - }, { - key: 'store', - set: function set(store) { - this._store = store; - this._config = store.config; - this._sections = store.sections; - this._templates = store.templates; - this._prototypes = store.prototypes; - this._types = store.types; - this._sectionTemplatePath = store.sectionTemplatePath; - - // Completely rerender prototype if any CSS modules classnames change - if (!(0, _fp.isEqual)(this._classNames, store.classNames)) { - var isInitialRender = !this._classNames; - this._classNames = store.classNames; - - // Only rerender after initial render (when classnames is not falsy) - if (!isInitialRender) { - this.cycleModules(); - } - } - } - }], [{ - key: 'applyModifier', - value: function applyModifier(data, modifier) { - // If we have a modifier, use it, otherwise use the entire data set - if (modifier && data && data[modifier]) { - return Object.assign({}, data[modifier], { modifier: modifier }); - } - - return data; - } - - /** - * Get markup from any type of module (html, json or template) - * - * @param {string} content - String corresponding to markup - * @return {object} el.firstElementChild - HTML module - */ - - }, { - key: 'convertToElement', - value: function convertToElement(content) { - var el = document.createElement('div'); - - el.innerHTML = content; - return el.firstElementChild; - } - - /** - * Filter module object by module key or module type - * - * @param {object} filter - Filter for modules. Options: - * @param {string} filter.property - Which property to filter ('key' or 'type') - * @param {array} filter.values - Values for property - * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude) - * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs - * @return {bool} match - determine if modules need to be filtered - */ - - }, { - key: 'filterModules', - value: function filterModules(filter, moduleMeta) { - var match = true; - - // Check if we should filter out any modules - if ('object' === (typeof filter === 'undefined' ? 'undefined' : _typeof(filter)) && {}.hasOwnProperty.call(filter, 'property') && {}.hasOwnProperty.call(filter, 'values') && {}.hasOwnProperty.call(filter, 'include')) { - match = filter.values.filter(function (value) { - return moduleMeta[filter.property] === value; - }); - return Boolean(match.length) === filter.include; - } - - console.log('\n filter ' + filter + ' is not in a valid format.\n module filters must include \'property\', \'values\', and \'include\' properties\n '); - - return match; - } - - /** - * Retrieve a data attribute from a tag using one of two methods - * - * @param {HTMLElement} tag - DOM node on which to check for a data attribute - * @param {string} attr - attribute to check for - * @returns {string} data - contents of data attribute - */ - - }, { - key: 'getDataAttribute', - value: function getDataAttribute(tag, attr) { - var data = false; - - // Check if element has dataset and, if so, use it - if (tag.dataset) { - data = tag.dataset[attr]; - } - - // Fallback to getAttribute for ugly old Safari - if (!data && tag.getAttribute) { - data = tag.getAttribute('data-' + attr); - } - - return data; - } - - /** - * Check if this tag is a styleguide helper - * - * @param {object} tag - tag to check - * @param {object} meta - module metadata - * @return {bool} - */ - - }, { - key: 'isSectionHelper', - value: function isSectionHelper(tag, meta) { - if ('prototype' === meta.type) { - return tag.hasAttribute('huron-sections') || tag.hasAttribute('huron-menu'); - } - - return false; - } - }]); - - return InsertNodes; -}(); - -exports.default = InsertNodes; - -/***/ }), - -/***/ 0: -/*!*****************************!*\ - !*** multi ./src/web/index ***! - \*****************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! ./src/web/index */"./src/web/index.js"); - - -/***/ }) - -/******/ }); + */(function(){function i(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function o(t,n,e,r){for(var u=-1,i=null==t?0:t.length;++u"']/g,G=RegExp(V.source),J=RegExp(H.source),Y=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,X=/<%=([\s\S]+?)%>/g,tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nt=/^\w*$/,et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rt=/[\\^$.*+?()[\]{}|]/g,ut=RegExp(rt.source),it=/^\s+|\s+$/g,ot=/^\s+/,at=/\s+$/,ct=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ft=/\{\n\/\* \[wrapped with (.+)\] \*/,lt=/,? & /,st=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,pt=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dt=/\w*$/,gt=/^[-+]0x[0-9a-f]+$/i,yt=/^0b[01]+$/i,_t=/^\[object .+?Constructor\]$/,vt=/^0o[0-7]+$/i,bt=/^(?:0|[1-9]\d*)$/,mt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xt=/($^)/,jt=/['\n\r\u2028\u2029\\]/g,At="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",wt="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+At,kt=RegExp("['’]","g"),Ot=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),It=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+At,"g"),Et=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",wt].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Rt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,St="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Mt={};Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=!0,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=!1;var Bt={};Bt["[object Arguments]"]=Bt["[object Array]"]=Bt["[object ArrayBuffer]"]=Bt["[object DataView]"]=Bt["[object Boolean]"]=Bt["[object Date]"]=Bt["[object Float32Array]"]=Bt["[object Float64Array]"]=Bt["[object Int8Array]"]=Bt["[object Int16Array]"]=Bt["[object Int32Array]"]=Bt["[object Map]"]=Bt["[object Number]"]=Bt["[object Object]"]=Bt["[object RegExp]"]=Bt["[object Set]"]=Bt["[object String]"]=Bt["[object Symbol]"]=Bt["[object Uint8Array]"]=Bt["[object Uint8ClampedArray]"]=Bt["[object Uint16Array]"]=Bt["[object Uint32Array]"]=!0,Bt["[object Error]"]=Bt["[object Function]"]=Bt["[object WeakMap]"]=!1;var Lt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ct=parseFloat,Tt=parseInt,zt="object"==typeof t&&t&&t.Object===Object&&t,Ft="object"==typeof self&&self&&self.Object===Object&&self,Dt=zt||Ft||Function("return this")(),Pt="object"==typeof n&&n&&!n.nodeType&&n,Ut=Pt&&"object"==typeof r&&r&&!r.nodeType&&r,Nt=Ut&&Ut.exports===Pt,qt=Nt&&zt.process,$t=function(){try{var t=Ut&&Ut.f&&Ut.f("util").types;return t||qt&&qt.binding&&qt.binding("util")}catch(t){}}(),Kt=$t&&$t.isArrayBuffer,Zt=$t&&$t.isDate,Vt=$t&&$t.isMap,Ht=$t&&$t.isRegExp,Gt=$t&&$t.isSet,Jt=$t&&$t.isTypedArray,Yt=A("length"),Qt=w({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Xt=w({"&":"&","<":"<",">":">",'"':""","'":"'"}),tn=w({"&":"&","<":"<",">":">",""":'"',"'":"'"}),nn=function t(n){function e(t){if(Nr(t)&&!Ro(t)&&!(t instanceof w)){if(t instanceof u)return t;if(Ru.call(t,"__wrapped__"))return dr(t)}return new u(t)}function r(){}function u(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=P}function w(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function At(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n=n?t:n)),t}function an(t,n,e,r,u,i){var o,c=1&n,f=2&n,l=4&n;if(e&&(o=u?e(t,r,u,i):e(t)),o!==P)return o;if(!Ur(t))return t;if(r=Ro(t)){if(o=function(t){var n=t.length,e=new t.constructor(n);return n&&"string"==typeof t[0]&&Ru.call(t,"index")&&(e.index=t.index,e.input=t.input),e}(t),!c)return ge(t,o)}else{var s=Di(t),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(Mo(t))return fe(t,c);if("[object Object]"==s||"[object Arguments]"==s||p&&!u){if(o=f||p?{}:Xe(t),!c)return f?function(t,n){return ye(t,Fi(t),n)}(t,function(t,n){return t&&ye(n,ru(n),t)}(o,t)):function(t,n){return ye(t,zi(t),n)}(t,en(o,t))}else{if(!Bt[s])return u?t:{};o=function(t,n,e){var r=t.constructor;switch(n){case"[object ArrayBuffer]":return le(t);case"[object Boolean]":case"[object Date]":return new r(+t);case"[object DataView]":return n=e?le(t.buffer):t.buffer,new t.constructor(n,t.byteOffset,t.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return se(t,e);case"[object Map]":return new r;case"[object Number]":case"[object String]":return new r(t);case"[object RegExp]":return(n=new t.constructor(t.source,dt.exec(t))).lastIndex=t.lastIndex,n;case"[object Set]":return new r;case"[object Symbol]":return ki?ju(ki.call(t)):{}}}(t,s,c)}}if(i||(i=new zt),u=i.get(t))return u;if(i.set(t,o),To(t))return t.forEach(function(r){o.add(an(r,n,e,r,t,i))}),o;if(Lo(t))return t.forEach(function(r,u){o.set(u,an(r,n,e,u,t,i))}),o;f=l?f?Ke:$e:f?ru:eu;var h=r?P:f(t);return a(h||t,function(r,u){h&&(r=t[u=r]),qt(o,u,an(r,n,e,u,t,i))}),o}function cn(t,n,e){var r=e.length;if(null==t)return!r;for(t=ju(t);r--;){var u=e[r],i=n[u],o=t[u];if(o===P&&!(u in t)||!i(o))return!1}return!0}function fn(t,n,e){if("function"!=typeof t)throw new ku("Expected a function");return Ni(function(){t.apply(P,e)},n)}function ln(t,n,e,r){var u=-1,i=l,o=!0,a=t.length,c=[],f=n.length;if(!a)return c;e&&(n=p(n,E(e))),r?(i=s,o=!1):200<=n.length&&(i=R,o=!1,n=new Lt(n));t:for(;++un}function jn(t,n){return null!=t&&Ru.call(t,n)}function An(t,n){return null!=t&&n in ju(t)}function wn(t,n,e){for(var r=e?s:l,u=t[0].length,i=t.length,o=i,a=_u(i),c=1/0,f=[];o--;){var h=t[o];o&&n&&(h=p(h,E(n))),c=oi(h.length,c),a[o]=!e&&(n||120<=u&&120<=h.length)?new Lt(o&&h):P}h=t[0];var d=-1,g=a[0];t:for(;++d(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))?t:t[sr(br(n))])?P:i(n,t,e)}function On(t){return Nr(t)&&"[object Arguments]"==mn(t)}function In(t,n,e,r,u){if(t===n)n=!0;else if(null==t||null==n||!Nr(t)&&!Nr(n))n=t!=t&&n!=n;else t:{var i=Ro(t),o=Ro(n),a=i?"[object Array]":Di(t),c=o?"[object Array]":Di(n),f="[object Object]"==(a="[object Arguments]"==a?"[object Object]":a);o="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c);if((c=a==c)&&Mo(t)){if(!Mo(n)){n=!1;break t}i=!0,f=!1}if(c&&!f)u||(u=new zt),n=i||zo(t)?Ne(t,n,e,r,In,u):function(t,n,e,r,u,i,o){switch(e){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!i(new Du(t),new Du(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return Lr(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var a=L;case"[object Set]":if(a||(a=z),t.size!=n.size&&!(1&r))break;return(e=o.get(t))?e==n:(r|=2,o.set(t,n),n=Ne(a(t),a(n),r,u,i,o),o.delete(t),n);case"[object Symbol]":if(ki)return ki.call(t)==ki.call(n)}return!1}(t,n,a,e,r,In,u);else{if(!(1&e)&&(i=f&&Ru.call(t,"__wrapped__"),a=o&&Ru.call(n,"__wrapped__"),i||a)){t=i?t.value():t,n=a?n.value():n,u||(u=new zt),n=In(t,n,e,r,u);break t}if(c)n:if(u||(u=new zt),i=1&e,a=$e(t),o=a.length,c=$e(n).length,o==c||i){for(f=o;f--;){var l=a[f];if(!(i?l in n:Ru.call(n,l))){n=!1;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{c=!0,u.set(t,n),u.set(n,t);for(var s=i;++fn?e:0,e)?t[n]:P}function Fn(t,n,e){var r=-1;return n=p(n.length?n:[lu],E(He())),function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].c;return t}(t=Bn(t,function(t){return{a:p(n,function(n){return n(t)}),b:++r,c:t}}),function(t,n){var r;t:{r=-1;for(var u=t.a,i=n.a,o=u.length,a=e.length;++r=a?c:c*("desc"==e[r]?-1:1);break t}}r=t.b-n.b}return r})}function Dn(t,n,e){for(var r=-1,u=n.length,i={};++rn||9007199254740991n&&(n=-n>u?0:u+n),0>(e=e>u?u:e)&&(e+=u),u=n>e?0:e-n>>>0,n>>>=0,e=_u(u);++r=u){for(;r>>1,o=t[i];null!==o&&!Zr(o)&&(e?o<=n:o(n=ae(n,t)).length?t:vn(t,Zn(n,0,-1)))||delete t[sr(br(n))]}function ne(t,n,e,r){for(var u=t.length,i=r?u:-1;(r?i--:++ir)return r?Xn(t[0]):[];for(var u=-1,i=_u(r);++u=r?t:Zn(t,n,e)}function fe(t,n){if(n)return t.slice();var e=t.length;e=Pu?Pu(e):new t.constructor(e);return t.copy(e),e}function le(t){var n=new t.constructor(t.byteLength);return new Du(n).set(new Du(t)),n}function se(t,n){return new t.constructor(n?le(t.buffer):t.buffer,t.byteOffset,t.length)}function pe(t,n){if(t!==n){var e=t!==P,r=null===t,u=t==t,i=Zr(t),o=n!==P,a=null===n,c=n==n,f=Zr(n);if(!a&&!f&&!i&&t>n||i&&o&&c&&!a&&!f||r&&o&&c||!e&&c||!u)return 1;if(!r&&!i&&!f&&tu?P:i,u=1),n=ju(n);++ro&&a[0]!==f&&a[o-1]!==f?[]:T(a,f)).length)e?e?qn(n,t):n:(e=qn(n,Qu(t/F(n))),Wt.test(n)?ce(D(e),0,t).join(""):e.slice(0,t))}function Me(t,n,e,r){var u=1&n,o=Ae(t);return function n(){for(var a=-1,c=arguments.length,f=-1,l=r.length,s=_u(l+c),p=this&&this!==Dt&&this instanceof n?o:t;++fn||r)&&(1&t&&(i[2]=p[2],n|=1&e?0:4),(e=p[3])&&(r=i[3],i[3]=r?he(r,e,p[4]):e,i[4]=r?T(i[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=i[5],i[5]=r?de(r,e,p[6]):e,i[6]=r?T(i[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(i[7]=e),128&t&&(i[8]=null==i[8]?p[8]:oi(i[8],p[8])),null==i[9]&&(i[9]=p[9]),i[0]=p[0],i[1]=n),t=i[0],n=i[1],e=i[2],r=i[3],u=i[4],!(a=i[9]=i[9]===P?c?0:t.length:ii(i[9]-f,0))&&24&n&&(n&=-25),cr((p?Mi:Ui)(n&&1!=n?8==n||16==n?we(t,n,a):32!=n&&33!=n||u.length?Ie.apply(P,i):Me(t,n,e,r):function(t,n,e){var r=1&n,u=Ae(t);return function n(){return(this&&this!==Dt&&this instanceof n?u:t).apply(r?e:this,arguments)}}(t,n,e),i),t,n)}function De(t,n,e,r){return t===P||Lr(t,Iu[e])&&!Ru.call(r,e)?n:t}function Pe(t,n,e,r,u,i){return Ur(t)&&Ur(n)&&(i.set(n,t),Tn(t,n,P,Pe,i),i.delete(n)),t}function Ue(t){return $r(t)?P:t}function Ne(t,n,e,r,u,i){var o=1&e,a=t.length;if(a!=(c=n.length)&&!(o&&c>a))return!1;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,f=!0,l=2&e?new Lt:P;for(i.set(t,n),i.set(n,t);++c(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),v(t,He(n,3),e)):-1}function yr(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r-1;return e!==P&&(u=Gr(e),u=0>e?ii(r+u,0):oi(u,r-1)),v(t,He(n,3),u,!0)}function _r(t){return null!=t&&t.length?dn(t,1):[]}function vr(t){return t&&t.length?t[0]:P}function br(t){var n=null==t?0:t.length;return n?t[n-1]:P}function mr(t,n){return t&&t.length&&n&&n.length?Pn(t,n):t}function xr(t){return null==t?t:li.call(t)}function jr(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(Tr(t))return n=ii(t.length,n),!0}),I(n,function(n){return p(t,A(n))})}function Ar(t,n){if(!t||!t.length)return[];var e=jr(t);return null==n?e:p(e,function(t){return i(n,P,t)})}function wr(t){return(t=e(t)).__chain__=!0,t}function kr(t,n){return n(t)}function Or(t,n){return(Ro(t)?a:Ei)(t,He(n,3))}function Ir(t,n){return(Ro(t)?function(t,n){for(var e=null==t?0:t.length;e--&&!1!==n(t[e],e,t););return t}:Wi)(t,He(n,3))}function Er(t,n){return(Ro(t)?p:Bn)(t,He(n,3))}function Wr(t,n,e){return n=e?P:n,n=t&&null==n?t.length:n,Fe(t,128,P,P,P,P,n)}function Rr(t,n){var e;if("function"!=typeof n)throw new ku("Expected a function");return t=Gr(t),function(){return 0<--t&&(e=n.apply(this,arguments)),1>=t&&(n=P),e}}function Sr(t,n,e){function r(n){var e=c,r=f;return c=f=P,d=n,s=t.apply(r,e)}function u(t){var e=t-h;return t-=d,h===P||e>=n||0>e||y&&t>=l}function i(){var t=vo();if(u(t))return o(t);var e,r=Ni;e=t-d,t=n-(t-h),e=y?oi(t,l-e):t,p=r(i,e)}function o(t){return p=P,_&&c?r(t):(c=f=P,s)}function a(){var t=vo(),e=u(t);if(c=arguments,f=this,h=t,e){if(p===P)return d=t=h,p=Ni(i,n),g?r(t):s;if(y)return p=Ni(i,n),r(h)}return p===P&&(p=Ni(i,n)),s}var c,f,l,s,p,h,d=0,g=!1,y=!1,_=!0;if("function"!=typeof t)throw new ku("Expected a function");return n=Yr(n)||0,Ur(e)&&(g=!!e.leading,l=(y="maxWait"in e)?ii(Yr(e.maxWait)||0,n):l,_="trailing"in e?!!e.trailing:_),a.cancel=function(){p!==P&&Li(p),d=0,c=h=f=p=P},a.flush=function(){return p===P?s:o(vo())},a}function Mr(t,n){function e(){var r=arguments,u=n?n.apply(this,r):r[0],i=e.cache;return i.has(u)?i.get(u):(r=t.apply(this,r),e.cache=i.set(u,r)||i,r)}if("function"!=typeof t||null!=n&&"function"!=typeof n)throw new ku("Expected a function");return e.cache=new(Mr.Cache||It),e}function Br(t){if("function"!=typeof t)throw new ku("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function Lr(t,n){return t===n||t!=t&&n!=n}function Cr(t){return null!=t&&Pr(t.length)&&!Fr(t)}function Tr(t){return Nr(t)&&Cr(t)}function zr(t){if(!Nr(t))return!1;var n=mn(t);return"[object Error]"==n||"[object DOMException]"==n||"string"==typeof t.message&&"string"==typeof t.name&&!$r(t)}function Fr(t){return!!Ur(t)&&("[object Function]"==(t=mn(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function Dr(t){return"number"==typeof t&&t==Gr(t)}function Pr(t){return"number"==typeof t&&-1=t}function Ur(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}function Nr(t){return null!=t&&"object"==typeof t}function qr(t){return"number"==typeof t||Nr(t)&&"[object Number]"==mn(t)}function $r(t){return!(!Nr(t)||"[object Object]"!=mn(t))&&(null===(t=Uu(t))||"function"==typeof(t=Ru.call(t,"constructor")&&t.constructor)&&t instanceof t&&Wu.call(t)==Lu)}function Kr(t){return"string"==typeof t||!Ro(t)&&Nr(t)&&"[object String]"==mn(t)}function Zr(t){return"symbol"==typeof t||Nr(t)&&"[object Symbol]"==mn(t)}function Vr(t){if(!t)return[];if(Cr(t))return Kr(t)?D(t):ge(t);if(Zu&&t[Zu]){t=t[Zu]();for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}return("[object Map]"==(n=Di(t))?L:"[object Set]"==n?z:iu)(t)}function Hr(t){return t?(t=Yr(t))===U||t===-U?1.7976931348623157e308*(0>t?-1:1):t==t?t:0:0===t?t:0}function Gr(t){var n=(t=Hr(t))%1;return t==t?n?t-n:t:0}function Jr(t){return t?on(Gr(t),0,4294967295):0}function Yr(t){if("number"==typeof t)return t;if(Zr(t))return N;if(Ur(t)&&(t=Ur(t="function"==typeof t.valueOf?t.valueOf():t)?t+"":t),"string"!=typeof t)return 0===t?t:+t;t=t.replace(it,"");var n=yt.test(t);return n||vt.test(t)?Tt(t.slice(2),n?2:8):gt.test(t)?N:+t}function Qr(t){return ye(t,ru(t))}function Xr(t){return null==t?"":Qn(t)}function tu(t,n,e){return(t=null==t?P:vn(t,n))===P?e:t}function nu(t,n){return null!=t&&Qe(t,n,An)}function eu(t){return Cr(t)?Ft(t):Sn(t)}function ru(t){if(Cr(t))t=Ft(t,!0);else if(Ur(t)){var n,e=ir(t),r=[];for(n in t)("constructor"!=n||!e&&Ru.call(t,n))&&r.push(n);t=r}else{if(n=[],null!=t)for(e in ju(t))n.push(e);t=n}return t}function uu(t,n){if(null==t)return{};var e=p(Ke(t),function(t){return[t]});return n=He(n),Dn(t,e,function(t,e){return n(t,e[0])})}function iu(t){return null==t?[]:W(t,eu(t))}function ou(t){return fa(Xr(t).toLowerCase())}function au(t){return(t=Xr(t))&&t.replace(mt,Qt).replace(Ot,"")}function cu(t,n,e){return t=Xr(t),(n=e?P:n)===P?Rt.test(t)?t.match(Et)||[]:t.match(st)||[]:t.match(n)||[]}function fu(t){return function(){return t}}function lu(t){return t}function su(t){return Rn("function"==typeof t?t:an(t,1))}function pu(t,n,e){var r=eu(n),u=_n(n,r);null!=e||Ur(n)&&(u.length||!r.length)||(e=n,n=t,t=this,u=_n(n,eu(n)));var i=!(Ur(e)&&"chain"in e&&!e.chain),o=Fr(t);return a(u,function(e){var r=n[e];t[e]=r,o&&(t.prototype[e]=function(){var n=this.__chain__;if(i||n){var e=t(this.__wrapped__);return(e.__actions__=ge(this.__actions__)).push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,h([this.value()],arguments))})}),t}function hu(){}function du(t){return rr(t)?A(sr(t)):function(t){return function(n){return vn(n,t)}}(t)}function gu(){return[]}function yu(){return!1}var _u=(n=null==n?Dt:nn.defaults(Dt.Object(),n,nn.pick(Dt,St))).Array,vu=n.Date,bu=n.Error,mu=n.Function,xu=n.Math,ju=n.Object,Au=n.RegExp,wu=n.String,ku=n.TypeError,Ou=_u.prototype,Iu=ju.prototype,Eu=n["__core-js_shared__"],Wu=mu.prototype.toString,Ru=Iu.hasOwnProperty,Su=0,Mu=function(){var t=/[^.]+$/.exec(Eu&&Eu.keys&&Eu.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),Bu=Iu.toString,Lu=Wu.call(ju),Cu=Dt._,Tu=Au("^"+Wu.call(Ru).replace(rt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),zu=Nt?n.Buffer:P,Fu=n.Symbol,Du=n.Uint8Array,Pu=zu?zu.g:P,Uu=C(ju.getPrototypeOf,ju),Nu=ju.create,qu=Iu.propertyIsEnumerable,$u=Ou.splice,Ku=Fu?Fu.isConcatSpreadable:P,Zu=Fu?Fu.iterator:P,Vu=Fu?Fu.toStringTag:P,Hu=function(){try{var t=Ye(ju,"defineProperty");return t({},"",{}),t}catch(t){}}(),Gu=n.clearTimeout!==Dt.clearTimeout&&n.clearTimeout,Ju=vu&&vu.now!==Dt.Date.now&&vu.now,Yu=n.setTimeout!==Dt.setTimeout&&n.setTimeout,Qu=xu.ceil,Xu=xu.floor,ti=ju.getOwnPropertySymbols,ni=zu?zu.isBuffer:P,ei=n.isFinite,ri=Ou.join,ui=C(ju.keys,ju),ii=xu.max,oi=xu.min,ai=vu.now,ci=n.parseInt,fi=xu.random,li=Ou.reverse,si=Ye(n,"DataView"),pi=Ye(n,"Map"),hi=Ye(n,"Promise"),di=Ye(n,"Set"),gi=Ye(n,"WeakMap"),yi=Ye(ju,"create"),_i=gi&&new gi,vi={},bi=pr(si),mi=pr(pi),xi=pr(hi),ji=pr(di),Ai=pr(gi),wi=Fu?Fu.prototype:P,ki=wi?wi.valueOf:P,Oi=wi?wi.toString:P,Ii=function(){function t(){}return function(n){return Ur(n)?Nu?Nu(n):(t.prototype=n,n=new t,t.prototype=P,n):{}}}();e.templateSettings={escape:Y,evaluate:Q,interpolate:X,variable:"",imports:{_:e}},e.prototype=r.prototype,e.prototype.constructor=e,u.prototype=Ii(r.prototype),u.prototype.constructor=u,w.prototype=Ii(r.prototype),w.prototype.constructor=w,At.prototype.clear=function(){this.__data__=yi?yi(null):{},this.size=0},At.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},At.prototype.get=function(t){var n=this.__data__;return yi?"__lodash_hash_undefined__"===(t=n[t])?P:t:Ru.call(n,t)?n[t]:P},At.prototype.has=function(t){var n=this.__data__;return yi?n[t]!==P:Ru.call(n,t)},At.prototype.set=function(t,n){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=yi&&n===P?"__lodash_hash_undefined__":n,this},wt.prototype.clear=function(){this.__data__=[],this.size=0},wt.prototype.delete=function(t){var n=this.__data__;return!(0>(t=$t(n,t))||(t==n.length-1?n.pop():$u.call(n,t,1),--this.size,0))},wt.prototype.get=function(t){var n=this.__data__;return 0>(t=$t(n,t))?P:n[t][1]},wt.prototype.has=function(t){return-1<$t(this.__data__,t)},wt.prototype.set=function(t,n){var e=this.__data__,r=$t(e,t);return 0>r?(++this.size,e.push([t,n])):e[r][1]=n,this},It.prototype.clear=function(){this.size=0,this.__data__={hash:new At,map:new(pi||wt),string:new At}},It.prototype.delete=function(t){return t=Ge(this,t).delete(t),this.size-=t?1:0,t},It.prototype.get=function(t){return Ge(this,t).get(t)},It.prototype.has=function(t){return Ge(this,t).has(t)},It.prototype.set=function(t,n){var e=Ge(this,t),r=e.size;return e.set(t,n),this.size+=e.size==r?0:1,this},Lt.prototype.add=Lt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Lt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.clear=function(){this.__data__=new wt,this.size=0},zt.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},zt.prototype.get=function(t){return this.__data__.get(t)},zt.prototype.has=function(t){return this.__data__.has(t)},zt.prototype.set=function(t,n){var e=this.__data__;if(e instanceof wt){var r=e.__data__;if(!pi||199>r.length)return r.push([t,n]),this.size=++e.size,this;e=this.__data__=new It(r)}return e.set(t,n),this.size=e.size,this};var Ei=be(gn),Wi=be(yn,!0),Ri=me(),Si=me(!0),Mi=_i?function(t,n){return _i.set(t,n),t}:lu,Bi=Hu?function(t,n){return Hu(t,"toString",{configurable:!0,enumerable:!1,value:fu(n),writable:!0})}:lu,Li=Gu||function(t){return Dt.clearTimeout(t)},Ci=di&&1/z(new di([,-0]))[1]==U?function(t){return new di(t)}:hu,Ti=_i?function(t){return _i.get(t)}:hu,zi=ti?function(t){return null==t?[]:(t=ju(t),f(ti(t),function(n){return qu.call(t,n)}))}:gu,Fi=ti?function(t){for(var n=[];t;)h(n,zi(t)),t=Uu(t);return n}:gu,Di=mn;(si&&"[object DataView]"!=Di(new si(new ArrayBuffer(1)))||pi&&"[object Map]"!=Di(new pi)||hi&&"[object Promise]"!=Di(hi.resolve())||di&&"[object Set]"!=Di(new di)||gi&&"[object WeakMap]"!=Di(new gi))&&(Di=function(t){var n=mn(t);if(t=(t="[object Object]"==n?t.constructor:P)?pr(t):"")switch(t){case bi:return"[object DataView]";case mi:return"[object Map]";case xi:return"[object Promise]";case ji:return"[object Set]";case Ai:return"[object WeakMap]"}return n});var Pi=Eu?Fr:yu,Ui=fr(Mi),Ni=Yu||function(t,n){return Dt.setTimeout(t,n)},qi=fr(Bi),$i=function(t){var n=(t=Mr(t,function(t){return 500===n.size&&n.clear(),t})).cache;return t}(function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(et,function(t,e,r,u){n.push(r?u.replace(pt,"$1"):e||t)}),n}),Ki=$n(function(t,n){return Tr(t)?ln(t,dn(n,1,Tr,!0)):[]}),Zi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),He(e,2)):[]}),Vi=$n(function(t,n){var e=br(n);return Tr(e)&&(e=P),Tr(t)?ln(t,dn(n,1,Tr,!0),P,e):[]}),Hi=$n(function(t){var n=p(t,ie);return n.length&&n[0]===t[0]?wn(n):[]}),Gi=$n(function(t){var n=br(t),e=p(t,ie);return n===br(e)?n=P:e.pop(),e.length&&e[0]===t[0]?wn(e,He(n,2)):[]}),Ji=$n(function(t){var n=br(t),e=p(t,ie);return(n="function"==typeof n?n:P)&&e.pop(),e.length&&e[0]===t[0]?wn(e,P,n):[]}),Yi=$n(mr),Qi=qe(function(t,n){var e=null==t?0:t.length,r=un(t,n);return Un(t,p(n,function(t){return nr(t,e)?+t:t}).sort(pe)),r}),Xi=$n(function(t){return Xn(dn(t,1,Tr,!0))}),to=$n(function(t){var n=br(t);return Tr(n)&&(n=P),Xn(dn(t,1,Tr,!0),He(n,2))}),no=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return Xn(dn(t,1,Tr,!0),P,n)}),eo=$n(function(t,n){return Tr(t)?ln(t,n):[]}),ro=$n(function(t){return re(f(t,Tr))}),uo=$n(function(t){var n=br(t);return Tr(n)&&(n=P),re(f(t,Tr),He(n,2))}),io=$n(function(t){var n="function"==typeof(n=br(t))?n:P;return re(f(t,Tr),P,n)}),oo=$n(jr),ao=$n(function(t){var n;return Ar(t,n="function"==typeof(n=1<(n=t.length)?t[n-1]:P)?(t.pop(),n):P)}),co=qe(function(t){function n(n){return un(n,t)}var e=t.length,r=e?t[0]:0,i=this.__wrapped__;return!(1=n}),Wo=On(function(){return arguments}())?On:function(t){return Nr(t)&&Ru.call(t,"callee")&&!qu.call(t,"callee")},Ro=_u.isArray,So=Kt?E(Kt):function(t){return Nr(t)&&"[object ArrayBuffer]"==mn(t)},Mo=ni||yu,Bo=Zt?E(Zt):function(t){return Nr(t)&&"[object Date]"==mn(t)},Lo=Vt?E(Vt):function(t){return Nr(t)&&"[object Map]"==Di(t)},Co=Ht?E(Ht):function(t){return Nr(t)&&"[object RegExp]"==mn(t)},To=Gt?E(Gt):function(t){return Nr(t)&&"[object Set]"==Di(t)},zo=Jt?E(Jt):function(t){return Nr(t)&&Pr(t.length)&&!!Mt[mn(t)]},Fo=Le(Mn),Do=Le(function(t,n){return t<=n}),Po=ve(function(t,n){if(ir(n)||Cr(n))ye(n,eu(n),t);else for(var e in n)Ru.call(n,e)&&qt(t,e,n[e])}),Uo=ve(function(t,n){ye(n,ru(n),t)}),No=ve(function(t,n,e,r){ye(n,ru(n),t,r)}),qo=ve(function(t,n,e,r){ye(n,eu(n),t,r)}),$o=qe(un),Ko=$n(function(t,n){t=ju(t);var e=-1,r=n.length;for((u=2--t)return n.apply(this,arguments)}},e.ary=Wr,e.assign=Po,e.assignIn=Uo,e.assignInWith=No,e.assignWith=qo,e.at=$o,e.before=Rr,e.bind=bo,e.bindAll=sa,e.bindKey=mo,e.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ro(t)?t:[t]},e.chain=wr,e.chunk=function(t,n,e){if(n=(e?er(t,n,e):n===P)?1:ii(Gr(n),0),!(e=null==t?0:t.length)||1>n)return[];for(var r=0,u=0,i=_u(Qu(e/n));r(n=e||n===P?1:Gr(n))?0:n,r):[]},e.dropRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n):[]},e.dropRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0,!0):[]},e.dropWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!0):[]},e.fill=function(t,n,e,r){var u=null==t?0:t.length;if(!u)return[];for(e&&"number"!=typeof e&&er(t,n,e)&&(e=0,r=u),u=t.length,0>(e=Gr(e))&&(e=-e>u?0:u+e),0>(r=r===P||r>u?u:Gr(r))&&(r+=u),r=e>r?0:Jr(r);e>>0)?(t=Xr(t))&&("string"==typeof n||null!=n&&!Co(n))&&(!(n=Qn(n))&&Wt.test(t))?ce(D(t),0,e):t.split(n,e):[]},e.spread=function(t,n){if("function"!=typeof t)throw new ku("Expected a function");return n=null==n?0:ii(Gr(n),0),$n(function(e){var r=e[n];return e=ce(e,0,n),r&&h(e,r),i(t,this,e)})},e.tail=function(t){var n=null==t?0:t.length;return n?Zn(t,1,n):[]},e.take=function(t,n,e){return t&&t.length?Zn(t,0,0>(n=e||n===P?1:Gr(n))?0:n):[]},e.takeRight=function(t,n,e){var r=null==t?0:t.length;return r?Zn(t,0>(n=r-(n=e||n===P?1:Gr(n)))?0:n,r):[]},e.takeRightWhile=function(t,n){return t&&t.length?ne(t,He(n,3),!1,!0):[]},e.takeWhile=function(t,n){return t&&t.length?ne(t,He(n,3)):[]},e.tap=function(t,n){return n(t),t},e.throttle=function(t,n,e){var r=!0,u=!0;if("function"!=typeof t)throw new ku("Expected a function");return Ur(e)&&(r="leading"in e?!!e.leading:r,u="trailing"in e?!!e.trailing:u),Sr(t,n,{leading:r,maxWait:n,trailing:u})},e.thru=kr,e.toArray=Vr,e.toPairs=ta,e.toPairsIn=na,e.toPath=function(t){return Ro(t)?p(t,sr):Zr(t)?[t]:ge($i(Xr(t)))},e.toPlainObject=Qr,e.transform=function(t,n,e){var r=Ro(t),u=r||Mo(t)||zo(t);if(n=He(n,4),null==e){var i=t&&t.constructor;e=u?r?new i:[]:Ur(t)&&Fr(i)?Ii(Uu(t)):{}}return(u?a:gn)(t,function(t,r,u){return n(e,t,r,u)}),e},e.unary=function(t){return Wr(t,1)},e.union=Xi,e.unionBy=to,e.unionWith=no,e.uniq=function(t){return t&&t.length?Xn(t):[]},e.uniqBy=function(t,n){return t&&t.length?Xn(t,He(n,2)):[]},e.uniqWith=function(t,n){return n="function"==typeof n?n:P,t&&t.length?Xn(t,P,n):[]},e.unset=function(t,n){return null==t||te(t,n)},e.unzip=jr,e.unzipWith=Ar,e.update=function(t,n,e){return null==t?t:Kn(t,n,oe(e)(vn(t,n)),void 0)},e.updateWith=function(t,n,e,r){return r="function"==typeof r?r:P,null!=t&&(t=Kn(t,n,oe(e)(vn(t,n)),r)),t},e.values=iu,e.valuesIn=function(t){return null==t?[]:W(t,ru(t))},e.without=eo,e.words=cu,e.wrap=function(t,n){return wo(oe(n),t)},e.xor=ro,e.xorBy=uo,e.xorWith=io,e.zip=oo,e.zipObject=function(t,n){return ue(t||[],n||[],qt)},e.zipObjectDeep=function(t,n){return ue(t||[],n||[],Kn)},e.zipWith=ao,e.entries=ta,e.entriesIn=na,e.extend=Uo,e.extendWith=No,pu(e,e),e.add=xa,e.attempt=la,e.camelCase=ea,e.capitalize=ou,e.ceil=ja,e.clamp=function(t,n,e){return e===P&&(e=n,n=P),e!==P&&(e=(e=Yr(e))==e?e:0),n!==P&&(n=(n=Yr(n))==n?n:0),on(Yr(t),n,e)},e.clone=function(t){return an(t,4)},e.cloneDeep=function(t){return an(t,5)},e.cloneDeepWith=function(t,n){return an(t,5,n="function"==typeof n?n:P)},e.cloneWith=function(t,n){return an(t,4,n="function"==typeof n?n:P)},e.conformsTo=function(t,n){return null==n||cn(t,n,eu(n))},e.deburr=au,e.defaultTo=function(t,n){return null==t||t!=t?n:t},e.divide=Aa,e.endsWith=function(t,n,e){t=Xr(t),n=Qn(n);var r=t.length;r=e=e===P?r:on(Gr(e),0,r);return 0<=(e-=n.length)&&t.slice(e,r)==n},e.eq=Lr,e.escape=function(t){return(t=Xr(t))&&J.test(t)?t.replace(H,Xt):t},e.escapeRegExp=function(t){return(t=Xr(t))&&ut.test(t)?t.replace(rt,"\\$&"):t},e.every=function(t,n,e){var r=Ro(t)?c:sn;return e&&er(t,n,e)&&(n=P),r(t,He(n,3))},e.find=lo,e.findIndex=gr,e.findKey=function(t,n){return _(t,He(n,3),gn)},e.findLast=so,e.findLastIndex=yr,e.findLastKey=function(t,n){return _(t,He(n,3),yn)},e.floor=wa,e.forEach=Or,e.forEachRight=Ir,e.forIn=function(t,n){return null==t?t:Ri(t,He(n,3),ru)},e.forInRight=function(t,n){return null==t?t:Si(t,He(n,3),ru)},e.forOwn=function(t,n){return t&&gn(t,He(n,3))},e.forOwnRight=function(t,n){return t&&yn(t,He(n,3))},e.get=tu,e.gt=Io,e.gte=Eo,e.has=function(t,n){return null!=t&&Qe(t,n,jn)},e.hasIn=nu,e.head=vr,e.identity=lu,e.includes=function(t,n,e,r){return t=Cr(t)?t:iu(t),e=e&&!r?Gr(e):0,r=t.length,0>e&&(e=ii(r+e,0)),Kr(t)?e<=r&&-1(e=null==e?0:Gr(e))&&(e=ii(r+e,0)),b(t,n,e)):-1},e.inRange=function(t,n,e){return n=Hr(n),e===P?(e=n,n=0):e=Hr(e),(t=Yr(t))>=oi(n,e)&&t=t},e.isSet=To,e.isString=Kr,e.isSymbol=Zr,e.isTypedArray=zo,e.isUndefined=function(t){return t===P},e.isWeakMap=function(t){return Nr(t)&&"[object WeakMap]"==Di(t)},e.isWeakSet=function(t){return Nr(t)&&"[object WeakSet]"==mn(t)},e.join=function(t,n){return null==t?"":ri.call(t,n)},e.kebabCase=ra,e.last=br,e.lastIndexOf=function(t,n,e){var r=null==t?0:t.length;if(!r)return-1;var u=r;if(e!==P&&(u=0>(u=Gr(e))?ii(r+u,0):oi(u,r-1)),n==n){for(e=u+1;e--&&t[e]!==n;);t=e}else t=v(t,x,u,!0);return t},e.lowerCase=ua,e.lowerFirst=ia,e.lt=Fo,e.lte=Do,e.max=function(t){return t&&t.length?pn(t,lu,xn):P},e.maxBy=function(t,n){return t&&t.length?pn(t,He(n,2),xn):P},e.mean=function(t){return j(t,lu)},e.meanBy=function(t,n){return j(t,He(n,2))},e.min=function(t){return t&&t.length?pn(t,lu,Mn):P},e.minBy=function(t,n){return t&&t.length?pn(t,He(n,2),Mn):P},e.stubArray=gu,e.stubFalse=yu,e.stubObject=function(){return{}},e.stubString=function(){return""},e.stubTrue=function(){return!0},e.multiply=ka,e.nth=function(t,n){return t&&t.length?zn(t,Gr(n)):P},e.noConflict=function(){return Dt._===this&&(Dt._=Cu),this},e.noop=hu,e.now=vo,e.pad=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return!n||r>=n?t:Se(Xu(n=(n-r)/2),e)+t+Se(Qu(n),e)},e.padEnd=function(t,n,e){t=Xr(t);var r=(n=Gr(n))?F(t):0;return n&&rn){var r=t;t=n,n=r}return e||t%1||n%1?(e=fi(),oi(t+e*(n-t+Ct("1e-"+((e+"").length-1))),n)):Nn(t,n)},e.reduce=function(t,n,e){var r=Ro(t)?d:k,u=3>arguments.length;return r(t,He(n,4),e,u,Ei)},e.reduceRight=function(t,n,e){var r=Ro(t)?g:k,u=3>arguments.length;return r(t,He(n,4),e,u,Wi)},e.repeat=function(t,n,e){return n=(e?er(t,n,e):n===P)?1:Gr(n),qn(Xr(t),n)},e.replace=function(){var t=arguments,n=Xr(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},e.result=function(t,n,e){var r=-1,u=(n=ae(n,t)).length;for(u||(u=1,t=P);++r(t=Gr(t))||9007199254740991=i)return t;if(1>(i=e-F(r)))return r;if(e=o?ce(o,0,i).join(""):t.slice(0,i),u===P)return e+r;if(o&&(i+=e.length-i),Co(u)){if(t.slice(i).search(u)){var a=e;for(u.global||(u=Au(u.source,Xr(dt.exec(u))+"g")),u.lastIndex=0;o=u.exec(a);)var c=o.index;e=e.slice(0,c===P?i:c)}}else t.indexOf(Qn(u),i)!=i&&(-1<(u=e.lastIndexOf(u))&&(e=e.slice(0,u)));return e+r},e.unescape=function(t){return(t=Xr(t))&&G.test(t)?t.replace(V,tn):t},e.uniqueId=function(t){var n=++Su;return Xr(t)+n},e.upperCase=ca,e.upperFirst=fa,e.each=Or,e.eachRight=Ir,e.first=vr,pu(e,function(){var t={};return gn(e,function(n,r){Ru.call(e.prototype,r)||(t[r]=n)}),t}(),{chain:!1}),e.VERSION="4.17.10",a("bind bindKey curry curryRight partial partialRight".split(" "),function(t){e[t].placeholder=e}),a(["drop","take"],function(t,n){w.prototype[t]=function(e){e=e===P?1:ii(Gr(e),0);var r=this.__filtered__&&!n?new w(this):this.clone();return r.__filtered__?r.__takeCount__=oi(e,r.__takeCount__):r.__views__.push({size:oi(e,4294967295),type:t+(0>r.__dir__?"Right":"")}),r},w.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),a(["filter","map","takeWhile"],function(t,n){var e=n+1,r=1==e||3==e;w.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:He(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),a(["head","last"],function(t,n){var e="take"+(n?"Right":"");w.prototype[t]=function(){return this[e](1).value()[0]}}),a(["initial","tail"],function(t,n){var e="drop"+(n?"":"Right");w.prototype[t]=function(){return this.__filtered__?new w(this):this[e](1)}}),w.prototype.compact=function(){return this.filter(lu)},w.prototype.find=function(t){return this.filter(t).head()},w.prototype.findLast=function(t){return this.reverse().find(t)},w.prototype.invokeMap=$n(function(t,n){return"function"==typeof t?new w(this):this.map(function(e){return kn(e,t,n)})}),w.prototype.reject=function(t){return this.filter(Br(He(t)))},w.prototype.slice=function(t,n){t=Gr(t);var e=this;return e.__filtered__&&(0n)?new w(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==P&&(e=0>(n=Gr(n))?e.dropRight(-n):e.take(n-t)),e)},w.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},w.prototype.toArray=function(){return this.take(4294967295)},gn(w.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),i=/^(?:head|last)$/.test(n),o=e[i?"take"+("last"==n?"Right":""):n],a=i||/^find/.test(n);o&&(e.prototype[n]=function(){function n(t){return t=o.apply(e,h([t],f)),i&&d?t[0]:t}var c=this.__wrapped__,f=i?[1]:arguments,l=c instanceof w,s=f[0],p=l||Ro(c);p&&r&&"function"==typeof s&&1!=s.length&&(l=p=!1);var d=this.__chain__,g=!!this.__actions__.length;s=a&&!d,l=l&&!g;return!a&&p?(c=l?c:new w(this),(c=t.apply(c,f)).__actions__.push({func:kr,args:[n],thisArg:P}),new u(c,d)):s&&l?t.apply(this,f):(c=this.thru(n),s?i?c.value()[0]:c.value():c)})}),a("pop push shift sort splice unshift".split(" "),function(t){var n=Ou[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",u=/^(?:pop|shift)$/.test(t);e.prototype[t]=function(){var t=arguments;if(u&&!this.__chain__){var e=this.value();return n.apply(Ro(e)?e:[],t)}return this[r](function(e){return n.apply(Ro(e)?e:[],t)})}}),gn(w.prototype,function(t,n){var r=e[n];if(r){var u=r.name+"";(vi[u]||(vi[u]=[])).push({name:n,func:r})}}),vi[Ie(P,2).name]=[{name:"wrapper",func:P}],w.prototype.clone=function(){var t=new w(this.__wrapped__);return t.__actions__=ge(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ge(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ge(this.__views__),t},w.prototype.reverse=function(){if(this.__filtered__){var t=new w(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},w.prototype.value=function(){var t,n=this.__wrapped__.value(),e=this.__dir__,r=Ro(n),u=0>e,i=r?n.length:0;t=i;for(var o=this.__views__,a=0,c=-1,f=o.length;++c=this.__values__.length;return{done:t,value:t?P:this.__values__[this.__index__++]}},e.prototype.plant=function(t){for(var n,e=this;e instanceof r;){var u=dr(e);u.__index__=0,u.__values__=P,n?i.__wrapped__=u:n=u;var i=u;e=e.__wrapped__}return i.__wrapped__=t,n},e.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof w?(this.__actions__.length&&(t=new w(this)),(t=t.reverse()).__actions__.push({func:kr,args:[xr],thisArg:P}),new u(t,this.__chain__)):this.thru(xr)},e.prototype.toJSON=e.prototype.valueOf=e.prototype.value=function(){return ee(this.__wrapped__,this.__actions__)},e.prototype.first=e.prototype.head,Zu&&(e.prototype[Zu]=function(){return this}),e}();Dt._=nn,void 0===(u=function(){return nn}.call(n,e,n,r))||(r.exports=u)}).call(this)}).call(this,e("./node_modules/webpack/buildin/global.js"),e("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/webpack/buildin/global.js":function(t,n){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(e=window)}t.exports=e},"./node_modules/webpack/buildin/module.js":function(t,n){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./src/web/index.js":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){return function(t,n){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,n){var e=[],r=!0,u=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),!n||e.length!==n);r=!0);}catch(t){u=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(u)throw i}}return e}(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,n){for(var e=0;e0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=e;u||(this.regenCache(),u=[].concat(a(document.querySelectorAll("[data-huron-id][data-huron-type]")))),t=this.getModuleListFromTags(u),Object.keys(t).forEach(function(e){var u=n._modules[e],i=t[e];n.loadModule(e,u,i,!0,r)})}},{key:"cycleSections",value:function(){this.cycleModules(!1,{property:"type",values:["section"],include:!0})}},{key:"cycleStyleguide",value:function(){var t=document.querySelector("[huron-sections]"),n=document.querySelector("[huron-menu]");if(t&&(t.innerHTML="",this.outputSections(null,t),this.cycleSections()),n){if(n.innerHTML="",null===document.querySelector(".section-menu__expand")){var e=document.createElement("button");e.classList.add("section-menu__expand"),e.innerHTML="Sections Menu",document.body.insertBefore(n.appendChild(e),document.body.childNodes[0]),e.addEventListener("click",function(){document.body.classList.toggle("section-menu-open")})}this.outputMenu(null,n)}}},{key:"generateModuleReplaceKey",value:function(t){var n=t;return t.includes("-section.json")?n=this._sectionTemplatePath:t.includes(".json")&&(n=this._templates[t]),"_"+n.replace(/[/.]/g,"_")}},{key:"getMetaFromPath",value:function(t,n){var e=this,r=this._sections.sectionsByPath,i=this._types.filter(function(t){return"prototype"!==t}),o=!1,a=!1;if(-1!==t.indexOf("./prototypes")){var c=Object.keys(this._prototypes).filter(function(n){return e._prototypes[n]===t});if(c.length)o=u(c,1)[0],a="prototype"}else if(t===this._sectionTemplatePath)o="sections-template",a="sections-template";else{var f=[],l=Object.keys(r).filter(function(n){var e=i.filter(function(e){return r[n][e+"Path"]===t});return!!e.length&&(f=e,!0)});if(l&&l.length&&f&&f.length)o=r[l[0]].referenceURI,a=u(f,1)[0]}if(o&&a){var s=this.getModuleRender(a,t,n),p=this.generateModuleReplaceKey(t);if(s)return Object.assign({id:o,type:a,key:t,replaceKey:p,module:n},s)}return console.warn("Module '"+t+"' does not exist on the page\n or is no longer in use"),!1}},{key:"getModuleKeyFromTag",value:function(n){var e=t.getDataAttribute(n,"huron-type"),r=t.getDataAttribute(n,"huron-id"),u=this._sections.sectionsByURI[r];if(r&&e){if(u)return u[e+"Path"];if("prototype"===e)return this._prototypes[r]}return!1}},{key:"getModuleListFromTags",value:function(t){var n=this,e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r={},u={};return t&&t.length&&t.forEach(function(t){var i=n.getModuleKeyFromTag(t);i?(r[i]||(r[i]=[]),r[i].push(t)):e&&(u=n.getModuleListFromTags([].concat(a(t.querySelectorAll("[data-huron-id][data-huron-type]"))),!1),Object.keys(u).forEach(function(t){r[t]=r[t]?r[t].concat(u[t]):u[t]}))}),r}},{key:"getModuleRender",value:function(t,n,e){var u=!1,i=!1;return"template"===t&&"function"==typeof e?(u=e,i=this._modules[this._templates[n]]):"sections-template"===t&&"function"==typeof e?u=e:"section"===t&&"object"===(void 0===e?"undefined":r(e))?(u=this._modules[this._sectionTemplatePath],i=e):"template"!==t&&"description"!==t&&"prototype"!==t||"string"!=typeof e?"data"===t&&"object"===(void 0===e?"undefined":r(e))&&(u=this._modules[this._templates[n]],i=e):u=function(){return e},!!u&&{render:u,data:i}}},{key:"loadModule",value:function(n,e,r){var u=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=!0,a=!1;u?a=this.meta[n]:(this.meta[n]=this.getMetaFromPath(n,e),a=this.meta[n]),a&&(i&&(o=t.filterModules(i,a)),o&&this.replaceTemplate(a,r))}},{key:"outputMenu",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=n;Object.keys(r).forEach(function(n){var o=Object.keys(r[n]).length,a=void 0,c=void 0;if(u=t?t+"-"+n:n,i){var f=e._sections.sectionsByURI[u]?e._sections.sectionsByURI[u].header:u,l=document.createElement("ul"),s=document.createElement("li"),p=''+f+"";l.classList.add("section-menu"),s.classList.add("section-menu__item"),s.innerHTML=p,"UL"!==i.tagName&&(a=l.cloneNode(),i.appendChild(a),i=a),o&&((c=l.cloneNode()).classList.add("section-menu--submenu"),s.classList.add("section-menu__item--has-submenu"),s.appendChild(c)),i.appendChild(s),o&&e.outputMenu(u,c,r[n])}})}},{key:"outputSections",value:function(t,n){var e=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._sections.sorted,u=null,i=null;Object.keys(r).forEach(function(o){var a=!1,c=null,f=null,l=n;t?u=t+"-"+o:(u=o,a=!0),n&&((i=document.createElement("div")).dataset.huronId=u,i.dataset.huronType="section",a?((c=document.createElement("div")).classList.add("section--top-level__wrapper"),(f=document.createElement("div")).classList.add("section","section--top-level"),f.appendChild(i),c.appendChild(f),n.appendChild(c),l=c):n.appendChild(i)),Object.keys(r[o]).length&&i&&e.outputSections(u,l,r[o])})}},{key:"provideClassnames",value:function(t){return this._classNames?Object.assign({},t,{classNames:this._classNames}):t}},{key:"regenCache",value:function(){var t=this;Object.keys(this._modules).forEach(function(n){t.meta[n]=t.getMetaFromPath(n,t._modules[n])})}},{key:"removeOldTags",value:function(n,e){if(e){var r=t.getDataAttribute(e,"parent-module"),u=t.getDataAttribute(e,"self-module");if(r===n&&u!==n){var i=u,o=e.previousSibling;i&&(this.removeOldTags(i,o),o=e.previousSibling),e.parentNode.removeChild(e),this.removeOldTags(n,o)}}}},{key:"replaceTemplate",value:function(n,e){var r=this,u=this.validateType(n.type),i=[],c=e,f=!1;c||(c=document.querySelectorAll("[data-huron-id][data-huron-type]")),u?(c.forEach(function(e){var r=t.getDataAttribute(e,"huron-type");t.getDataAttribute(e,"huron-id")===n.id&&r===u&&i.push(e)}),i&&i.length&&n.render&&i.forEach(function(e){var u=e,i=t.getDataAttribute(u,"huron-modifier"),c=u.parentNode,l=(0,o.compose)(r.provideClassnames.bind(r),t.applyModifier)(n.data,i),s=n.render(l),p=t.convertToElement(s).querySelector("template"),h=null;r.removeOldTags(n.replaceKey,u.previousSibling),(h=[].concat(a(p.content.children))).forEach(function(e){var r=e;1===r.nodeType&&(r.dataset.parentModule=n.replaceKey,f=f||t.isSectionHelper(r,n),c.insertBefore(r,u))}),u.dataset.selfModule=n.replaceKey,u.style.display="none",r.cycleModules(h,{property:"key",values:[n.key,r._sectionTemplatePath],include:!1}),f&&r.cycleStyleguide()})):console.warn("Could not render module\n section: "+n.id+"\n type: "+n.type)}},{key:"validateType",value:function(t){return"data"===t?"template":!!this._types.includes(t)&&t}},{key:"modules",set:function(t){this._modules=t,this._moduleIds=Object.keys(t)}},{key:"store",set:function(t){if(this._store=t,this._config=t.config,this._sections=t.sections,this._templates=t.templates,this._prototypes=t.prototypes,this._types=t.types,this._sectionTemplatePath=t.sectionTemplatePath,!(0,o.isEqual)(this._classNames,t.classNames)){var n=!this._classNames;this._classNames=t.classNames,n||this.cycleModules()}}}],[{key:"applyModifier",value:function(t,n){return n&&t&&t[n]?Object.assign({},t[n],{modifier:n}):t}},{key:"convertToElement",value:function(t){var n=document.createElement("div");return n.innerHTML=t,n.firstElementChild}},{key:"filterModules",value:function(t,n){var e=!0;return"object"===(void 0===t?"undefined":r(t))&&{}.hasOwnProperty.call(t,"property")&&{}.hasOwnProperty.call(t,"values")&&{}.hasOwnProperty.call(t,"include")?(e=t.values.filter(function(e){return n[t.property]===e}),Boolean(e.length)===t.include):(console.log("\n filter "+t+" is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n "),e)}},{key:"getDataAttribute",value:function(t,n){var e=!1;return t.dataset&&(e=t.dataset[n]),!e&&t.getAttribute&&(e=t.getAttribute("data-"+n)),e}},{key:"isSectionHelper",value:function(t,n){return"prototype"===n.type&&(t.hasAttribute("huron-sections")||t.hasAttribute("huron-menu"))}}]),t}();n.default=c},0:function(t,n,e){t.exports=e("./src/web/index.js")}}); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/web/index.js.map b/dist/web/index.js.map index 3f62e36..b17a1e6 100644 --- a/dist/web/index.js.map +++ b/dist/web/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap","webpack://huron/./node_modules/lodash/fp.js","webpack://huron/./node_modules/lodash/fp/_baseConvert.js","webpack://huron/./node_modules/lodash/fp/_mapping.js","webpack://huron/./node_modules/lodash/fp/placeholder.js","webpack://huron/./node_modules/lodash/lodash.min.js","webpack://huron/(webpack)/buildin/global.js","webpack://huron/(webpack)/buildin/module.js","webpack://huron/src/web/index.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","var _ = require('./lodash.min').runInContext();\nmodule.exports = require('./fp/_baseConvert')(_, _);\n","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var setPlaceholder,\n isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n placeholder = isLib ? func : fallbackHolder,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isError': util.isError,\n 'isFunction': util.isFunction,\n 'isWeakMap': util.isWeakMap,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isError = helpers.isError,\n isFunction = helpers.isFunction,\n isWeakMap = helpers.isWeakMap,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null &&\n !(isFunction(value) || isError(value) || isWeakMap(value))) {\n nested[key] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n if (mapping.placeholder[realName]) {\n setPlaceholder = true;\n result.placeholder = func.placeholder = placeholder;\n }\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n if (setPlaceholder) {\n _.placeholder = placeholder;\n }\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to track methods with placeholder support */\nexports.placeholder = {\n 'bind': true,\n 'bindKey': true,\n 'curry': true,\n 'curryRight': true,\n 'partial': true,\n 'partialRight': true\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\\s\\S]+?)%>/g,Y=/<%([\\s\\S]+?)%>/g,Q=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,nn=/^\\w*$/,tn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,rn=/[\\\\^$.*+?()[\\]{}|]/g,en=RegExp(rn.source),un=/^\\s+|\\s+$/g,on=/^\\s+/,fn=/\\s+$/,cn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,an=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ln=/,? & /,sn=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,hn=/\\\\(\\\\)?/g,pn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,_n=/\\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\\[object .+?Constructor\\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\\d*)$/,xn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,jn=/($^)/,wn=/['\\n\\r\\u2028\\u2029\\\\]/g,mn=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",An=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+mn,En=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",kn=RegExp(\"['\\u2019]\",\"g\"),Sn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),On=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+En+mn,\"g\"),In=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])|\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])|\\\\d+\",An].join(\"|\"),\"g\"),Rn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Bn={};\nBn[\"[object Float32Array]\"]=Bn[\"[object Float64Array]\"]=Bn[\"[object Int8Array]\"]=Bn[\"[object Int16Array]\"]=Bn[\"[object Int32Array]\"]=Bn[\"[object Uint8Array]\"]=Bn[\"[object Uint8ClampedArray]\"]=Bn[\"[object Uint16Array]\"]=Bn[\"[object Uint32Array]\"]=true,Bn[\"[object Arguments]\"]=Bn[\"[object Array]\"]=Bn[\"[object ArrayBuffer]\"]=Bn[\"[object Boolean]\"]=Bn[\"[object DataView]\"]=Bn[\"[object Date]\"]=Bn[\"[object Error]\"]=Bn[\"[object Function]\"]=Bn[\"[object Map]\"]=Bn[\"[object Number]\"]=Bn[\"[object Object]\"]=Bn[\"[object RegExp]\"]=Bn[\"[object Set]\"]=Bn[\"[object String]\"]=Bn[\"[object WeakMap]\"]=false;\nvar Ln={};Ln[\"[object Arguments]\"]=Ln[\"[object Array]\"]=Ln[\"[object ArrayBuffer]\"]=Ln[\"[object DataView]\"]=Ln[\"[object Boolean]\"]=Ln[\"[object Date]\"]=Ln[\"[object Float32Array]\"]=Ln[\"[object Float64Array]\"]=Ln[\"[object Int8Array]\"]=Ln[\"[object Int16Array]\"]=Ln[\"[object Int32Array]\"]=Ln[\"[object Map]\"]=Ln[\"[object Number]\"]=Ln[\"[object Object]\"]=Ln[\"[object RegExp]\"]=Ln[\"[object Set]\"]=Ln[\"[object String]\"]=Ln[\"[object Symbol]\"]=Ln[\"[object Uint8Array]\"]=Ln[\"[object Uint8ClampedArray]\"]=Ln[\"[object Uint16Array]\"]=Ln[\"[object Uint32Array]\"]=true,\nLn[\"[object Error]\"]=Ln[\"[object Function]\"]=Ln[\"[object WeakMap]\"]=false;var Un={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Cn=parseFloat,Dn=parseInt,Mn=typeof global==\"object\"&&global&&global.Object===Object&&global,Tn=typeof self==\"object\"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function(\"return this\")(),Fn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){\ntry{var n=Nn&&Nn.f&&Nn.f(\"util\").types;return n?n:Zn&&Zn.binding&&Zn.binding(\"util\")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b(\"length\"),Xn=x({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\n\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\n\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\n\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\n\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\n\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),nt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),tt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,\"__wrapped__\"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,\nthis.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(cf(n))return Ir(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),\ni=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!=\"function\")throw new ni(\"Expected a function\");\nreturn yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),\nl[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&\"[object Arguments]\"==Ot(n)}function Ct(n){\nreturn du(n)&&\"[object ArrayBuffer]\"==Ot(n)}function Dt(n){return du(n)&&\"[object Date]\"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?\"[object Array]\":_o(n),c=o?\"[object Array]\":_o(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{\nif(!(1&r)&&(i=a&&ii.call(n,\"__wrapped__\"),f=o&&ii.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),\nn=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),\nt}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),\no-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(\"\"):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){\nreturn n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){\nreturn t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!=\"function\")throw new ni(\"Expected a function\");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,\nn}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),\ns}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Li(ku(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ni(\"Expected a function\");\nreturn r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!=\"function\")throw new ni(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!bu(n);\n}function pu(n){return!!gu(n)&&(n=Ot(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function _u(n){return typeof n==\"number\"&&n==Au(n)}function vu(n){return typeof n==\"number\"&&-1=n}function gu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function du(n){return null!=n&&typeof n==\"object\"}function yu(n){return typeof n==\"number\"||du(n)&&\"[object Number]\"==Ot(n)}function bu(n){return!(!du(n)||\"[object Object]\"!=Ot(n))&&(n=gi(n),\nnull===n||(n=ii.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n==\"string\"||!of(n)&&du(n)&&\"[object String]\"==Ot(n)}function ju(n){return typeof n==\"symbol\"||du(n)&&\"[object Symbol]\"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),(\"[object Map]\"==t?W:\"[object Set]\"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),\nn===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n==\"number\")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=gu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;n=n.replace(un,\"\");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?\"\":yr(n);\n}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));\n}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,\"\")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n==\"function\"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&\"chain\"in e&&!e.chain),f=pu(n);return r(i,function(r){\nvar e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn[\"__core-js_shared__\"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){\nvar n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu(\"^\"+ui.call(ii).replace(rn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,\"defineProperty\");\nreturn n({},\"\",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,\"DataView\"),Fi=je(mn,\"Map\"),Ni=je(mn,\"Promise\"),Pi=je(mn,\"Set\"),Zi=je(mn,\"WeakMap\"),qi=je(Yu,\"create\"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){\nfunction n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:\"\",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],\"__lodash_hash_undefined__\"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?\"__lodash_hash_undefined__\":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),\n--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);\n},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){\nreturn this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,\"toString\",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){\nreturn $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&\"[object DataView]\"!=_o(new $i(new ArrayBuffer(1)))||Fi&&\"[object Map]\"!=_o(new Fi)||Ni&&\"[object Promise]\"!=_o(Ni.resolve())||Pi&&\"[object Set]\"!=_o(new Pi)||Zi&&\"[object WeakMap]\"!=_o(new Zi))&&(_o=function(n){\nvar t=Ot(n);if(n=(n=\"[object Object]\"==t?n.constructor:T)?Me(n):\"\")switch(n){case Gi:return\"[object DataView]\";case Hi:return\"[object Map]\";case Ji:return\"[object Promise]\";case Yi:return\"[object Set]\";case Qi:return\"[object WeakMap]\"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(tn,function(n,r,e,u){\nt.push(e?u.replace(hn,\"$1\"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t==\"function\"?t:T)&&r.pop(),\nr.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),\nmr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,\"callee\")&&!yi.call(n,\"callee\")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){\nif(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];\n},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t==\"string\"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!=\"function\")throw new ni(\"Expected a function\");return r=null==r?0:Li(Au(r),0),\nfr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),\nn},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return gu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};\n}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t==\"function\"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){\nreturn e=typeof e==\"function\"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,\nAn.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){\nn=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,\"\\\\$&\"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);\n},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&\"[object WeakMap]\"==_o(n)},An.isWeakSet=function(n){return du(n)&&\"[object WeakSet]\"==Ot(n)},An.join=function(n,t){return null==n?\"\":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),\nt===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){\nreturn\"\"},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn(\"1e-\"+((r+\"\").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;\nreturn e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(\"\"):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+\"g\")),\nu.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Un.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({\niteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);\n},Un.prototype.invokeMap=fr(function(n,t){return typeof n==\"function\"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);\n},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l==\"function\"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({\nfunc:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+\"\";\n(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:\"wrapper\",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;\n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){\nvar e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),\nAn}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","/* eslint-disable no-underscore-dangle */\nimport { compose, isEqual } from 'lodash/fp';\n\n// Accept the huron.js module for Huron development\nif (module.hot) {\n module.hot.accept();\n}\n\n/** Class for inserting HTML snippets at particular insertion points.\n * Uses require() to grab html partials, then inserts that html\n * into an element with attribute [huron-id] corresponding to the reference URI of the target KSS section,\n * and [huron-type] corresponding with the required KSS field\n */\nexport default class InsertNodes {\n constructor(modules, store) {\n /** webpack module list in which keys are relative require paths and values are the module contents */\n this._modules = modules;\n /** array of module keys */\n this._moduleIds = Object.keys(modules);\n /** reference to the huron config */\n this._config = null;\n /** KSS sections organized in various formats including by reference URI, by module key, and modules sorted by parent/child */\n this._sections = null;\n /** Key/value pairs of partner data and template files */\n this._templates = null;\n /** array of prototypes */\n this._prototypes = null;\n /** array of valid huron placeholder types */\n this._types = null;\n /** array of CSS modules classnames */\n this._classNames = null;\n\n /** Cache for module metadata */\n this.meta = {};\n\n /** Reference to entire memory store */\n this.store = store;\n\n // Inits\n this.cycleModules();\n this.cycleStyleguide();\n }\n\n /**\n * Apply a modifier if one exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} data - subset of data object for supplied modifier\n */\n static applyModifier(data, modifier) {\n // If we have a modifier, use it, otherwise use the entire data set\n if (modifier && data && data[modifier]) {\n return Object.assign({}, data[modifier], { modifier });\n }\n\n return data;\n }\n\n /**\n * Get markup from any type of module (html, json or template)\n *\n * @param {string} content - String corresponding to markup\n * @return {object} el.firstElementChild - HTML module\n */\n static convertToElement(content) {\n const el = document.createElement('div');\n\n el.innerHTML = content;\n return el.firstElementChild;\n }\n\n /**\n * Filter module object by module key or module type\n *\n * @param {object} filter - Filter for modules. Options:\n * @param {string} filter.property - Which property to filter ('key' or 'type')\n * @param {array} filter.values - Values for property\n * @param {bool} filter.include - Whether the values should be included or excluded (true = include, false = exclude)\n * @param {object} moduleMeta - Filter for modules. Fields explained in the filterModules() function docs\n * @return {bool} match - determine if modules need to be filtered\n */\n static filterModules(filter, moduleMeta) {\n let match = true;\n\n // Check if we should filter out any modules\n if (\n 'object' === typeof filter &&\n {}.hasOwnProperty.call(filter, 'property') &&\n {}.hasOwnProperty.call(filter, 'values') &&\n {}.hasOwnProperty.call(filter, 'include')\n ) {\n match = filter.values.filter(\n (value) => moduleMeta[filter.property] === value\n );\n return Boolean(match.length) === filter.include;\n }\n\n console.log(`\n filter ${filter} is not in a valid format.\n module filters must include 'property', 'values', and 'include' properties\n `);\n\n return match;\n }\n\n /**\n * Retrieve a data attribute from a tag using one of two methods\n *\n * @param {HTMLElement} tag - DOM node on which to check for a data attribute\n * @param {string} attr - attribute to check for\n * @returns {string} data - contents of data attribute\n */\n static getDataAttribute(tag, attr) {\n let data = false;\n\n // Check if element has dataset and, if so, use it\n if (tag.dataset) {\n data = tag.dataset[attr];\n }\n\n // Fallback to getAttribute for ugly old Safari\n if (!data && tag.getAttribute) {\n data = tag.getAttribute(`data-${attr}`);\n }\n\n return data;\n }\n\n /**\n * Check if this tag is a styleguide helper\n *\n * @param {object} tag - tag to check\n * @param {object} meta - module metadata\n * @return {bool}\n */\n static isSectionHelper(tag, meta) {\n if ('prototype' === meta.type) {\n return tag.hasAttribute('huron-sections') ||\n tag.hasAttribute('huron-menu');\n }\n\n return false;\n }\n\n /**\n * Replace all template markers with the actual template markup.\n *\n * @param {string} context - The within which to replace markup\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n cycleModules(context = false, filter = false) {\n let moduleList = {};\n let elementList = context;\n\n // We're replacing top-level elements\n if (!elementList) {\n this.regenCache();\n\n // Find all top-level huron placeholders\n elementList = [...document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n )];\n }\n\n moduleList = this.getModuleListFromTags(elementList);\n\n // Loop through modules array\n Object.keys(moduleList).forEach((key) => {\n const module = this._modules[key];\n const replaceElements = moduleList[key];\n\n this.loadModule(key, module, replaceElements, true, filter);\n });\n }\n\n /**\n * Helper for reloading sections only\n */\n cycleSections() {\n this.cycleModules(false, {\n property: 'type',\n values: ['section'],\n include: true,\n });\n }\n\n /**\n * Reload styleguide sections and menu helpers\n */\n cycleStyleguide() {\n const sectionsQuery = document.querySelector('[huron-sections]');\n const menuQuery = document.querySelector('[huron-menu]');\n\n // Sections\n if (sectionsQuery) {\n sectionsQuery.innerHTML = '';\n this.outputSections(null, sectionsQuery);\n this.cycleSections();\n }\n\n // Menu\n if (menuQuery) {\n menuQuery.innerHTML = '';\n\n if (null === document.querySelector('.section-menu__expand')) {\n const menuTrigger = document.createElement('button');\n\n menuTrigger.classList.add('section-menu__expand');\n menuTrigger.innerHTML = 'Sections Menu';\n document.body.insertBefore(\n menuQuery.appendChild(menuTrigger),\n document.body.childNodes[0]\n );\n\n // Add menu trigger handler\n menuTrigger.addEventListener('click', () => {\n document.body.classList.toggle('section-menu-open');\n });\n }\n\n // Create menu\n this.outputMenu(null, menuQuery);\n }\n }\n\n /**\n * Generate a unique key for targeting markup replacement\n *\n * @param {string} key - module key (webpack require path) to convert into a replacement key\n * @return {string} key - generated replacement key\n */\n generateModuleReplaceKey(key) {\n let currentKey = key;\n\n // If this is section data, use the section template path\n if (key.includes('-section.json')) {\n currentKey = this._sectionTemplatePath;\n // If updated module is a json file, use template key instead\n } else if (key.includes('.json')) {\n currentKey = this._templates[key];\n }\n\n return `_${currentKey.replace(/[/.]/g, '_')}`;\n }\n\n /**\n * Get module metadata from a module require path\n *\n * @param {string} key - Module require path\n * @return {object} containing module id, module type, key and the module contents\n */\n getMetaFromPath(key, module) {\n const sections = this._sections.sectionsByPath;\n const templateTypes = this._types.filter((type) => 'prototype' !== type);\n let id = false;\n let type = false;\n\n /* eslint-disable space-unary-ops */\n if (-1 !== key.indexOf('./prototypes')) {\n /* eslint-enable space-unary-ops */\n const prototype = Object.keys(this._prototypes)\n .filter((name) => this._prototypes[name] === key);\n\n if (prototype.length) {\n [id] = prototype;\n type = 'prototype';\n }\n } else if (key === this._sectionTemplatePath) {\n id = 'sections-template';\n type = 'sections-template';\n } else {\n let testTypes = [];\n const testSections = Object.keys(sections).filter((section) => {\n const tempTypes = templateTypes.filter(\n (currentType) => sections[section][`${currentType}Path`] === key\n );\n\n if (tempTypes.length) {\n testTypes = tempTypes;\n return true;\n }\n\n return false;\n });\n\n if (\n testSections &&\n testSections.length &&\n testTypes &&\n testTypes.length\n ) {\n id = sections[testSections[0]].referenceURI;\n [type] = testTypes;\n }\n }\n\n if (id && type) {\n const renderData = this.getModuleRender(type, key, module);\n const replaceKey = this.generateModuleReplaceKey(key);\n\n if (renderData) {\n return Object.assign({\n id, type, key, replaceKey, module,\n }, renderData);\n }\n }\n\n console.warn(\n `Module '${key}' does not exist on the page\n or is no longer in use`\n );\n return false;\n }\n\n /**\n * Check if a tag is a huron placeholder and, if so,\n * return its associated module key\n *\n * @param {object} tag - tag to check\n * @return {bool} associated module key\n */\n getModuleKeyFromTag(tag) {\n // Safari/webkit has some trouble parsing dataset in certain cases.\n // This is a fallback method of accessing the same data.\n const type = InsertNodes.getDataAttribute(tag, 'huron-type');\n const id = InsertNodes.getDataAttribute(tag, 'huron-id');\n const section = this._sections.sectionsByURI[id];\n\n if (id && type) {\n if (section) {\n return section[`${type}Path`];\n } else if ('prototype' === type) {\n return this._prototypes[id];\n }\n }\n\n return false;\n }\n\n /**\n * Check if an array of elements contains a Huron placeholder\n *\n * @param {array} tags - array of DOM nodes\n * @param {bool} recurse - should we recurse this function with a new array\n * @return {object} moduleList - Huron placeholder DOM node\n */\n getModuleListFromTags(elements, recurse = true) {\n const moduleList = {};\n let newList = {};\n\n if (elements && elements.length) {\n elements.forEach((element) => {\n const moduleKey = this.getModuleKeyFromTag(element);\n\n if (moduleKey) {\n if (!moduleList[moduleKey]) {\n moduleList[moduleKey] = [];\n }\n moduleList[moduleKey].push(element);\n } else if (recurse) {\n newList = this.getModuleListFromTags(\n [...element.querySelectorAll('[data-huron-id][data-huron-type]')],\n false\n );\n\n Object.keys(newList).forEach((key) => {\n moduleList[key] = moduleList[key] ?\n moduleList[key].concat(newList[key]) :\n newList[key];\n });\n }\n });\n }\n\n return moduleList;\n }\n\n /**\n * Transform every module into a predictable object\n *\n * @param {object} type - Module metadata\n * @param {mixed} module - Module contents\n * @return {object} containing render function, render data and module id\n */\n getModuleRender(type, key, module) {\n let render = false;\n let data = false;\n\n if ('template' === type && 'function' === typeof module) {\n // It's a render function for a template\n render = module;\n data = this._modules[this._templates[key]];\n } else if (\n 'sections-template' === type &&\n 'function' === typeof module\n ) {\n // It's a kss section template\n render = module;\n } else if (\n 'section' === type &&\n 'object' === typeof module\n ) {\n // It's section data\n render = this._modules[this._sectionTemplatePath];\n data = module;\n } else if (\n ('template' === type || 'description' === type || 'prototype' === type) &&\n 'string' === typeof module\n ) {\n // it's straight HTML\n render = () => module;\n } else if ('data' === type && 'object' === typeof module) {\n // It's a data file (.json)\n render = this._modules[this._templates[key]];\n data = module;\n }\n\n // Only need render, as data will be left empty for static HTML\n if (render) {\n return { render, data };\n }\n\n return false;\n }\n\n /**\n * Replace all sections. For hot reloading use when the section template has changed.\n *\n * @param {object} replaceElements - The context (e.g. document) that you will query for the template ID to replace\n * @param {string} key - Module require path\n * @param {mixed} module - Module contents\n * @param {bool} cached - Whether or not to use cached values for module replacement\n * @param {object} filter - Filter for modules. Fields explained in the filterModules() function docs\n */\n loadModule(key, module, replaceElements, cached = false, filter = false) {\n let shouldLoad = true;\n let moduleMeta = false;\n\n // Check if we should load from internal module metadata cache\n if (cached) {\n moduleMeta = this.meta[key];\n } else {\n this.meta[key] = this.getMetaFromPath(key, module);\n moduleMeta = this.meta[key];\n }\n\n if (moduleMeta) {\n if (filter) {\n shouldLoad = InsertNodes.filterModules(filter, moduleMeta);\n }\n\n if (shouldLoad) {\n this.replaceTemplate(moduleMeta, replaceElements);\n }\n }\n }\n\n /*\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
              to be used as a menu for each section\n */\n outputMenu(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let newEl = el;\n\n Object.keys(sections).forEach((section) => {\n const hasSubmenu = Object.keys(sections[section]).length;\n let menuTarget;\n let nextMenu;\n\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n }\n\n if (newEl) {\n const title = this._sections\n .sectionsByURI[templateId] ?\n this._sections\n .sectionsByURI[templateId]\n .header :\n templateId;\n const sectionMenu = document.createElement('ul');\n const menuItem = document.createElement('li');\n const link = `${title}`;\n\n sectionMenu.classList.add('section-menu');\n menuItem.classList.add('section-menu__item');\n menuItem.innerHTML = link;\n\n // Check if this is a UL and, if not, create one\n if ('UL' !== newEl.tagName) {\n menuTarget = sectionMenu.cloneNode();\n newEl.appendChild(menuTarget);\n newEl = menuTarget;\n }\n\n // Has subsections\n if (hasSubmenu) {\n nextMenu = sectionMenu.cloneNode();\n nextMenu.classList.add('section-menu--submenu');\n menuItem.classList.add('section-menu__item--has-submenu');\n menuItem.appendChild(nextMenu);\n }\n\n newEl.appendChild(menuItem);\n\n if (hasSubmenu) {\n this.outputMenu(\n templateId,\n nextMenu,\n sections[section]\n );\n }\n }\n });\n }\n\n /**\n * Helper function for inserting styleguide sections.\n *\n * Recurses over sorted styleguide sections and inserts a
              tag with [huron-id] equal to the section template name.\n */\n outputSections(parent, el, sections = this._sections.sorted) {\n let templateId = null;\n let placeholder = null;\n\n Object.keys(sections).forEach((section) => {\n let istopLevel = false;\n let topLevelWrapper = null;\n let topLevelSection = null;\n let insertionEl = el;\n\n // Generate section ID and check if it is top-level\n if (parent) {\n templateId = `${parent}-${section}`;\n } else {\n templateId = section;\n istopLevel = true;\n }\n\n if (el) {\n // Generate huron placeholder for this section\n placeholder = document.createElement('div');\n placeholder.dataset.huronId = templateId;\n placeholder.dataset.huronType = 'section';\n\n if (istopLevel) {\n // Generate wrapper to contain top-level section and all subsections underneath it\n topLevelWrapper = document.createElement('div');\n topLevelWrapper.classList.add('section--top-level__wrapper');\n\n // Generate wrapper for top-level section\n topLevelSection = document.createElement('div');\n topLevelSection.classList.add('section', 'section--top-level');\n\n // Append wrappers to huron-sections element\n topLevelSection.appendChild(placeholder);\n topLevelWrapper.appendChild(topLevelSection);\n el.appendChild(topLevelWrapper);\n insertionEl = topLevelWrapper;\n } else {\n // If this is not top-level, append placeholder\n el.appendChild(placeholder);\n }\n }\n\n // Recursively call this function to insert other sections\n if (Object.keys(sections[section]).length && placeholder) {\n this.outputSections(\n templateId,\n insertionEl,\n sections[section]\n );\n }\n });\n }\n\n /**\n * Apply a modifier and merge classnames into template data, if it exists\n *\n * @param {object} data - data with which to render template\n * @param {string} modifier - target modifier\n *\n * @return {string} rendered - the modified HTML module\n */\n provideClassnames(data) {\n console.log(this._classNames);\n if (this._classNames) {\n return Object.assign({}, data, { classNames: this._classNames });\n }\n\n return data;\n }\n\n /**\n * Regenerate module meta cache\n */\n regenCache() {\n Object.keys(this._modules).forEach((moduleKey) => {\n this.meta[moduleKey] = this.getMetaFromPath(\n moduleKey, this._modules[moduleKey]\n );\n });\n }\n\n /**\n * Recursively remove old tags\n *\n * @param {string} replaceKey - key of module for which we need to remove old tags\n * @param {object} tag - tag to start our search with\n * (usually the tag immediately preceding the current placeholder)\n */\n removeOldTags(replaceKey, tag) {\n if (tag) {\n const parentModule = InsertNodes.getDataAttribute(tag, 'parent-module');\n const selfModule = InsertNodes.getDataAttribute(tag, 'self-module');\n\n if (parentModule === replaceKey && selfModule !== replaceKey) {\n // This is a child of the current module,\n // so remove it and its children (if applicable)\n const childrenModule = selfModule;\n let nextTag = tag.previousSibling;\n\n if (childrenModule) {\n this.removeOldTags(childrenModule, nextTag);\n // Reset nextTag if we removed a child\n nextTag = tag.previousSibling;\n }\n\n tag.parentNode.removeChild(tag);\n this.removeOldTags(replaceKey, nextTag);\n }\n }\n }\n\n /**\n * Replace a single template marker with template content.\n *\n * @param {object} replaceElements - Array of elements to check for Huron placeholders\n * @param {object} meta - Module metadata\n */\n replaceTemplate(meta, replaceElements) {\n const type = this.validateType(meta.type);\n const tags = [];\n let replace = replaceElements;\n let hasStyleguideHelpers = false;\n\n if (!replace) {\n replace = document.querySelectorAll(\n '[data-huron-id][data-huron-type]'\n );\n }\n\n if (type) {\n replace.forEach((tag) => {\n const tagType = InsertNodes.getDataAttribute(tag, 'huron-type');\n const tagId = InsertNodes.getDataAttribute(tag, 'huron-id');\n\n if (tagId === meta.id && tagType === type) {\n tags.push(tag);\n }\n });\n\n if (tags && tags.length && meta.render) {\n tags.forEach((currentTag) => {\n const modifiedPlaceholder = currentTag;\n const modifier = InsertNodes\n .getDataAttribute(modifiedPlaceholder, 'huron-modifier');\n const parent = modifiedPlaceholder.parentNode;\n const data = compose(\n this.provideClassnames.bind(this),\n InsertNodes.applyModifier\n )(meta.data, modifier);\n const rendered = meta.render(data);\n const renderedTemplate = InsertNodes.convertToElement(rendered)\n .querySelector('template');\n let renderedContents = null;\n\n // Remove existing module tags\n this.removeOldTags(\n meta.replaceKey,\n modifiedPlaceholder.previousSibling\n );\n\n // Get the contents of the rendered template\n renderedContents = [\n ...renderedTemplate.content.children,\n ];\n\n // Insert each tag of the template contents before placeholder\n renderedContents.forEach((element) => {\n const newEl = element;\n\n if (1 === newEl.nodeType) {\n newEl.dataset.parentModule = meta.replaceKey;\n hasStyleguideHelpers = !hasStyleguideHelpers ?\n InsertNodes.isSectionHelper(newEl, meta) :\n hasStyleguideHelpers;\n\n parent.insertBefore(newEl, modifiedPlaceholder);\n }\n });\n\n // Add module replacement key to this placeholder\n modifiedPlaceholder.dataset.selfModule = meta.replaceKey;\n\n // Hide the placeholder\n modifiedPlaceholder.style.display = 'none';\n\n // Recursively load modules, excluding the current one\n this.cycleModules(renderedContents, {\n property: 'key',\n values: [meta.key, this._sectionTemplatePath],\n include: false,\n });\n\n if (hasStyleguideHelpers) {\n this.cycleStyleguide();\n }\n });\n }\n } else {\n console.warn(\n `Could not render module\n section: ${meta.id}\n type: ${meta.type}`\n );\n }\n }\n\n /**\n * Verify specified element is using an acceptable huron type\n *\n * @param {string} type - type of partial (template, data, description, section or prototype )\n * @return {string} type - huron type or 'template' if invalid\n */\n validateType(type) {\n if ('data' === type) {\n return 'template';\n }\n\n if (!this._types.includes(type)) {\n return false;\n }\n\n return type;\n }\n\n /*\n * Set new modules object\n */\n set modules(modules) {\n this._modules = modules;\n this._moduleIds = Object.keys(modules);\n }\n\n /*\n * Set store\n */\n set store(store) {\n this._store = store;\n this._config = store.config;\n this._sections = store.sections;\n this._templates = store.templates;\n this._prototypes = store.prototypes;\n this._types = store.types;\n this._sectionTemplatePath = store.sectionTemplatePath;\n\n // Completely rerender prototype if any CSS modules classnames change\n if (!isEqual(this._classNames, store.classNames)) {\n const isInitialRender = !this._classNames;\n this._classNames = store.classNames;\n\n // Only rerender after initial render (when classnames is not falsy)\n if (!isInitialRender) {\n this.cycleModules();\n }\n }\n }\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnEA;AACA;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5jBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/WA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;;;;;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AADA;AACA;;;;;AACA;AACA,aAEA;AACA;AACA;;;;;;AAKA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAuGA;;;;;;AAMA;AAAA;AACA;AADA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AAHA;AAKA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AADA;AACA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AADA;AAGA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAIA;AACA;AACA;AACA;AAIA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AASA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AAKA;AAAA;AACA;AADA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;;;;;;;;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AA5tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AAMA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AAOA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;AAnIA;;;;;;;;;;;;;;;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["webpack://huron/webpack/bootstrap","webpack://huron/./node_modules/lodash/lodash.min.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"../\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/**\n * @license\n * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE\n */\n;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u\"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\\s\\S]+?)%>/g,Y=/<%([\\s\\S]+?)%>/g,Q=/<%=([\\s\\S]+?)%>/g,X=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,nn=/^\\w*$/,tn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,rn=/[\\\\^$.*+?()[\\]{}|]/g,en=RegExp(rn.source),un=/^\\s+|\\s+$/g,on=/^\\s+/,fn=/\\s+$/,cn=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,an=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,ln=/,? & /,sn=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,hn=/\\\\(\\\\)?/g,pn=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,_n=/\\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\\[object .+?Constructor\\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\\d*)$/,xn=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,jn=/($^)/,wn=/['\\n\\r\\u2028\\u2029\\\\]/g,mn=\"[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?(?:\\\\u200d(?:[^\\\\ud800-\\\\udfff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])[\\\\ufe0e\\\\ufe0f]?(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?)*\",An=\"(?:[\\\\u2700-\\\\u27bf]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff])\"+mn,En=\"(?:[^\\\\ud800-\\\\udfff][\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]?|[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\ud800-\\\\udfff])\",kn=RegExp(\"['\\u2019]\",\"g\"),Sn=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\"),On=RegExp(\"\\\\ud83c[\\\\udffb-\\\\udfff](?=\\\\ud83c[\\\\udffb-\\\\udfff])|\"+En+mn,\"g\"),In=RegExp([\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|$)|(?:[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000]|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde](?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])|$)|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]?(?:[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]|[^\\\\ud800-\\\\udfff\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\\\\d+\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde])+(?:['\\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]+(?:['\\u2019](?:D|LL|M|RE|S|T|VE))?|\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])|\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])|\\\\d+\",An].join(\"|\"),\"g\"),Rn=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\"),zn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn=\"Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout\".split(\" \"),Bn={};\nBn[\"[object Float32Array]\"]=Bn[\"[object Float64Array]\"]=Bn[\"[object Int8Array]\"]=Bn[\"[object Int16Array]\"]=Bn[\"[object Int32Array]\"]=Bn[\"[object Uint8Array]\"]=Bn[\"[object Uint8ClampedArray]\"]=Bn[\"[object Uint16Array]\"]=Bn[\"[object Uint32Array]\"]=true,Bn[\"[object Arguments]\"]=Bn[\"[object Array]\"]=Bn[\"[object ArrayBuffer]\"]=Bn[\"[object Boolean]\"]=Bn[\"[object DataView]\"]=Bn[\"[object Date]\"]=Bn[\"[object Error]\"]=Bn[\"[object Function]\"]=Bn[\"[object Map]\"]=Bn[\"[object Number]\"]=Bn[\"[object Object]\"]=Bn[\"[object RegExp]\"]=Bn[\"[object Set]\"]=Bn[\"[object String]\"]=Bn[\"[object WeakMap]\"]=false;\nvar Ln={};Ln[\"[object Arguments]\"]=Ln[\"[object Array]\"]=Ln[\"[object ArrayBuffer]\"]=Ln[\"[object DataView]\"]=Ln[\"[object Boolean]\"]=Ln[\"[object Date]\"]=Ln[\"[object Float32Array]\"]=Ln[\"[object Float64Array]\"]=Ln[\"[object Int8Array]\"]=Ln[\"[object Int16Array]\"]=Ln[\"[object Int32Array]\"]=Ln[\"[object Map]\"]=Ln[\"[object Number]\"]=Ln[\"[object Object]\"]=Ln[\"[object RegExp]\"]=Ln[\"[object Set]\"]=Ln[\"[object String]\"]=Ln[\"[object Symbol]\"]=Ln[\"[object Uint8Array]\"]=Ln[\"[object Uint8ClampedArray]\"]=Ln[\"[object Uint16Array]\"]=Ln[\"[object Uint32Array]\"]=true,\nLn[\"[object Error]\"]=Ln[\"[object Function]\"]=Ln[\"[object WeakMap]\"]=false;var Un={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Cn=parseFloat,Dn=parseInt,Mn=typeof global==\"object\"&&global&&global.Object===Object&&global,Tn=typeof self==\"object\"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function(\"return this\")(),Fn=typeof exports==\"object\"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module==\"object\"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){\ntry{var n=Nn&&Nn.f&&Nn.f(\"util\").types;return n?n:Zn&&Zn.binding&&Zn.binding(\"util\")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b(\"length\"),Xn=x({\"\\xc0\":\"A\",\"\\xc1\":\"A\",\"\\xc2\":\"A\",\"\\xc3\":\"A\",\"\\xc4\":\"A\",\"\\xc5\":\"A\",\"\\xe0\":\"a\",\"\\xe1\":\"a\",\"\\xe2\":\"a\",\"\\xe3\":\"a\",\"\\xe4\":\"a\",\"\\xe5\":\"a\",\"\\xc7\":\"C\",\"\\xe7\":\"c\",\"\\xd0\":\"D\",\"\\xf0\":\"d\",\"\\xc8\":\"E\",\"\\xc9\":\"E\",\"\\xca\":\"E\",\"\\xcb\":\"E\",\"\\xe8\":\"e\",\"\\xe9\":\"e\",\"\\xea\":\"e\",\"\\xeb\":\"e\",\"\\xcc\":\"I\",\n\"\\xcd\":\"I\",\"\\xce\":\"I\",\"\\xcf\":\"I\",\"\\xec\":\"i\",\"\\xed\":\"i\",\"\\xee\":\"i\",\"\\xef\":\"i\",\"\\xd1\":\"N\",\"\\xf1\":\"n\",\"\\xd2\":\"O\",\"\\xd3\":\"O\",\"\\xd4\":\"O\",\"\\xd5\":\"O\",\"\\xd6\":\"O\",\"\\xd8\":\"O\",\"\\xf2\":\"o\",\"\\xf3\":\"o\",\"\\xf4\":\"o\",\"\\xf5\":\"o\",\"\\xf6\":\"o\",\"\\xf8\":\"o\",\"\\xd9\":\"U\",\"\\xda\":\"U\",\"\\xdb\":\"U\",\"\\xdc\":\"U\",\"\\xf9\":\"u\",\"\\xfa\":\"u\",\"\\xfb\":\"u\",\"\\xfc\":\"u\",\"\\xdd\":\"Y\",\"\\xfd\":\"y\",\"\\xff\":\"y\",\"\\xc6\":\"Ae\",\"\\xe6\":\"ae\",\"\\xde\":\"Th\",\"\\xfe\":\"th\",\"\\xdf\":\"ss\",\"\\u0100\":\"A\",\"\\u0102\":\"A\",\"\\u0104\":\"A\",\"\\u0101\":\"a\",\"\\u0103\":\"a\",\"\\u0105\":\"a\",\"\\u0106\":\"C\",\n\"\\u0108\":\"C\",\"\\u010a\":\"C\",\"\\u010c\":\"C\",\"\\u0107\":\"c\",\"\\u0109\":\"c\",\"\\u010b\":\"c\",\"\\u010d\":\"c\",\"\\u010e\":\"D\",\"\\u0110\":\"D\",\"\\u010f\":\"d\",\"\\u0111\":\"d\",\"\\u0112\":\"E\",\"\\u0114\":\"E\",\"\\u0116\":\"E\",\"\\u0118\":\"E\",\"\\u011a\":\"E\",\"\\u0113\":\"e\",\"\\u0115\":\"e\",\"\\u0117\":\"e\",\"\\u0119\":\"e\",\"\\u011b\":\"e\",\"\\u011c\":\"G\",\"\\u011e\":\"G\",\"\\u0120\":\"G\",\"\\u0122\":\"G\",\"\\u011d\":\"g\",\"\\u011f\":\"g\",\"\\u0121\":\"g\",\"\\u0123\":\"g\",\"\\u0124\":\"H\",\"\\u0126\":\"H\",\"\\u0125\":\"h\",\"\\u0127\":\"h\",\"\\u0128\":\"I\",\"\\u012a\":\"I\",\"\\u012c\":\"I\",\"\\u012e\":\"I\",\"\\u0130\":\"I\",\"\\u0129\":\"i\",\n\"\\u012b\":\"i\",\"\\u012d\":\"i\",\"\\u012f\":\"i\",\"\\u0131\":\"i\",\"\\u0134\":\"J\",\"\\u0135\":\"j\",\"\\u0136\":\"K\",\"\\u0137\":\"k\",\"\\u0138\":\"k\",\"\\u0139\":\"L\",\"\\u013b\":\"L\",\"\\u013d\":\"L\",\"\\u013f\":\"L\",\"\\u0141\":\"L\",\"\\u013a\":\"l\",\"\\u013c\":\"l\",\"\\u013e\":\"l\",\"\\u0140\":\"l\",\"\\u0142\":\"l\",\"\\u0143\":\"N\",\"\\u0145\":\"N\",\"\\u0147\":\"N\",\"\\u014a\":\"N\",\"\\u0144\":\"n\",\"\\u0146\":\"n\",\"\\u0148\":\"n\",\"\\u014b\":\"n\",\"\\u014c\":\"O\",\"\\u014e\":\"O\",\"\\u0150\":\"O\",\"\\u014d\":\"o\",\"\\u014f\":\"o\",\"\\u0151\":\"o\",\"\\u0154\":\"R\",\"\\u0156\":\"R\",\"\\u0158\":\"R\",\"\\u0155\":\"r\",\"\\u0157\":\"r\",\"\\u0159\":\"r\",\n\"\\u015a\":\"S\",\"\\u015c\":\"S\",\"\\u015e\":\"S\",\"\\u0160\":\"S\",\"\\u015b\":\"s\",\"\\u015d\":\"s\",\"\\u015f\":\"s\",\"\\u0161\":\"s\",\"\\u0162\":\"T\",\"\\u0164\":\"T\",\"\\u0166\":\"T\",\"\\u0163\":\"t\",\"\\u0165\":\"t\",\"\\u0167\":\"t\",\"\\u0168\":\"U\",\"\\u016a\":\"U\",\"\\u016c\":\"U\",\"\\u016e\":\"U\",\"\\u0170\":\"U\",\"\\u0172\":\"U\",\"\\u0169\":\"u\",\"\\u016b\":\"u\",\"\\u016d\":\"u\",\"\\u016f\":\"u\",\"\\u0171\":\"u\",\"\\u0173\":\"u\",\"\\u0174\":\"W\",\"\\u0175\":\"w\",\"\\u0176\":\"Y\",\"\\u0177\":\"y\",\"\\u0178\":\"Y\",\"\\u0179\":\"Z\",\"\\u017b\":\"Z\",\"\\u017d\":\"Z\",\"\\u017a\":\"z\",\"\\u017c\":\"z\",\"\\u017e\":\"z\",\"\\u0132\":\"IJ\",\"\\u0133\":\"ij\",\n\"\\u0152\":\"Oe\",\"\\u0153\":\"oe\",\"\\u0149\":\"'n\",\"\\u017f\":\"s\"}),nt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"}),tt=x({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"}),rt=function x(mn){function An(n){if(du(n)&&!of(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(ii.call(n,\"__wrapped__\"))return $e(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n,\nthis.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!gu(n))return n;if(u=of(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=_o(n),h=\"[object Function]\"==s||\"[object GeneratorFunction]\"==s;if(cf(n))return Ir(n,c);if(\"[object Object]\"==s||\"[object Arguments]\"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn),\ni=o.get(n))return i;if(o.set(n,f),hf(n))return n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}),f;if(lf(n))return n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))}),f;var a=l?a?ve:_e:a?Wu:zu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=zu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Yu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!=\"function\")throw new ni(\"Expected a function\");\nreturn yo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&ii.call(n,t)}function zt(n,t){return null!=n&&t in Yu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Vu(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ui(p.length,s),\nl[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[De(qe(r))],null==r?T:n(r,t,e)}function Ut(n){return du(n)&&\"[object Arguments]\"==Ot(n)}function Ct(n){\nreturn du(n)&&\"[object ArrayBuffer]\"==Ot(n)}function Dt(n){return du(n)&&\"[object Date]\"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!du(n)&&!du(t))t=n!==n&&t!==t;else n:{var i=of(n),o=of(t),f=i?\"[object Array]\":_o(n),c=o?\"[object Array]\":_o(t),f=\"[object Arguments]\"==f?\"[object Object]\":f,c=\"[object Arguments]\"==c?\"[object Object]\":c,a=\"[object Object]\"==f,o=\"[object Object]\"==c;if((c=f==c)&&cf(n)){if(!cf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||pf(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{\nif(!(1&r)&&(i=a&&ii.call(n,\"__wrapped__\"),f=o&&ii.call(t,\"__wrapped__\"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ii.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[Tu],k(ye())),\nn=Gt(n,function(n){return{a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*(\"desc\"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return Ru(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Vu(u);++e=u){for(;e>>1,o=n[i];null!==o&&!ju(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[De(qe(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Vu(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=vi?vi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new _i(t).set(new _i(n)),\nt}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=ju(n),o=t!==T,f=null===t,c=t===t,a=ju(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Yu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a),\no-=c.length,or?r?or(t,n):t:(r=or(t,Si(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(\"\"):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Vu(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],\"__lodash_placeholder__\"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],\"__lodash_placeholder__\"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ui(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],\nr=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Li(i[9]-a,0),!f&&24&t&&(t&=-25),Le((h?fo:go)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||au(n,ri[r])&&!ii.call(e,r)?t:n}function ae(n,t,r,e,u,i){return gu(n)&&gu(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return bu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new Nn:T;\nfor(i.set(n,t),i.set(t,n);++cr&&(r=Li(e+r,0)),_(n,ye(t,3),r)):-1}function Ne(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Au(r),u=0>r?Li(e+u,0):Ui(u,e-1)),_(n,ye(t,3),u,true)}function Pe(n){return(null==n?0:n.length)?wt(n,1):[]}function Ze(n){\nreturn n&&n.length?n[0]:T}function qe(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ve(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ke(n){return null==n?n:Ti.call(n)}function Ge(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(su(n))return t=Li(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function He(t,r){if(!t||!t.length)return[];var e=Ge(t);return null==r?e:c(e,function(t){return n(r,T,t)})}function Je(n){return n=An(n),n.__chain__=true,n}function Ye(n,t){\nreturn t(n)}function Qe(){return this}function Xe(n,t){return(of(n)?r:eo)(n,ye(t,3))}function nu(n,t){return(of(n)?e:uo)(n,ye(t,3))}function tu(n,t){return(of(n)?c:Gt)(n,ye(t,3))}function ru(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function eu(n,t){var r;if(typeof t!=\"function\")throw new ni(\"Expected a function\");return n=Au(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T),r}}function uu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=uu.placeholder,\nn}function iu(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Ko();if(u(n))return o(n);var r,e=yo;r=n-_,n=t-(n-p),r=g?Ui(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Ko(),r=u(n);if(c=arguments,a=this,p=n,r){if(h===T)return _=n=p,h=yo(i,t),v?e(n):s;if(g)return h=yo(i,t),e(p)}return h===T&&(h=yo(i,t)),\ns}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return t=ku(t)||0,gu(r)&&(v=!!r.leading,l=(g=\"maxWait\"in r)?Li(ku(r.maxWait)||0,t):l,d=\"trailing\"in r?!!r.trailing:d),f.cancel=function(){h!==T&&ao(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Ko())},f}function fu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!=\"function\"||null!=t&&typeof t!=\"function\")throw new ni(\"Expected a function\");\nreturn r.cache=new(fu.Cache||Fn),r}function cu(n){if(typeof n!=\"function\")throw new ni(\"Expected a function\");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function au(n,t){return n===t||n!==n&&t!==t}function lu(n){return null!=n&&vu(n.length)&&!pu(n)}function su(n){return du(n)&&lu(n)}function hu(n){if(!du(n))return false;var t=Ot(n);return\"[object Error]\"==t||\"[object DOMException]\"==t||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!bu(n);\n}function pu(n){return!!gu(n)&&(n=Ot(n),\"[object Function]\"==n||\"[object GeneratorFunction]\"==n||\"[object AsyncFunction]\"==n||\"[object Proxy]\"==n)}function _u(n){return typeof n==\"number\"&&n==Au(n)}function vu(n){return typeof n==\"number\"&&-1=n}function gu(n){var t=typeof n;return null!=n&&(\"object\"==t||\"function\"==t)}function du(n){return null!=n&&typeof n==\"object\"}function yu(n){return typeof n==\"number\"||du(n)&&\"[object Number]\"==Ot(n)}function bu(n){return!(!du(n)||\"[object Object]\"!=Ot(n))&&(n=gi(n),\nnull===n||(n=ii.call(n,\"constructor\")&&n.constructor,typeof n==\"function\"&&n instanceof n&&ui.call(n)==ai))}function xu(n){return typeof n==\"string\"||!of(n)&&du(n)&&\"[object String]\"==Ot(n)}function ju(n){return typeof n==\"symbol\"||du(n)&&\"[object Symbol]\"==Ot(n)}function wu(n){if(!n)return[];if(lu(n))return xu(n)?M(n):Ur(n);if(ji&&n[ji]){n=n[ji]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=_o(n),(\"[object Map]\"==t?W:\"[object Set]\"==t?U:Lu)(n)}function mu(n){return n?(n=ku(n),\nn===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Au(n){n=mu(n);var t=n%1;return n===n?t?n-t:n:0}function Eu(n){return n?pt(Au(n),0,4294967295):0}function ku(n){if(typeof n==\"number\")return n;if(ju(n))return F;if(gu(n)&&(n=typeof n.valueOf==\"function\"?n.valueOf():n,n=gu(n)?n+\"\":n),typeof n!=\"string\")return 0===n?n:+n;n=n.replace(un,\"\");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Su(n){return Cr(n,Wu(n))}function Ou(n){return null==n?\"\":yr(n);\n}function Iu(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function Ru(n,t){return null!=n&&we(n,t,zt)}function zu(n){return lu(n)?qn(n):Vt(n)}function Wu(n){if(lu(n))n=qn(n,true);else if(gu(n)){var t,r=ze(n),e=[];for(t in n)(\"constructor\"!=t||!r&&ii.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in Yu(n))t.push(r);n=t}return n}function Bu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Lu(n){return null==n?[]:S(n,zu(n));\n}function Uu(n){return Tf(Ou(n).toLowerCase())}function Cu(n){return(n=Ou(n))&&n.replace(xn,Xn).replace(Sn,\"\")}function Du(n,t,r){return n=Ou(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Mu(n){return function(){return n}}function Tu(n){return n}function $u(n){return qt(typeof n==\"function\"?n:_t(n,1))}function Fu(n,t,e){var u=zu(t),i=Et(t,u);null!=e||gu(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,zu(t)));var o=!(gu(e)&&\"chain\"in e&&!e.chain),f=pu(n);return r(i,function(r){\nvar e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Nu(){}function Pu(n){return Ie(n)?b(De(n)):rr(n)}function Zu(){return[]}function qu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Vu=mn.Array,Ku=mn.Date,Gu=mn.Error,Hu=mn.Function,Ju=mn.Math,Yu=mn.Object,Qu=mn.RegExp,Xu=mn.String,ni=mn.TypeError,ti=Vu.prototype,ri=Yu.prototype,ei=mn[\"__core-js_shared__\"],ui=Hu.prototype.toString,ii=ri.hasOwnProperty,oi=0,fi=function(){\nvar n=/[^.]+$/.exec(ei&&ei.keys&&ei.keys.IE_PROTO||\"\");return n?\"Symbol(src)_1.\"+n:\"\"}(),ci=ri.toString,ai=ui.call(Yu),li=$n._,si=Qu(\"^\"+ui.call(ii).replace(rn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),hi=Pn?mn.Buffer:T,pi=mn.Symbol,_i=mn.Uint8Array,vi=hi?hi.g:T,gi=B(Yu.getPrototypeOf,Yu),di=Yu.create,yi=ri.propertyIsEnumerable,bi=ti.splice,xi=pi?pi.isConcatSpreadable:T,ji=pi?pi.iterator:T,wi=pi?pi.toStringTag:T,mi=function(){try{var n=je(Yu,\"defineProperty\");\nreturn n({},\"\",{}),n}catch(n){}}(),Ai=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,Ei=Ku&&Ku.now!==$n.Date.now&&Ku.now,ki=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Si=Ju.ceil,Oi=Ju.floor,Ii=Yu.getOwnPropertySymbols,Ri=hi?hi.isBuffer:T,zi=mn.isFinite,Wi=ti.join,Bi=B(Yu.keys,Yu),Li=Ju.max,Ui=Ju.min,Ci=Ku.now,Di=mn.parseInt,Mi=Ju.random,Ti=ti.reverse,$i=je(mn,\"DataView\"),Fi=je(mn,\"Map\"),Ni=je(mn,\"Promise\"),Pi=je(mn,\"Set\"),Zi=je(mn,\"WeakMap\"),qi=je(Yu,\"create\"),Vi=Zi&&new Zi,Ki={},Gi=Me($i),Hi=Me(Fi),Ji=Me(Ni),Yi=Me(Pi),Qi=Me(Zi),Xi=pi?pi.prototype:T,no=Xi?Xi.valueOf:T,to=Xi?Xi.toString:T,ro=function(){\nfunction n(){}return function(t){return gu(t)?di?di(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:\"\",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=ro(En.prototype),On.prototype.constructor=On,Un.prototype=ro(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=qi?qi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],\nthis.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return qi?(n=t[n],\"__lodash_hash_undefined__\"===n?T:n):ii.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return qi?t[n]!==T:ii.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=qi&&t===T?\"__lodash_hash_undefined__\":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():bi.call(t,n,1),\n--this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Fi||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n);\n},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){\nreturn this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Fi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var eo=Fr(mt),uo=Fr(At,true),io=Nr(),oo=Nr(true),fo=Vi?function(n,t){return Vi.set(n,t),n}:Tu,co=mi?function(n,t){return mi(n,\"toString\",{configurable:true,enumerable:false,value:Mu(t),writable:true})}:Tu,ao=Ai||function(n){\nreturn $n.clearTimeout(n)},lo=Pi&&1/U(new Pi([,-0]))[1]==$?function(n){return new Pi(n)}:Nu,so=Vi?function(n){return Vi.get(n)}:Nu,ho=Ii?function(n){return null==n?[]:(n=Yu(n),i(Ii(n),function(t){return yi.call(n,t)}))}:Zu,po=Ii?function(n){for(var t=[];n;)a(t,ho(n)),n=gi(n);return t}:Zu,_o=Ot;($i&&\"[object DataView]\"!=_o(new $i(new ArrayBuffer(1)))||Fi&&\"[object Map]\"!=_o(new Fi)||Ni&&\"[object Promise]\"!=_o(Ni.resolve())||Pi&&\"[object Set]\"!=_o(new Pi)||Zi&&\"[object WeakMap]\"!=_o(new Zi))&&(_o=function(n){\nvar t=Ot(n);if(n=(n=\"[object Object]\"==t?n.constructor:T)?Me(n):\"\")switch(n){case Gi:return\"[object DataView]\";case Hi:return\"[object Map]\";case Ji:return\"[object Promise]\";case Yi:return\"[object Set]\";case Qi:return\"[object WeakMap]\"}return t});var vo=ei?pu:qu,go=Ue(fo),yo=ki||function(n,t){return $n.setTimeout(n,t)},bo=Ue(co),xo=function(n){n=fu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(\"\"),n.replace(tn,function(n,r,e,u){\nt.push(e?u.replace(hn,\"$1\"):r||n)}),t}),jo=fr(function(n,t){return su(n)?yt(n,wt(t,1,su,true)):[]}),wo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),ye(r,2)):[]}),mo=fr(function(n,t){var r=qe(t);return su(r)&&(r=T),su(n)?yt(n,wt(t,1,su,true),T,r):[]}),Ao=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),Eo=fr(function(n){var t=qe(n),r=c(n,Er);return t===qe(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),ko=fr(function(n){var t=qe(n),r=c(n,Er);return(t=typeof t==\"function\"?t:T)&&r.pop(),\nr.length&&r[0]===n[0]?Wt(r,T,t):[]}),So=fr(Ve),Oo=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Io=fr(function(n){return br(wt(n,1,su,true))}),Ro=fr(function(n){var t=qe(n);return su(t)&&(t=T),br(wt(n,1,su,true),ye(t,2))}),zo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return br(wt(n,1,su,true),T,t)}),Wo=fr(function(n,t){return su(n)?yt(n,t):[]}),Bo=fr(function(n){return mr(i(n,su))}),Lo=fr(function(n){var t=qe(n);return su(t)&&(t=T),\nmr(i(n,su),ye(t,2))}),Uo=fr(function(n){var t=qe(n),t=typeof t==\"function\"?t:T;return mr(i(n,su),T,t)}),Co=fr(Ge),Do=fr(function(n){var t=n.length,t=1=t}),uf=Ut(function(){return arguments}())?Ut:function(n){return du(n)&&ii.call(n,\"callee\")&&!yi.call(n,\"callee\")},of=Vu.isArray,ff=Vn?k(Vn):Ct,cf=Ri||qu,af=Kn?k(Kn):Dt,lf=Gn?k(Gn):Tt,sf=Hn?k(Hn):Nt,hf=Jn?k(Jn):Pt,pf=Yn?k(Yn):Zt,_f=ee(Kt),vf=ee(function(n,t){return n<=t}),gf=$r(function(n,t){\nif(ze(t)||lu(t))Cr(t,zu(t),n);else for(var r in t)ii.call(t,r)&&ot(n,r,t[r])}),df=$r(function(n,t){Cr(t,Wu(t),n)}),yf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),bf=$r(function(n,t,r,e){Cr(t,zu(t),n,e)}),xf=pe(ht),jf=fr(function(n,t){n=Yu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=ru,An.assign=gf,An.assignIn=df,An.assignInWith=yf,An.assignWith=bf,An.at=xf,An.before=eu,An.bind=Go,An.bindAll=Ff,An.bindKey=Ho,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return of(n)?n:[n]},An.chain=Je,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Li(Au(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Vu(Si(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[];\n},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!=\"number\"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Au(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Au(e),0>e&&(e+=u),e=r>e?0:Eu(e);r>>0,r?(n=Ou(n))&&(typeof t==\"string\"||null!=t&&!sf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!=\"function\")throw new ni(\"Expected a function\");return r=null==r?0:Li(Au(r),0),\nfr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Au(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Au(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n),\nn},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!=\"function\")throw new ni(\"Expected a function\");return gu(r)&&(e=\"leading\"in r?!!r.leading:e,u=\"trailing\"in r?!!r.trailing:u),ou(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Ye,An.toArray=wu,An.toPairs=Rf,An.toPairsIn=zf,An.toPath=function(n){return of(n)?c(n,De):ju(n)?[n]:Ur(xo(Ou(n)))},An.toPlainObject=Su,An.transform=function(n,t,e){var u=of(n),i=u||cf(n)||pf(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:gu(n)&&pu(o)?ro(gi(n)):{};\n}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return ru(n,1)},An.union=Io,An.unionBy=Ro,An.unionWith=zo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t==\"function\"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=Ge,An.unzipWith=He,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){\nreturn e=typeof e==\"function\"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Lu,An.valuesIn=function(n){return null==n?[]:S(n,Wu(n))},An.without=Wo,An.words=Du,An.wrap=function(n,t){return Xo(kr(t),n)},An.xor=Bo,An.xorBy=Lo,An.xorWith=Uo,An.zip=Co,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Do,An.entries=Rf,An.entriesIn=zf,An.extend=df,An.extendWith=yf,Fu(An,An),An.add=Yf,An.attempt=$f,An.camelCase=Wf,An.capitalize=Uu,\nAn.ceil=Qf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=ku(r),r=r===r?r:0),t!==T&&(t=ku(t),t=t===t?t:0),pt(ku(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t==\"function\"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,zu(t))},An.deburr=Cu,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=Xf,An.endsWith=function(n,t,r){\nn=Ou(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Au(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=au,An.escape=function(n){return(n=Ou(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Ou(n))&&en.test(n)?n.replace(rn,\"\\\\$&\"):n},An.every=function(n,t,r){var e=of(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=$o,An.findIndex=Fe,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=Fo,An.findLastIndex=Ne,An.findLastKey=function(n,t){return p(n,ye(t,3),At);\n},An.floor=nc,An.forEach=Xe,An.forEachRight=nu,An.forIn=function(n,t){return null==n?n:io(n,ye(t,3),Wu)},An.forInRight=function(n,t){return null==n?n:oo(n,ye(t,3),Wu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Iu,An.gt=rf,An.gte=ef,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=Ru,An.head=Ze,An.identity=Tu,An.includes=function(n,t,r,e){return n=lu(n)?n:Lu(n),r=r&&!e?Au(r):0,e=n.length,0>r&&(r=Li(e+r,0)),xu(n)?r<=e&&-1r&&(r=Li(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=mu(t),r===T?(r=t,t=0):r=mu(r),n=ku(n),n>=Ui(t,r)&&n=n},An.isSet=hf,An.isString=xu,An.isSymbol=ju,An.isTypedArray=pf,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return du(n)&&\"[object WeakMap]\"==_o(n)},An.isWeakSet=function(n){return du(n)&&\"[object WeakSet]\"==Ot(n)},An.join=function(n,t){return null==n?\"\":Wi.call(n,t)},An.kebabCase=Bf,An.last=qe,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Au(r),u=0>u?Li(e+u,0):Ui(u,e-1)),\nt===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Lf,An.lowerFirst=Uf,An.lt=_f,An.lte=vf,An.max=function(n){return n&&n.length?xt(n,Tu,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,Tu)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,Tu,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=Zu,An.stubFalse=qu,An.stubObject=function(){return{}},An.stubString=function(){\nreturn\"\"},An.stubTrue=function(){return true},An.multiply=tc,An.nth=function(n,t){return n&&n.length?Qt(n,Au(t)):T},An.noConflict=function(){return $n._===this&&($n._=li),this},An.noop=Nu,An.now=Ko,An.pad=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Oi(t),r)+n+ne(Si(t),r))},An.padEnd=function(n,t,r){n=Ou(n);var e=(t=Au(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Mi(),Ui(n+r*(t-n+Cn(\"1e-\"+((r+\"\").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=of(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,eo)},An.reduceRight=function(n,t,r){var e=of(n)?s:j,u=3>arguments.length;\nreturn e(n,ye(t,4),r,u,uo)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Au(t),or(Ou(n),t)},An.replace=function(){var n=arguments,t=Ou(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(\"\"):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),sf(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=Qu(u.source,Ou(_n.exec(u))+\"g\")),\nu.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?\"Right\":\"\")}),e},Un.prototype[n+\"Right\"]=function(t){return this.reverse()[n](t).reverse()}}),r([\"filter\",\"map\",\"takeWhile\"],function(n,t){var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({\niteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r([\"head\",\"last\"],function(n,t){var r=\"take\"+(t?\"Right\":\"\");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r([\"initial\",\"tail\"],function(n,t){var r=\"drop\"+(t?\"\":\"Right\");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter(Tu)},Un.prototype.find=function(n){return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n);\n},Un.prototype.invokeMap=fr(function(n,t){return typeof n==\"function\"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(cu(ye(n)))},Un.prototype.slice=function(n,t){n=Au(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Au(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295);\n},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?\"take\"+(\"last\"==t?\"Right\":\"\"):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||of(o);s&&r&&typeof l==\"function\"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p;return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({\nfunc:Ye,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r(\"pop push shift sort splice unshift\".split(\" \"),function(n){var t=ti[n],r=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(of(u)?u:[],n)}return this[r](function(r){return t.apply(of(r)?r:[],n)})}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+\"\";\n(Ki[e]||(Ki[e]=[])).push({name:t,func:r})}}),Ki[Jr(T,2).name]=[{name:\"wrapper\",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n;\n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=of(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){for(var t,r=this;r instanceof En;){\nvar e=$e(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Ye,args:[Ke],thisArg:T}),new On(n,this.__chain__)):this.thru(Ke)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head,ji&&(An.prototype[ji]=Qe),\nAn}();typeof define==\"function\"&&typeof define.amd==\"object\"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this);\n"],"mappings":"AACA;;;;ACGA","sourceRoot":""} \ No newline at end of file From 7655ed0306992924e180c531a5bcc4be081aa4fb Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Wed, 6 Jun 2018 10:08:38 -0700 Subject: [PATCH 21/24] Code review recommendations. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eed5eb..af26c88 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ In Huron, everything is a "prototype" (even a style guide). Unlike previous vers ## Using CSS Modules If you're using CSS modules in your production site, it makes sense to also use it when developing in-browser prototypes. Huron supports usage of certain CSS modules implementations (specifically any that is capable of producing JSON output containing localized classes). All that's needed in order to configure this is the `classNames` configuration property, more details for which are in the [configuration docs](src/default-config/README.md). -Once you have that set up, all classes will be be provided to every template. These classes are available on a `classNames` object, under which all classes are nested and organized by filename. For example, if your build produces two JSON files for localized classes called `article.json` and `home.json`, you can access those classes in your huron templates via `classNames.article[className]` and `classNames.home[className]` respectively. +Once you have that set up, all classes within the provided JSON file will be be provided to every template on a global classNames object. Because huron only accepts a single classnames file, the recommended approach is to nest classnames under top-level keys corresponding to component names. For example, if you have article and newsletter components, set up your JSON output so you can access classes for those components in your huron templates via `classNames.article[className]` and `classNames.newsletter[className]` respectively. A sample of how to set this up can be found in the [`huron-examples` repo](https://github.com/alleyinteractive/huron-examples). (Note: Needs to be updated to show a filepath and not a directory). From 141a76cb4cd9746eee4e9dca3d21c6d9171c3dc1 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Wed, 6 Jun 2018 10:09:11 -0700 Subject: [PATCH 22/24] Remove commented line. --- src/cli/fileWatcher.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cli/fileWatcher.js b/src/cli/fileWatcher.js index e122bb1..fd2cccd 100644 --- a/src/cli/fileWatcher.js +++ b/src/cli/fileWatcher.js @@ -32,7 +32,6 @@ watchedFiles.push(path.resolve(huron.get('sectionTemplate'))); // Watch cssmodules classname files (if they exist) if (huron.get('classNames')) { watchedFiles.push( - // `${path.resolve(huron.get('classNames'))}/*.json` path.resolve(huron.get('classNames')) ); } From fc992726a7e1fb14d58a53c94ab8b9dcff5452d3 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Wed, 6 Jun 2018 10:10:50 -0700 Subject: [PATCH 23/24] Update documentation. --- src/cli/utils.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cli/utils.js b/src/cli/utils.js index 5680c01..e24fbee 100644 --- a/src/cli/utils.js +++ b/src/cli/utils.js @@ -312,8 +312,7 @@ export function matchKssDir(filepath, huron) { * @function getClassnamesFromJSON * @param {string} filepath - file containing classname JSON files * - * @return {object} merged classnames. contents of each JSON file is nested within - * the returned object by filename. (e.g. article.json -> { article: {...json contents}}) + * @return {object} contents of classnames JSON file */ export function getClassnamesFromJSON(filepath) { const fileInfo = path.parse(filepath); From bc0c41c1717a592529b94225e51443bd0d7cfb85 Mon Sep 17 00:00:00 2001 From: Pattie Reaves Date: Wed, 6 Jun 2018 10:13:54 -0700 Subject: [PATCH 24/24] Make this sound like a normal human wrote it. --- src/defaultConfig/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/defaultConfig/README.md b/src/defaultConfig/README.md index 869e57d..d6c29d8 100644 --- a/src/defaultConfig/README.md +++ b/src/defaultConfig/README.md @@ -27,7 +27,7 @@ Object containing options to pass through to KSS-node. I can't find a good sourc * **prototypes** {array} : default `['index']` - Array of prototypes to generate via HTML webpack plugin. For each array entry you can either pass in a single string corresponding to the title of the prototype, or an object containing option overrides for HTML webpack plugin [(configuration)](https://github.com/ampedandwired/html-webpack-plugin). If you use an object, you must at least provide a `title` field. The title field, whether passed in as a string or the `title` property value, must be the same name as your prototype file located in your `prototypes` directory. So for example, if you provided `['homepage']` in the prototypes option, you would need to have a `prototypes/prototype-homepage.html` file in order for the prototype to display correctly. * **root** {string} : default `'dist/'` - Root directory for `webpack-dev-server`. All static assets you need for your prototype(s) should be located in this directory. The `output` option should be relative to this path. * **sectionTemplate** {string} : default `path.join(__dirname, '../templates/section.hbs')` - Override for the template used to produce styleguide sections. This should always be a handlebars file, and will utilize the KSS data as its source. -* **classNames** {string} : For use with CSS Modules. This option should point to a filepath with JSON files containing localized classnames. NOTE: at the moment this will only work a CSS Modules implementation that produces JSON output, like `postcss-modules`. The CSS modules implementation offered by the `modules` option in `css-loader` currently will not work. +* **classNames** {string} : For use with CSS Modules. This option should point to a JSON file containing localized classnames. NOTE: at the moment this will only work a CSS Modules implementation that produces JSON output, like `postcss-modules`. The CSS modules implementation offered by the `modules` option in `css-loader` currently will not work. * **templates** {object} : default ```javascript