├── .editorconfig ├── .gitignore ├── .travis.yml ├── README.md ├── package.json ├── src └── ts │ ├── cli.ts │ ├── command │ ├── build.ts │ ├── bundle.ts │ └── index.ts │ ├── helper │ ├── index.ts │ └── logger.ts │ ├── index.ts │ ├── netlify.ts │ └── utility │ ├── config.ts │ ├── index.ts │ ├── server.ts │ └── webpack.ts ├── test ├── assets │ ├── netlify-no-context.toml │ ├── netlify.toml │ └── webpack.config.js ├── ts │ ├── config.ts │ └── server.ts └── tsconfig.json ├── tsconfig.json ├── tslint.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | end_of_line = lf 4 | insert_final_newline = true 5 | indent_style = space 6 | tab_width = 2 7 | continuation_indent_size = 4 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - 'stable' 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Netlify Local 2 | 3 | [![Travis CI badge](https://travis-ci.org/8eecf0d2/netlify-local.svg?branch=master)](https://travis-ci.org/8eecf0d2/netlify-local) 4 | [![Codeclimate maintainability](https://img.shields.io/codeclimate/maintainability-percentage/8eecf0d2/netlify-local.svg)](https://codeclimate.com/github/8eecf0d2/netlify-local) 5 | [![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=8eecf0d2/netlify-local)](https://dependabot.com) 6 | 7 | Local Netlify service emulation. 8 | 9 | **Experimental:** This package has not been heavily tested or used, some of the Netlify Services are incorrectly implemented. [Submit an issue](https://github.com/8eecf0d2/netlify-local/issues) if you find any! 10 | 11 | **Semver Notice:** Breaking changes which increase compatibility with Netlify services and features are not considered breaking 🤷‍♂️ 12 | 13 | For help bundling your Javascript to work with Netlify Functions, checkout [netlify/netlify-lambda](https://github.com/netlify/netlify-lambda) or [8eecf0d2/webpack-netlify-lambda-plugin](https://github.com/8eecf0d2/webpack-netlify-lambda-plugin). 14 | 15 | An example Netlify deployable application is available at [8eecf0d2/netlify-local-example](https://github.com/8eecf0d2/netlify-local-example). 16 | 17 | ### Install 18 | 19 | You should probably install as a dev dependency, but globally works too. 20 | ```bash 21 | yarn add -D netlify-local 22 | ``` 23 | 24 | ### Usage 25 | 26 | #### `serve` command 27 | The [**serve** command](https://github.com/8eecf0d2/netlify-local/wiki/Command-Serve) will attempt to emulate Netlify Services. 28 | ```bash 29 | netlify-local serve 30 | ``` 31 | 32 | #### `build` command 33 | The [**build** command](https://github.com/8eecf0d2/netlify-local/wiki/Command-Build) will attempt to correctly execute the `build.command` property within `netlify.toml`. 34 | ```bash 35 | netlify-local build 36 | ``` 37 | 38 | #### `bundle` command 39 | The [**bundle** command](https://github.com/8eecf0d2/netlify-local/wiki/Command-Bundle) will attempt to parse your `netlify.toml` and build a Webpack Configuration with the correct `entry` and `output` properties before running a Webpack compiler with the computed configuration. 40 | ```bash 41 | netlify-local bundle 42 | ``` 43 | 44 | #### Options 45 | You can view a detailed [list of options in the wiki](https://github.com/8eecf0d2/netlify-local/wiki/Options). 46 | 47 | ### Features 48 | 49 | #### Static Router 50 | The **static router** refers to the static server functionality of [Netlify Continuous Deployment](https://www.netlify.com/docs/continuous-deployment), which serves files from the `build.publish` directory, specified within the toml configuration. 51 | 52 | #### Lambda Router 53 | The **lambda router** refers to the [Netlify Functions](https://www.netlify.com/features/functions) feature which serves Lambda's or Cloud Functions from the `build.functions` directory, specified within the toml configuration. 54 | 55 | #### Redirects 56 | This feature refers to [Netlify Redirects](https://www.netlify.com/docs/netlify-toml-reference#redirects), this has not been correctly implemented and is missing a lot of functionality, see [Issue #8](https://github.com/8eecf0d2/netlify-local/issues/8) for progress. 57 | 58 | #### Headers 59 | This feature refers to [Netlify Headers](https://www.netlify.com/docs/netlify-toml-reference#headers), for the most part this works as expected however the [Netlify Basic Auth](https://www.netlify.com/docs/headers-and-basic-auth/#basic-auth) portion is not supported. 60 | 61 | ### API 62 | 63 | Specific classes and methods are exposed for running **netlify-local** programmatically, see [Issue #6](https://github.com/8eecf0d2/netlify-local/issues/6) for more information and documentation. 64 | 65 | ### Typings 66 | 67 | Relevant Typescript typings are exposed for the API and also Netlify Function handlers. 68 | ```ts 69 | import { Netlify } from "netlify-local"; 70 | 71 | export const handler: Netlify.Handler = (request, context, callback) => { 72 | 73 | return callback(null, { 74 | statusCode: 200, 75 | body: "foo" 76 | }) 77 | } 78 | 79 | export namespace handler { 80 | export interface Request extends Netlify.Handler.Request { 81 | headers: { 82 | example: string; 83 | } 84 | } 85 | export interface Context extends Netlify.Handler.Context { 86 | user: { ... } 87 | } 88 | export interface Response extends Netlify.Handler.Response { 89 | body: { ... }; 90 | } 91 | } 92 | ``` 93 | 94 | ### Webpack 95 | 96 | #### Multiple Configs 97 | If you use multiple Webpack configurations for your application (one for the client, another for lambda) you should set the [`name` property within the Webpack configuration](https://webpack.js.org/configuration/other-options#name) to get better logging, _otherwise config's will be named by their index._ 98 | 99 | #### Issues 100 | To correctly execute lambda's they must be self contained bundles, a common issue when bundled incorrectly is missing modules similar to the error below. 101 | 102 | ```bash 103 | Error: Cannot find module '/.../path/file' 104 | ``` 105 | 106 | To bundle your files correctly ensure that `module.exports.handler` is exposed for each handler file and that you're using individual entires within webpack. 107 | 108 | ```js 109 | module.exports = { 110 | target: "node", 111 | entry: { 112 | foo: "./src/ts/handlers/foo.ts", 113 | bar: "./src/ts/handlers/bar.ts", 114 | ... 115 | }, 116 | ... 117 | } 118 | ``` 119 | 120 | If you're starting a new project or not currently bundling, the easiest solution would be to use [netlify/netlify-lambda](https://github.com/netlify/netlify-lambda) and it's `build` command. 121 | 122 | If you've got a pre-existing webpack config I'd suggest using a webpack helper library such as [8eecf0d2/webpack-netlify-lambda-plugin](https://github.com/8eecf0d2/webpack-netlify-lambda-plugin). 123 | 124 | ### Credit 125 | 126 | This project is inspired by [netlify/netlify-lambda](https://github.com/netlify/netlify-lambda). 127 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "netlify-local", 3 | "version": "1.8.0", 4 | "description": "Local Netlify service emulation", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "bin": { 8 | "netlify-local": "dist/cli.js" 9 | }, 10 | "repository": "https://github.com/8eecf0d2/netlify-local.git", 11 | "author": "8eecf0d2 <8eecf0d23d248b0e6223b8a10ddbf1@gmail.com>", 12 | "license": "ISC", 13 | "scripts": { 14 | "watch": "tsc --project ./tsconfig.json --watch", 15 | "build": "tsc --project ./tsconfig.json", 16 | "pretest": "yarn run build", 17 | "test": "ts-mocha --project ./test/tsconfig.json test/**/*.ts", 18 | "lint": "tslint -c tslint.json src/**/*.ts" 19 | }, 20 | "devDependencies": { 21 | "@types/assert": "^1.4.0", 22 | "@types/body-parser": "^1.17.0", 23 | "@types/chalk": "^2.2.0", 24 | "@types/express": "^4.16.0", 25 | "@types/get-port": "^4.0.0", 26 | "@types/git-branch": "^2.0.0", 27 | "@types/jsonwebtoken": "^8.3.0", 28 | "@types/mocha": "^5.2.5", 29 | "@types/node": "^10.11.7", 30 | "@types/serve-static": "^1.13.2", 31 | "@types/webpack": "^4.4.16", 32 | "@types/webpack-hot-middleware": "^2.16.4", 33 | "assert": "^1.4.1", 34 | "mocha": "^5.2.0", 35 | "ts-mocha": "^2.0.0", 36 | "tslint": "^5.12.0", 37 | "typescript": "^3.1.3", 38 | "webpack-hot-middleware": "^2.24.3" 39 | }, 40 | "dependencies": { 41 | "body-parser": "^1.18.3", 42 | "chalk": "^2.4.1", 43 | "commander": "^2.19.0", 44 | "express": "^4.16.4", 45 | "express-http-proxy": "^1.4.0", 46 | "get-port": "^4.0.0", 47 | "git-branch": "^2.0.1", 48 | "jsonwebtoken": "^8.3.0", 49 | "serve-static": "^1.13.2", 50 | "toml": "^3.0.0", 51 | "url-pattern": "^1.0.3", 52 | "webpack": "^4.20.2" 53 | }, 54 | "files": [ 55 | "dist" 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /src/ts/cli.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import * as fs from "fs"; 4 | import * as path from "path"; 5 | import * as webpack from "webpack"; 6 | import * as program from "commander"; 7 | 8 | import { Logger } from "./helper"; 9 | import { Netlify } from "./netlify"; 10 | import { parseNetlifyConfig, parseNetlifyPluginLocalConfig, parseSslCertificates, parseWebpackConfig, Server, Webpack } from "./utility"; 11 | import { Build, Bundle } from "./command"; 12 | 13 | const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"), "utf8")); 14 | 15 | program.version(packageJson.version); 16 | 17 | program 18 | .option("-s --static [boolean]", "start the static server (default: true)") 19 | .option("-l --lambda [boolean]", "start the lambda server (default: true)") 20 | .option("-n --netlify ", "path to netlify toml config file") 21 | .option("-w --webpack ", "path to webpack config file") 22 | .option("-c --context ", "override context (default: current git branch)") 23 | .option("-p --port ", "port to serve from (default: 9000)") 24 | .option("--certificates ", "certificates for ssl"); 25 | 26 | program 27 | .command("serve") 28 | .description("Locally emulate Netlify services") 29 | .action(() => { 30 | (async () => { 31 | if (program.context) { 32 | process.env.NETLIFY_LOCAL_CONTEXT = program.context; 33 | } 34 | 35 | const netlifyConfig = parseNetlifyConfig(program.netlify || "netlify.toml", { 36 | webpack: { 37 | config: program.webpack, 38 | hmr: program.hmr, 39 | }, 40 | server: { 41 | static: program.static === undefined ? undefined : program.static === "false" ? false : true, 42 | lambda: program.lambda === undefined ? undefined : program.lambda === "false" ? false : true, 43 | certificates: program.certificates, 44 | port: program.hasOwnProperty("port") ? parseInt(program.port, 10) : undefined, 45 | }, 46 | }); 47 | 48 | let compilers: Array; 49 | 50 | if (netlifyConfig.plugins.local.webpack.config) { 51 | const webpackConfig = parseWebpackConfig(netlifyConfig.plugins.local.webpack.config); 52 | const webpackClient = new Webpack(webpackConfig); 53 | compilers = webpackClient.compilers; 54 | webpackClient.watch(); 55 | } 56 | 57 | const server = new Server({ 58 | netlifyConfig: netlifyConfig, 59 | findAvailablePort: !program.hasOwnProperty("port"), 60 | compilers: compilers, 61 | }); 62 | 63 | await server.listen(); 64 | 65 | })() 66 | .catch((error) => { 67 | Logger.error(error); 68 | process.exit(1); 69 | }); 70 | }); 71 | 72 | program 73 | .command("build") 74 | .description("Execute Netlify build") 75 | .action(() => { 76 | (async () => { 77 | if (program.context) { 78 | process.env.NETLIFY_LOCAL_CONTEXT = program.context; 79 | } 80 | 81 | const netlifyConfig = parseNetlifyConfig(program.netlify || "netlify.toml", { 82 | webpack: { 83 | config: program.webpack, 84 | hmr: program.hmr, 85 | }, 86 | }); 87 | 88 | try { 89 | await Build.start(netlifyConfig); 90 | } catch (error) { 91 | Logger.error(error); 92 | } 93 | 94 | })() 95 | .catch((error) => { 96 | Logger.error(error); 97 | process.exit(1); 98 | }); 99 | }); 100 | 101 | program 102 | .command("bundle") 103 | .description("Bundle Netlify functions") 104 | .action(() => { 105 | (async () => { 106 | if (program.context) { 107 | process.env.NETLIFY_LOCAL_CONTEXT = program.context; 108 | } 109 | 110 | const netlifyConfig = parseNetlifyConfig(program.netlify || "netlify.toml", { 111 | webpack: { 112 | config: program.webpack, 113 | hmr: program.hmr, 114 | }, 115 | }); 116 | 117 | try { 118 | await Bundle.start(netlifyConfig); 119 | } catch (error) { 120 | Logger.error(error); 121 | } 122 | 123 | })() 124 | .catch((error) => { 125 | Logger.error(error); 126 | process.exit(1); 127 | }); 128 | }); 129 | 130 | program.parse(process.argv); 131 | -------------------------------------------------------------------------------- /src/ts/command/build.ts: -------------------------------------------------------------------------------- 1 | import { exec } from "child_process"; 2 | 3 | import { Logger } from "../helper"; 4 | import { Netlify} from "../netlify"; 5 | 6 | export class Build { 7 | public static async start(netlifyConfig: Netlify.Config): Promise { 8 | return new Promise((resolve, reject) => { 9 | Logger.info("build started"); 10 | const buildCommand = Build.objectToEnvironmentVariables(netlifyConfig.build.environment || {}) + netlifyConfig.build.command; 11 | const result = exec(buildCommand, (error, stdout, stderr) => { 12 | if (error) { 13 | Logger.error("build failed"); 14 | Logger.raw(stdout); 15 | return reject(); 16 | } else { 17 | Logger.good("build complete"); 18 | Logger.raw(stdout); 19 | return resolve(); 20 | } 21 | }); 22 | }); 23 | } 24 | 25 | private static objectToEnvironmentVariables = (obj: { [key: string]: any }): string => { 26 | return Object.keys(obj).reduce((result, key) => `${result}${key}="${obj[key]}" `, ""); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/ts/command/bundle.ts: -------------------------------------------------------------------------------- 1 | import { Logger } from "../helper"; 2 | import { Netlify } from "../netlify"; 3 | import { composeWebpackEntry, composeWebpackOutput, parseWebpackConfig, Webpack } from "../utility"; 4 | 5 | export class Bundle { 6 | 7 | public static async start(netlifyConfig: Netlify.Config): Promise { 8 | return new Promise((resolve, reject) => { 9 | Logger.info("bundle started"); 10 | const baseWebpackConfig = parseWebpackConfig(netlifyConfig.plugins.local.webpack.config).find((config) => config.name === "functions"); 11 | const updatedWebpackConfig = Bundle.generateFunctionsConfig(netlifyConfig, baseWebpackConfig); 12 | const webpack = new Webpack(updatedWebpackConfig); 13 | webpack.build(); 14 | }) 15 | } 16 | 17 | public static generateFunctionsConfig(netlifyConfig: Netlify.Config, webpackConfig: Webpack.Config): Webpack.Config { 18 | return { 19 | ...webpackConfig, 20 | entry: composeWebpackEntry(netlifyConfig), 21 | output: composeWebpackOutput(netlifyConfig), 22 | }; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/ts/command/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./build"; 2 | export * from "./bundle"; 3 | -------------------------------------------------------------------------------- /src/ts/helper/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./logger"; 2 | -------------------------------------------------------------------------------- /src/ts/helper/logger.ts: -------------------------------------------------------------------------------- 1 | import chalk from "chalk"; 2 | 3 | export class Logger { 4 | public static active = () => !(process.env.SILENT === "true"); 5 | 6 | public static raw(...args: Array): void { 7 | if (Logger.active()) { 8 | // tslint:disable-next-line 9 | console.log(...args); 10 | } 11 | } 12 | public static info(...args: Array): void { 13 | if (Logger.active()) { 14 | // tslint:disable-next-line 15 | console.log(chalk.white("[netlify-local]"), ...args); 16 | } 17 | } 18 | 19 | public static good(...args: Array): void { 20 | if (Logger.active()) { 21 | // tslint:disable-next-line 22 | console.log(chalk.green("[netlify-local]"), ...args); 23 | } 24 | } 25 | 26 | public static error(...args: Array): void { 27 | if (Logger.active()) { 28 | // tslint:disable-next-line 29 | console.error(chalk.red("[netlify-local]"), ...args); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/ts/index.ts: -------------------------------------------------------------------------------- 1 | export { Netlify } from "./netlify"; 2 | export { composeWebpackEntry, composeWebpackOutput, parseNetlifyConfig, parseWebpackConfig, Server, Webpack } from "./utility"; 3 | -------------------------------------------------------------------------------- /src/ts/netlify.ts: -------------------------------------------------------------------------------- 1 | export namespace Netlify { 2 | export interface Config { 3 | build: { 4 | base?: string; 5 | publish: string; 6 | functions: string; 7 | command: string; 8 | environment?: { 9 | [key: string]: string; 10 | }; 11 | }; 12 | context?: any; 13 | redirects: Array; 14 | headers: Array; 15 | plugins?: { 16 | local?: Netlify.Plugins.Local; 17 | }; 18 | } 19 | export namespace Plugins { 20 | export interface Local { 21 | webpack?: { 22 | config: string; 23 | hmr: boolean; 24 | }; 25 | server?: { 26 | static?: boolean; 27 | lambda?: boolean; 28 | certificates?: string; 29 | port?: number; 30 | }; 31 | functions?: { 32 | source: string; 33 | files: Array; 34 | }; 35 | } 36 | } 37 | export interface Redirect { 38 | from: string; 39 | to: string; 40 | status?: number; 41 | force?: boolean; 42 | headers?: { 43 | [key: string]: string; 44 | }; 45 | } 46 | export interface Headers { 47 | for: string; 48 | values: { 49 | [key: string]: string; 50 | }; 51 | } 52 | export namespace Handler { 53 | export interface Response { 54 | statusCode: number; 55 | body: any; 56 | headers?: { 57 | [key: string]: string; 58 | }; 59 | isBase64Encoded?: boolean; 60 | } 61 | export interface Request { 62 | path: string; 63 | httpMethod: string; 64 | queryStringParameters: { 65 | [key: string]: string | Array; 66 | }; 67 | headers: { 68 | [key: string]: string | Array; 69 | }; 70 | body: any; 71 | isBase64Encoded: boolean; 72 | } 73 | export interface Context { 74 | identity?: { 75 | url: string; 76 | token: string; 77 | }; 78 | user?: any; 79 | } 80 | export type Callback = (error: boolean, response: ResponseType) => void; 81 | } 82 | export type Handler = ( 83 | request: RequestType, 84 | context: ContextType, 85 | callback: Netlify.Handler.Callback, 86 | ) => void | Promise; 87 | } 88 | -------------------------------------------------------------------------------- /src/ts/utility/config.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs"; 2 | import * as path from "path"; 3 | import * as toml from "toml"; 4 | import * as webpack from "webpack"; 5 | import * as gitBranch from "git-branch"; 6 | 7 | import { Netlify } from "../netlify"; 8 | import { Webpack } from "./webpack"; 9 | 10 | export const parseWebpackConfig = (filename: string): Array => { 11 | const webpackConfigExists = fs.existsSync(path.join(process.cwd(), String(filename))); 12 | 13 | if (!webpackConfigExists) { 14 | throw new Error(`cannot find webpack configuration file "${filename}"`); 15 | } 16 | 17 | const webpackConfig = require(path.join(process.cwd(), filename)); 18 | 19 | return !Array.isArray(webpackConfig) ? [webpackConfig] : webpackConfig; 20 | }; 21 | 22 | export const composeWebpackEntry = (netlifyConfig: Netlify.Config) => { 23 | return netlifyConfig.plugins.local.functions.files.reduce((obj, inputPath) => { 24 | const outputPath = inputPath.split(".")[0].replace(/\//g, "-"); 25 | return { 26 | ...obj, 27 | [outputPath]: path.join(process.cwd(), netlifyConfig.plugins.local.functions.source, inputPath), 28 | }; 29 | }, {}); 30 | }; 31 | 32 | export const composeWebpackOutput = (netlifyConfig: Netlify.Config): webpack.Output => { 33 | return { 34 | path: path.join(process.cwd(), netlifyConfig.build.functions), 35 | filename: "[name].js", 36 | libraryTarget: "commonjs", 37 | }; 38 | }; 39 | 40 | export const parseNetlifyConfig = (filename: string, overrides?: Netlify.Plugins.Local): Netlify.Config => { 41 | const netlifyConfigExists = fs.existsSync(path.join(process.cwd(), String(filename))); 42 | if (!netlifyConfigExists) { 43 | throw new Error(`cannot find netlify configuration file "${path.join(process.cwd(), String(filename))}"`); 44 | } 45 | 46 | const netlifyConfig: Netlify.Config = { 47 | redirects: [], 48 | headers: [], 49 | ...toml.parse(fs.readFileSync(path.join(process.cwd(), filename), "utf8")), 50 | }; 51 | const context = process.env.NETLIFY_LOCAL_CONTEXT || gitBranch.sync(); 52 | 53 | netlifyConfig.build = { 54 | base: "", 55 | ...netlifyConfig.build, 56 | }; 57 | 58 | if (netlifyConfig.context && netlifyConfig.context[context]) { 59 | netlifyConfig.build = { 60 | ...netlifyConfig.build, 61 | ...netlifyConfig.context[context], 62 | environment: { 63 | ...netlifyConfig.build.environment, 64 | ...netlifyConfig.context[context].environment, 65 | }, 66 | }; 67 | } 68 | 69 | if (netlifyConfig.build.environment) { 70 | for (const variable of Object.keys(netlifyConfig.build.environment)) { 71 | process.env[variable] = netlifyConfig.build.environment[variable]; 72 | } 73 | } 74 | 75 | if (netlifyConfig.redirects) { 76 | netlifyConfig.redirects = netlifyConfig.redirects.map((redirect) => { 77 | return { 78 | status: 301, 79 | force: false, 80 | ...redirect, 81 | }; 82 | }); 83 | } 84 | 85 | netlifyConfig.plugins = { 86 | local: parseNetlifyPluginLocalConfig(netlifyConfig, overrides), 87 | }; 88 | 89 | return netlifyConfig; 90 | }; 91 | 92 | export const parseNetlifyPluginLocalConfig = (netlifyConfig: Netlify.Config, overrides?: Netlify.Plugins.Local): Netlify.Plugins.Local => { 93 | const netlifyPluginLocalConfig: Netlify.Plugins.Local = { 94 | webpack: { 95 | config: undefined, 96 | hmr: false, 97 | }, 98 | server: { 99 | static: true, 100 | lambda: true, 101 | certificates: undefined, 102 | port: 9000, 103 | }, 104 | functions: { 105 | source: undefined, 106 | files: [], 107 | }, 108 | }; 109 | 110 | /** Parse config from Netlify configuration plugins */ 111 | if (netlifyConfig.plugins) { 112 | if (netlifyConfig.plugins.local) { 113 | if (netlifyConfig.plugins.local.webpack !== undefined) { 114 | if (netlifyConfig.plugins.local.webpack.config !== undefined) { 115 | netlifyPluginLocalConfig.webpack.config = netlifyConfig.plugins.local.webpack.config; 116 | } 117 | if (netlifyConfig.plugins.local.webpack.hmr !== undefined) { 118 | netlifyPluginLocalConfig.webpack.hmr = netlifyConfig.plugins.local.webpack.hmr; 119 | } 120 | } 121 | if (netlifyConfig.plugins.local.server !== undefined) { 122 | if (netlifyConfig.plugins.local.server.static !== undefined) { 123 | netlifyPluginLocalConfig.server.static = netlifyConfig.plugins.local.server.static; 124 | } 125 | if (netlifyConfig.plugins.local.server.lambda !== undefined) { 126 | netlifyPluginLocalConfig.server.lambda = netlifyConfig.plugins.local.server.lambda; 127 | } 128 | if (netlifyConfig.plugins.local.server.certificates !== undefined) { 129 | netlifyPluginLocalConfig.server.certificates = netlifyConfig.plugins.local.server.certificates; 130 | } 131 | if (netlifyConfig.plugins.local.server.port !== undefined) { 132 | netlifyPluginLocalConfig.server.port = netlifyConfig.plugins.local.server.port; 133 | } 134 | } 135 | if (netlifyConfig.plugins.local.functions !== undefined) { 136 | if (netlifyConfig.plugins.local.functions.source !== undefined) { 137 | netlifyPluginLocalConfig.functions.source = netlifyConfig.plugins.local.functions.source; 138 | } 139 | if (netlifyConfig.plugins.local.functions.files !== undefined) { 140 | netlifyPluginLocalConfig.functions.files = netlifyConfig.plugins.local.functions.files; 141 | } 142 | } 143 | } 144 | } 145 | 146 | /** Parse command line options */ 147 | if (overrides) { 148 | if (overrides.webpack !== undefined) { 149 | if (overrides.webpack.config !== undefined) { 150 | netlifyPluginLocalConfig.webpack.config = overrides.webpack.config; 151 | } 152 | } 153 | if (overrides.server !== undefined) { 154 | if (overrides.server.static !== undefined) { 155 | netlifyPluginLocalConfig.server.static = overrides.server.static; 156 | } 157 | if (overrides.server.lambda !== undefined) { 158 | netlifyPluginLocalConfig.server.lambda = overrides.server.lambda; 159 | } 160 | if (overrides.server.certificates !== undefined) { 161 | netlifyPluginLocalConfig.server.certificates = overrides.server.certificates; 162 | } 163 | if (overrides.server.port !== undefined) { 164 | netlifyPluginLocalConfig.server.port = overrides.server.port; 165 | } 166 | } 167 | } 168 | 169 | return netlifyPluginLocalConfig; 170 | }; 171 | 172 | export const parseSslCertificates = (directory?: string): { key: string, cert: string } => { 173 | const keyFilePath = path.join(process.cwd(), directory, "key.pem"); 174 | const certFilePath = path.join(process.cwd(), directory, "cert.pem"); 175 | const keyFileExists = fs.existsSync(keyFilePath); 176 | const certFileExists = fs.existsSync(certFilePath); 177 | 178 | if (!keyFileExists) { 179 | throw new Error(`cannot find certificate key file "${keyFilePath}"`); 180 | } 181 | 182 | if (!certFileExists) { 183 | throw new Error(`cannot find certificate cert file in "${certFilePath}"`); 184 | } 185 | 186 | return { 187 | key: fs.readFileSync(keyFilePath, "utf8"), 188 | cert: fs.readFileSync(certFilePath, "utf8"), 189 | }; 190 | }; 191 | -------------------------------------------------------------------------------- /src/ts/utility/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./config"; 2 | export * from "./server"; 3 | export * from "./webpack"; 4 | -------------------------------------------------------------------------------- /src/ts/utility/server.ts: -------------------------------------------------------------------------------- 1 | import * as path from "path"; 2 | import * as express from "express"; 3 | import * as webpack from "webpack"; 4 | import * as bodyParser from "body-parser"; 5 | import * as serveStatic from "serve-static"; 6 | import * as queryString from "querystring"; 7 | import * as jwt from "jsonwebtoken"; 8 | import * as http from "http"; 9 | import * as https from "https"; 10 | import { URL } from "url"; 11 | import * as UrlPattern from "url-pattern"; 12 | // @ts-ignore 13 | import * as getPort from "get-port"; 14 | // @ts-ignore 15 | import * as expressHttpProxy from "express-http-proxy"; 16 | import * as webpackHotMiddleware from "webpack-hot-middleware"; 17 | 18 | import { Logger } from "../helper"; 19 | import { Netlify } from "../netlify"; 20 | import { parseSslCertificates } from "./config"; 21 | 22 | export class Server { 23 | 24 | private static placeholderOptions(redirect: Netlify.Redirect) { 25 | let redirectUrl: URL; 26 | 27 | if (redirect.to.match(/^(?:[a-z]+:)?\/\//i)) { 28 | redirectUrl = new URL(redirect.to); 29 | } else { 30 | redirectUrl = new URL("http://localhost"); 31 | } 32 | 33 | const redirectPattern = new UrlPattern(redirectUrl.pathname); 34 | 35 | return { 36 | url: redirectUrl, 37 | pattern: redirectPattern, 38 | }; 39 | } 40 | 41 | private static redirectHeadersMiddleware(redirect: Netlify.Redirect): express.Handler { 42 | return (request, response, next) => { 43 | if (redirect.headers) { 44 | for (const header of Object.keys(redirect.headers)) { 45 | response.setHeader(header, redirect.headers[header]); 46 | } 47 | } 48 | next(); 49 | }; 50 | } 51 | 52 | private static placeholderParamsMiddleware(): express.Handler { 53 | return (request, response, next) => { 54 | request.params = { 55 | splat: request.params["0"], 56 | ...request.params, 57 | }; 58 | 59 | next(); 60 | }; 61 | } 62 | 63 | private static redirectPatternToPath(pattern: UrlPattern, params: { [key: string]: string }): string { 64 | return pattern.stringify(params); 65 | } 66 | 67 | private static lambdaRequest(request: express.Request): Netlify.Handler.Request { 68 | const isBase64Encoded = request.body && !(request.headers["content-type"] || "").match(/text|application|multipart\/form-data/); 69 | 70 | return { 71 | path: request.path, 72 | httpMethod: request.method, 73 | queryStringParameters: queryString.parse(request.url.split("?")[1]), 74 | headers: request.headers, 75 | body: isBase64Encoded ? Buffer.from(request.body.toString(), "utf8").toString("base64") : request.body, 76 | isBase64Encoded: isBase64Encoded, 77 | }; 78 | } 79 | 80 | private static lambdaContext(request: express.Request): Netlify.Handler.Context { 81 | let lambdaContext: Netlify.Handler.Context = {}; 82 | 83 | if (request.headers["authorization" || "Authorization"]) { 84 | const bearerToken = String(request.headers["authorization" || "Authorization"]).split(" ")[1]; 85 | lambdaContext = { 86 | identity: { url: "", token: "" }, 87 | user: jwt.decode(bearerToken), 88 | }; 89 | } 90 | 91 | return lambdaContext; 92 | } 93 | 94 | private static lambdaCallback(response: express.Response): any { 95 | return (error: Error, lambdaResponse: Netlify.Handler.Response) => { 96 | if (error) { 97 | 98 | return Server.handleLambdaError(response, error); 99 | } 100 | 101 | return Server.handleLambdaResponse(response, lambdaResponse); 102 | }; 103 | } 104 | 105 | private static handleLambdaResponse(response: express.Response, lambdaResponse: Netlify.Handler.Response): void { 106 | const parsedResponse = typeof lambdaResponse === "string" ? { statusCode: 200, body: lambdaResponse } : lambdaResponse; 107 | 108 | response.statusCode = parsedResponse.statusCode; 109 | 110 | for (const key of Object.keys(parsedResponse.headers)) { 111 | response.setHeader(key, parsedResponse.headers[key]); 112 | } 113 | 114 | response.write(parsedResponse.isBase64Encoded ? Buffer.from(parsedResponse.body, "base64") : parsedResponse.body); 115 | response.end(); 116 | } 117 | 118 | public static handleLambdaError(response: express.Response, error: Error): express.Response { 119 | Logger.error(`lambda invocation failed: ${error.toString()}`); 120 | 121 | return response.status(500).json(`lambda invocation failed: ${error.toString()}`); 122 | } 123 | 124 | constructor( 125 | private options: Server.Options, 126 | ) { 127 | this.initialize(); 128 | } 129 | private express: express.Express; 130 | private server: http.Server|https.Server; 131 | private paths: Server.Paths; 132 | private certificates: Server.Certificates; 133 | 134 | public async listen(): Promise { 135 | try { 136 | if (this.certificates) { 137 | this.server = https.createServer(this.certificates, this.express); 138 | Logger.info("starting https server"); 139 | } else { 140 | this.server = http.createServer(this.express); 141 | Logger.info("starting http server"); 142 | } 143 | } catch (error) { 144 | Logger.error("unable to start server"); 145 | Logger.error(error); 146 | process.exit(1); 147 | } 148 | 149 | const availablePort = await getPort({ port: parseInt(this.options.netlifyConfig.plugins.local.server.port as any, 10) }); 150 | 151 | if (!this.options.findAvailablePort && availablePort !== this.options.netlifyConfig.plugins.local.server.port) { 152 | throw new Error(`server cannot listen on port ${this.options.netlifyConfig.plugins.local.server.port}`); 153 | } 154 | 155 | this.options.netlifyConfig.plugins.local.server.port = availablePort; 156 | 157 | return new Promise((resolve, reject) => { 158 | this.server.listen(this.options.netlifyConfig.plugins.local.server.port, (error: Error) => { 159 | if (error) { 160 | return reject(error); 161 | } 162 | 163 | Logger.good(`server up on port ${this.options.netlifyConfig.plugins.local.server.port}`); 164 | 165 | return resolve(); 166 | }); 167 | }); 168 | } 169 | 170 | public close(): Promise { 171 | return new Promise((resolve) => { 172 | this.server.close(() => { 173 | Logger.info(`server down on port ${this.options.netlifyConfig.plugins.local.server.port}`); 174 | 175 | return resolve(); 176 | }); 177 | }); 178 | } 179 | 180 | private initialize(): void { 181 | this.paths = { 182 | static: path.join(process.cwd(), String(this.options.netlifyConfig.build.publish)), 183 | lambda: path.join(process.cwd(), String(this.options.netlifyConfig.build.functions)), 184 | }; 185 | this.certificates = this.options.netlifyConfig.plugins.local.server.certificates ? parseSslCertificates(this.options.netlifyConfig.plugins.local.server.certificates) : undefined, 186 | 187 | this.express = express(); 188 | this.express.use(bodyParser.raw({ limit: "6mb" })); 189 | this.express.use(bodyParser.text({ limit: "6mb", type: "*/*" })); 190 | 191 | if(this.options.netlifyConfig.plugins.local.webpack.hmr) { 192 | this.webpackHotMiddleware(this.options.compilers); 193 | } 194 | 195 | const hardRedirects = this.options.netlifyConfig.redirects.filter((redirect) => redirect.force === true); 196 | const softRedirects = this.options.netlifyConfig.redirects.filter((redirect) => redirect.force === false); 197 | 198 | this.routeHeaders(this.options.netlifyConfig.headers); 199 | this.routeRedirects(hardRedirects); 200 | this.routeLambda(); 201 | this.routeStatic(); 202 | this.routeRedirects(softRedirects); 203 | } 204 | 205 | public webpackHotMiddleware(compilers: Array): void { 206 | const clientCompiler = compilers.find(compiler => compiler.name === "client"); 207 | const clientMiddleware = webpackHotMiddleware(clientCompiler, { 208 | log: false, 209 | }); 210 | this.express.use(clientMiddleware); 211 | } 212 | 213 | /** 214 | * Static Router 215 | */ 216 | private routeStatic(): void { 217 | if (!this.options.netlifyConfig.plugins.local.server.static) { 218 | return; 219 | } 220 | 221 | if (!this.options.netlifyConfig.build.publish) { 222 | throw new Error("cannot find `build.publish` property within toml config"); 223 | } 224 | 225 | this.express.use(this.options.netlifyConfig.build.base, (request, response, next) => { 226 | Logger.info(`static router - "${request.path}"`); 227 | next(); 228 | }, serveStatic(this.paths.static)); 229 | Logger.info("static routes initialized"); 230 | } 231 | 232 | /** 233 | * Header Router 234 | */ 235 | private routeHeaders(headers: Array): void { 236 | for (const header of headers) { 237 | this.handleHeader(header.for, header.values); 238 | } 239 | } 240 | 241 | private handleHeader(path: string, headers: { [key: string]: string }): void { 242 | this.express.all(path, (request, response, next) => { 243 | for (const header of Object.keys(headers)) { 244 | response.setHeader(header, headers[header]); 245 | } 246 | next(); 247 | }); 248 | } 249 | 250 | /** 251 | * Redirect Router 252 | */ 253 | private routeRedirects(redirects: Array): void { 254 | for (const redirect of redirects) { 255 | // XXX: Need to check if this can be made stricter to just match "http" and "https" 256 | 257 | /** Routes which have an absolute url will be proxied */ 258 | if (redirect.to.match(/^(?:[a-z]+:)?\/\//i)) { 259 | this.handleProxy(redirect); 260 | continue; 261 | } 262 | 263 | /** Routes which have a 301, 302 or 303 status code are considered typical redirects */ 264 | if ([301, 302, 303].includes(redirect.status)) { 265 | this.handleRedirect(redirect); 266 | continue; 267 | } 268 | 269 | /** Routes which do not match other conditions are assumed to be rewrites */ 270 | this.handleRewrite(redirect); 271 | } 272 | } 273 | 274 | private handleRedirect(redirect: Netlify.Redirect): void { 275 | const placeholderOptions = Server.placeholderOptions(redirect); 276 | this.express.all(redirect.from, Server.redirectHeadersMiddleware(redirect), Server.placeholderParamsMiddleware(), (request, response, next) => { 277 | 278 | return response.status(redirect.status).redirect(Server.redirectPatternToPath(placeholderOptions.pattern, request.params)); 279 | }); 280 | } 281 | 282 | private handleRewrite(redirect: Netlify.Redirect): void { 283 | const placeholderOptions = Server.placeholderOptions(redirect); 284 | this.express.all(redirect.from, Server.redirectHeadersMiddleware(redirect), Server.placeholderParamsMiddleware(), (request, response, next) => { 285 | 286 | return response.status(redirect.status).sendFile(path.join(this.paths.static, Server.redirectPatternToPath(placeholderOptions.pattern, request.params))); 287 | }); 288 | } 289 | 290 | private handleProxy(redirect: Netlify.Redirect) { 291 | const placeholderOptions = Server.placeholderOptions(redirect); 292 | 293 | this.express.all(redirect.from, Server.redirectHeadersMiddleware(redirect), Server.placeholderParamsMiddleware(), (request, response, next) => { 294 | 295 | return expressHttpProxy(placeholderOptions.url.origin, { 296 | proxyReqPathResolver: (proxyRequest: express.Request) => Server.redirectPatternToPath(placeholderOptions.pattern, request.params), 297 | })(request, response, next); 298 | }); 299 | } 300 | 301 | /** 302 | * Lambda Router 303 | */ 304 | private routeLambda(): void { 305 | if (!this.options.netlifyConfig.plugins.local.server.lambda) { 306 | return; 307 | } 308 | 309 | if (!this.options.netlifyConfig.build.functions) { 310 | throw new Error("cannot find `build.functions` property within toml config"); 311 | } 312 | 313 | this.express.all("/.netlify/functions/:lambda", this.handleLambda()); 314 | Logger.info("lambda routes initialized"); 315 | } 316 | 317 | private handleLambda(): express.Handler { 318 | return (request, response, next) => { 319 | Logger.info(`lambda router - "${request.params.lambda}"`); 320 | 321 | const module = path.join(this.paths.lambda, request.params.lambda); 322 | 323 | try { 324 | delete require.cache[require.resolve(module)]; 325 | } catch (error) { 326 | return Server.handleLambdaError(response, error); 327 | } 328 | 329 | let lambda: { handler: Netlify.Handler }; 330 | 331 | try { 332 | lambda = require(module); 333 | } catch (error) { 334 | return Server.handleLambdaError(response, error); 335 | } 336 | 337 | const lambdaRequest = Server.lambdaRequest(request); 338 | const lambdaContext = Server.lambdaContext(request); 339 | 340 | let lambdaExecution: Promise | void; 341 | 342 | try { 343 | lambdaExecution = lambda.handler(lambdaRequest, lambdaContext, Server.lambdaCallback(response)); 344 | } catch (error) { 345 | return Server.handleLambdaError(response, error); 346 | } 347 | 348 | if (Promise.resolve(lambdaExecution as any) === lambdaExecution) { 349 | return lambdaExecution 350 | .then((lambdaResponse) => Server.handleLambdaResponse(response, lambdaResponse)) 351 | .catch((error) => Server.handleLambdaError(response, error)); 352 | } 353 | }; 354 | } 355 | } 356 | 357 | export namespace Server { 358 | export interface Options { 359 | netlifyConfig: Netlify.Config; 360 | findAvailablePort?: boolean; 361 | compilers?: Array; 362 | } 363 | export interface Certificates { 364 | key: string; 365 | cert: string; 366 | } 367 | export interface Paths { 368 | static: string; 369 | lambda: string; 370 | } 371 | } 372 | -------------------------------------------------------------------------------- /src/ts/utility/webpack.ts: -------------------------------------------------------------------------------- 1 | import * as webpack from "webpack"; 2 | import { Logger } from "../helper"; 3 | 4 | export class Webpack { 5 | 6 | constructor( 7 | config: Webpack.Config | Array, 8 | ) { 9 | this.configs = Array.isArray(config) ? config : [config]; 10 | this.initialize(); 11 | } 12 | private configs: Array; 13 | public compilers: Array; 14 | 15 | public initialize(): void { 16 | this.compilers = this.configs.map((config) => webpack(config)); 17 | Logger.info(`webpack initialized (${this.compilerNames()})`); 18 | } 19 | 20 | public build(): Promise { 21 | return new Promise((resolve, reject) => { 22 | Logger.info(`webpack build started (${this.compilerNames()})`); 23 | for (let iter = 0; iter < this.compilers.length; iter++) { 24 | const compiler = this.compilers[iter]; 25 | compiler.run((error, stats) => { 26 | if (error || stats.hasErrors()) { 27 | Logger.info(`webpack build failure (${this.compilerName(compiler, iter)})`); 28 | Logger.error(error || stats.toString("minimal")); 29 | 30 | return reject(error); 31 | } 32 | 33 | Logger.good(`webpack build success (${this.compilerName(compiler, iter)}:${stats.hash})`); 34 | 35 | return resolve(stats); 36 | }); 37 | } 38 | }); 39 | } 40 | 41 | public watch(): void { 42 | Logger.info(`webpack watching (${this.compilerNames()})`); 43 | for (let iter = 0; iter < this.compilers.length; iter++) { 44 | const compiler = this.compilers[iter]; 45 | compiler.watch({}, (error, stats) => { 46 | if (error || stats.hasErrors()) { 47 | Logger.error(`webpack build failure (${this.compilerName(compiler, iter)})`); 48 | Logger.error(error || stats.toString("minimal")); 49 | 50 | return; 51 | } 52 | 53 | Logger.good(`webpack build success (${this.compilerName(compiler, iter)}:${stats.hash})`); 54 | }); 55 | } 56 | } 57 | 58 | private compilerName(compiler: webpack.Compiler, iter: number): string { 59 | return compiler.name ? compiler.name : `#${iter + 1}`; 60 | } 61 | 62 | private compilerNames(): string { 63 | return this.compilers.map((compiler, index) => this.compilerName(compiler, index)).join(", "); 64 | } 65 | } 66 | 67 | export namespace Webpack { 68 | export interface Config extends webpack.Configuration {} 69 | } 70 | -------------------------------------------------------------------------------- /test/assets/netlify-no-context.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | base = "build-base" 3 | publish = "build-publish" 4 | functions = "build-functions" 5 | command = "build-command" 6 | -------------------------------------------------------------------------------- /test/assets/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | base = "build-base" 3 | publish = "build-publish" 4 | functions = "build-functions" 5 | command = "build-command" 6 | 7 | [context.default] 8 | publish = "default-publish" 9 | functions = "default-functions" 10 | command = "default-command" 11 | 12 | [[redirects]] 13 | from = "/redirect-from-a" 14 | to = "/redirect-to-a" 15 | status = 200 16 | 17 | [[redirects]] 18 | from = "/redirect-from-b" 19 | to = "/redirect-to-b" 20 | status = 200 21 | 22 | [[redirects]] 23 | from = "/redirect-from-header" 24 | to = "/redirect-to-header" 25 | status = 200 26 | [redirects.headers] 27 | Redirect-Header = "" 28 | 29 | [[headers]] 30 | for = "/headers-for-a" 31 | [headers.values] 32 | Header-A = "" 33 | 34 | [[headers]] 35 | for = "/headers-for-b" 36 | [headers.values] 37 | Header-B = "" 38 | -------------------------------------------------------------------------------- /test/assets/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | target: "node", 5 | mode: "none", 6 | entry: { 7 | foo: "foo.js", 8 | }, 9 | output: { 10 | path: path.join(__dirname, "build"), 11 | filename: "[name].js", 12 | libraryTarget: "commonjs", 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/ts/config.ts: -------------------------------------------------------------------------------- 1 | import * as mocha from "mocha"; 2 | import * as assert from "assert"; 3 | 4 | import { Webpack, parseNetlifyConfig, parseWebpackConfig } from "../../dist"; 5 | 6 | process.env.NETLIFY_LOCAL_CONTEXT = "default"; 7 | 8 | mocha.describe('Config', () => { 9 | mocha.describe('parseNetlifyConfig', () => { 10 | mocha.it('should throw when not found', () => { 11 | assert.throws(() => parseNetlifyConfig("test/assets/netlify.toml" + Math.random())); 12 | }); 13 | mocha.it('should correctly parse build', () => { 14 | const netlifyConfig = parseNetlifyConfig("test/assets/netlify-no-context.toml"); 15 | 16 | assert.equal(netlifyConfig.build.base, "build-base"); 17 | assert.equal(netlifyConfig.build.publish, "build-publish"); 18 | assert.equal(netlifyConfig.build.functions, "build-functions"); 19 | assert.equal(netlifyConfig.build.command, "build-command"); 20 | }); 21 | mocha.it('should correctly override build with context', () => { 22 | const netlifyConfig = parseNetlifyConfig("test/assets/netlify.toml"); 23 | 24 | assert.equal(netlifyConfig.build.base, "build-base"); 25 | assert.equal(netlifyConfig.build.publish, "default-publish"); 26 | assert.equal(netlifyConfig.build.functions, "default-functions"); 27 | assert.equal(netlifyConfig.build.command, "default-command"); 28 | }); 29 | }); 30 | mocha.describe('parseWebpackConfig', () => { 31 | mocha.it('should throw when not found', () => { 32 | assert.throws(() => parseWebpackConfig("test/assets/webpack.config.js" + Math.random())); 33 | }); 34 | mocha.it('should correctly import webpack config', () => { 35 | const webpackConfigs = parseWebpackConfig("test/assets/webpack.config.js"); 36 | 37 | const webpackConfig = webpackConfigs[0]; 38 | 39 | assert.equal(webpackConfig.target, "node"); 40 | }); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /test/ts/server.ts: -------------------------------------------------------------------------------- 1 | import * as mocha from "mocha"; 2 | import * as assert from "assert"; 3 | 4 | import { parseNetlifyConfig, Server } from "../../dist"; 5 | 6 | process.env.SILENT = "true"; 7 | 8 | const createServer = async (): Promise => { 9 | const netlifyConfig = parseNetlifyConfig("test/assets/netlify.toml"); 10 | const server = new Server({ 11 | netlifyConfig: netlifyConfig, 12 | routes: { 13 | static: true, 14 | lambda: true, 15 | }, 16 | port: 9000, 17 | }); 18 | await server.listen(); 19 | 20 | return server; 21 | } 22 | 23 | mocha.describe('Server', () => { 24 | mocha.describe('lifecycle', () => { 25 | mocha.it('should listen and close', async () => { 26 | const server = await createServer(); 27 | 28 | //@ts-ignore 29 | assert.notEqual(server.server.address(), null); 30 | 31 | server.close(); 32 | 33 | //@ts-ignore 34 | assert.equal(server.server.address(), null); 35 | }); 36 | 37 | mocha.it('should add redirect routes', async () => { 38 | const server = await createServer(); 39 | 40 | const [redirectRouteA, redirectRouteB] = [ 41 | //@ts-ignore 42 | server.express._router.stack.find(route => route.route && route.route.path === "/redirect-from-a"), 43 | //@ts-ignore 44 | server.express._router.stack.find(route => route.route && route.route.path === "/redirect-from-b") 45 | ]; 46 | 47 | assert.notEqual(redirectRouteA, undefined); 48 | 49 | assert.notEqual(redirectRouteB, undefined); 50 | 51 | server.close(); 52 | }); 53 | 54 | mocha.it('should add redirect header routes', async () => { 55 | const server = await createServer(); 56 | 57 | //@ts-ignore 58 | const redirectRouteHeader = server.express._router.stack.find(route => route.route && route.route.path === "/redirect-from-header"); 59 | 60 | assert.notEqual(redirectRouteHeader, undefined); 61 | 62 | server.close(); 63 | }); 64 | 65 | mocha.it('should add header routes', async () => { 66 | const server = await createServer(); 67 | 68 | const [headerRouteA, headerRouteB] = [ 69 | //@ts-ignore 70 | server.express._router.stack.find(route => route.route && route.route.path === "/headers-for-a"), 71 | //@ts-ignore 72 | server.express._router.stack.find(route => route.route && route.route.path === "/headers-for-b") 73 | ]; 74 | 75 | assert.notEqual(headerRouteA, undefined); 76 | 77 | assert.notEqual(headerRouteB, undefined); 78 | 79 | server.close(); 80 | }); 81 | 82 | mocha.it('should add lambda route', async () => { 83 | const server = await createServer(); 84 | 85 | //@ts-ignore 86 | const lambdaRoute = server.express._router.stack.find(route => route.route && route.route.path === "/.netlify/functions/:lambda"); 87 | 88 | assert.notEqual(lambdaRoute, undefined); 89 | 90 | server.close(); 91 | }); 92 | 93 | mocha.it('should correctly format lambda request', async () => { 94 | const requestObj = { 95 | path: "/foo", 96 | method: "GET", 97 | url: "/foo?bar[0]=baz&bar[1]=qak", 98 | headers: { 99 | "content-type": "application/json" 100 | }, 101 | body: { test: true }, 102 | } 103 | 104 | //@ts-ignore 105 | const lambdaRequest = Server.lambdaRequest(requestObj); 106 | 107 | assert.equal(lambdaRequest.path, "/foo"); 108 | assert.equal(lambdaRequest.httpMethod, "GET"); 109 | assert.equal(lambdaRequest.queryStringParameters["bar[0]"], "baz"); 110 | assert.equal(lambdaRequest.queryStringParameters["bar[1]"], "qak"); 111 | assert.equal(lambdaRequest.headers["content-type"], "application/json"); 112 | assert.equal(JSON.stringify(lambdaRequest.body), JSON.stringify({ test: true })); 113 | assert.equal(lambdaRequest.isBase64Encoded, false); 114 | }); 115 | 116 | mocha.it('should correctly format lambda context', async () => { 117 | const requestWithoutBearer = { 118 | headers: {} 119 | } 120 | 121 | //@ts-ignore 122 | const lambdaContextWithoutBearer = Server.lambdaContext(requestWithoutBearer); 123 | 124 | assert.equal(JSON.stringify(lambdaContextWithoutBearer), JSON.stringify({})); 125 | 126 | const requestWithBearer = { 127 | headers: { 128 | "authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIifQ._NaFhGu8tCCgBKksGBA6ADwRdKx3e9GES_KyF4A5phE" 129 | } 130 | } 131 | 132 | //@ts-ignore 133 | const lambdaContextWithBearer = Server.lambdaContext(requestWithBearer); 134 | 135 | assert.equal(lambdaContextWithBearer.identity.url, ""); 136 | assert.equal(lambdaContextWithBearer.identity.token, ""); 137 | assert.equal(JSON.stringify(lambdaContextWithBearer.user), JSON.stringify({ foo: "bar" })); 138 | }); 139 | 140 | }); 141 | }); 142 | -------------------------------------------------------------------------------- /test/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "experimentalDecorators": true, 4 | "emitDecoratorMetadata": true, 5 | "module": "commonjs", 6 | "target": "es5", 7 | "noImplicitAny": true, 8 | "lib": [ "ES2015", "ES2017" ] 9 | }, 10 | "include": [ "ts/**/*.ts" ], 11 | "exclude": [ "node_modules" ] 12 | } 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "experimentalDecorators": true, 4 | "emitDecoratorMetadata": true, 5 | "module": "commonjs", 6 | "target": "es5", 7 | "noImplicitAny": true, 8 | "sourceMap": true, 9 | "declaration": true, 10 | "declarationDir": "dist", 11 | "outDir": "dist", 12 | "lib": [ "ES2015", "ES2017" ] 13 | }, 14 | "include": [ "src/ts/**/*.ts" ], 15 | "exclude": [ "node_modules" ] 16 | } 17 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "rules": { 7 | "array-type": [true, "generic"], 8 | "interface-name": [true, "never-prefix"], 9 | "max-line-length": false, 10 | "member-ordering": [ 11 | true, 12 | { 13 | "order": [ 14 | "public-static-field", 15 | "public-instance-field", 16 | "public-constructor", 17 | "private-static-field", 18 | "private-instance-field", 19 | "private-constructor", 20 | "public-instance-method", 21 | "protected-instance-method", 22 | "private-instance-method" 23 | ] 24 | } 25 | ], 26 | "no-empty-interface": false, 27 | "no-namespace": false, 28 | "no-shadowed-variable": false, 29 | "object-literal-shorthand": [true, "never"], 30 | "object-literal-sort-keys": false, 31 | "ordered-imports": false 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/anymatch@*": 6 | version "1.3.0" 7 | resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.0.tgz#d1d55958d1fccc5527d4aba29fc9c4b942f563ff" 8 | integrity sha512-7WcbyctkE8GTzogDb0ulRAEw7v8oIS54ft9mQTU7PfM0hp5e+8kpa+HeQ7IQrFbKtJXBKcZ4bh+Em9dTw5L6AQ== 9 | 10 | "@types/assert@^1.4.0": 11 | version "1.4.2" 12 | resolved "https://registry.yarnpkg.com/@types/assert/-/assert-1.4.2.tgz#e9116f5abf9cbd0c86ed22e38185b71e7f44071c" 13 | integrity sha512-N5I8kX4ybqvqi4A+Y8b3coatbuRKWaa+sEPm3aCFdm9oCxsDvwY/ELNV4c/56W5MdRKJ6b8AOWRFyxhi437t7A== 14 | 15 | "@types/body-parser@*", "@types/body-parser@^1.17.0": 16 | version "1.17.0" 17 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 18 | integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== 19 | dependencies: 20 | "@types/connect" "*" 21 | "@types/node" "*" 22 | 23 | "@types/chalk@^2.2.0": 24 | version "2.2.0" 25 | resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" 26 | integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== 27 | dependencies: 28 | chalk "*" 29 | 30 | "@types/connect@*": 31 | version "3.4.32" 32 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 33 | integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== 34 | dependencies: 35 | "@types/node" "*" 36 | 37 | "@types/events@*": 38 | version "1.2.0" 39 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" 40 | integrity sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA== 41 | 42 | "@types/express-serve-static-core@*": 43 | version "4.16.0" 44 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" 45 | integrity sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w== 46 | dependencies: 47 | "@types/events" "*" 48 | "@types/node" "*" 49 | "@types/range-parser" "*" 50 | 51 | "@types/express@^4.16.0": 52 | version "4.17.0" 53 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.0.tgz#49eaedb209582a86f12ed9b725160f12d04ef287" 54 | integrity sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw== 55 | dependencies: 56 | "@types/body-parser" "*" 57 | "@types/express-serve-static-core" "*" 58 | "@types/serve-static" "*" 59 | 60 | "@types/get-port@^4.0.0": 61 | version "4.0.1" 62 | resolved "https://registry.yarnpkg.com/@types/get-port/-/get-port-4.0.1.tgz#364e5f7db300a736dc74007f3625a48c360a1c82" 63 | integrity sha512-rPeWy62y0uG7kDT2676V7Ix/UDwAgGqbClhM+h4SlUBvoov3/QOUFXad9xmFGCU2DEGxhFeXbGeZU3kG2KMXRg== 64 | 65 | "@types/git-branch@^2.0.0": 66 | version "2.0.1" 67 | resolved "https://registry.yarnpkg.com/@types/git-branch/-/git-branch-2.0.1.tgz#9a38eb3024f30b567b92002f8b09e85d2acdbd2b" 68 | integrity sha512-I7SzZ6rgn0yRLU4wPbZv6UeKJ3C5XAk1zTwyLOeZXqrW+z6/q6axQcDVPiUKCGv4M5WmOt4TrsnHuj7qOn4Nsg== 69 | 70 | "@types/json5@^0.0.29": 71 | version "0.0.29" 72 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 73 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 74 | 75 | "@types/jsonwebtoken@^8.3.0": 76 | version "8.3.0" 77 | resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz#1fe79489df97b49273401ac3c8019cbf1dae4578" 78 | integrity sha512-YKnUTR4VxwljbPORPrRon9E3uel1aD8nUdvzqArCCdMTWPvo0gnI2UZkwIHN2QATdj6HYXV/Iq3/KcecAO42Ww== 79 | dependencies: 80 | "@types/node" "*" 81 | 82 | "@types/mime@*": 83 | version "2.0.0" 84 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 85 | integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA== 86 | 87 | "@types/mocha@^5.2.5": 88 | version "5.2.7" 89 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" 90 | integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== 91 | 92 | "@types/node@*", "@types/node@^10.11.7": 93 | version "10.12.18" 94 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" 95 | integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== 96 | 97 | "@types/range-parser@*": 98 | version "1.2.3" 99 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 100 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 101 | 102 | "@types/serve-static@*", "@types/serve-static@^1.13.2": 103 | version "1.13.2" 104 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 105 | integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== 106 | dependencies: 107 | "@types/express-serve-static-core" "*" 108 | "@types/mime" "*" 109 | 110 | "@types/tapable@*": 111 | version "1.0.4" 112 | resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" 113 | integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== 114 | 115 | "@types/uglify-js@*": 116 | version "3.0.4" 117 | resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" 118 | integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== 119 | dependencies: 120 | source-map "^0.6.1" 121 | 122 | "@types/webpack-hot-middleware@^2.16.4": 123 | version "2.16.5" 124 | resolved "https://registry.yarnpkg.com/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.16.5.tgz#5271eada42f34670a7ae79ddb6f1c419a19c985f" 125 | integrity sha512-41qSQeyRGZkWSi366jMQVsLo5fdLT8EgmvHNoBwcCtwZcHrQk6An6tD+ZfC0zMdNHzVEFlzQvT2mTte8zDxqNw== 126 | dependencies: 127 | "@types/connect" "*" 128 | "@types/webpack" "*" 129 | 130 | "@types/webpack@*", "@types/webpack@^4.4.16": 131 | version "4.4.34" 132 | resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.34.tgz#e5f88b9a795da11683b4ec4a07d1c2b023b19810" 133 | integrity sha512-GnEBgjHsfO1M7DIQ0dAupSofcmDItE3Zsu3reK8SQpl/6N0rtUQxUmQzVFAS5ou/FGjsYKjXAWfItLZ0kNFTfQ== 134 | dependencies: 135 | "@types/anymatch" "*" 136 | "@types/node" "*" 137 | "@types/tapable" "*" 138 | "@types/uglify-js" "*" 139 | source-map "^0.6.0" 140 | 141 | "@webassemblyjs/ast@1.8.5": 142 | version "1.8.5" 143 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" 144 | integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== 145 | dependencies: 146 | "@webassemblyjs/helper-module-context" "1.8.5" 147 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 148 | "@webassemblyjs/wast-parser" "1.8.5" 149 | 150 | "@webassemblyjs/floating-point-hex-parser@1.8.5": 151 | version "1.8.5" 152 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" 153 | integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== 154 | 155 | "@webassemblyjs/helper-api-error@1.8.5": 156 | version "1.8.5" 157 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" 158 | integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== 159 | 160 | "@webassemblyjs/helper-buffer@1.8.5": 161 | version "1.8.5" 162 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" 163 | integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== 164 | 165 | "@webassemblyjs/helper-code-frame@1.8.5": 166 | version "1.8.5" 167 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" 168 | integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== 169 | dependencies: 170 | "@webassemblyjs/wast-printer" "1.8.5" 171 | 172 | "@webassemblyjs/helper-fsm@1.8.5": 173 | version "1.8.5" 174 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" 175 | integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== 176 | 177 | "@webassemblyjs/helper-module-context@1.8.5": 178 | version "1.8.5" 179 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" 180 | integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== 181 | dependencies: 182 | "@webassemblyjs/ast" "1.8.5" 183 | mamacro "^0.0.3" 184 | 185 | "@webassemblyjs/helper-wasm-bytecode@1.8.5": 186 | version "1.8.5" 187 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" 188 | integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== 189 | 190 | "@webassemblyjs/helper-wasm-section@1.8.5": 191 | version "1.8.5" 192 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" 193 | integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== 194 | dependencies: 195 | "@webassemblyjs/ast" "1.8.5" 196 | "@webassemblyjs/helper-buffer" "1.8.5" 197 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 198 | "@webassemblyjs/wasm-gen" "1.8.5" 199 | 200 | "@webassemblyjs/ieee754@1.8.5": 201 | version "1.8.5" 202 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" 203 | integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== 204 | dependencies: 205 | "@xtuc/ieee754" "^1.2.0" 206 | 207 | "@webassemblyjs/leb128@1.8.5": 208 | version "1.8.5" 209 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" 210 | integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== 211 | dependencies: 212 | "@xtuc/long" "4.2.2" 213 | 214 | "@webassemblyjs/utf8@1.8.5": 215 | version "1.8.5" 216 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" 217 | integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== 218 | 219 | "@webassemblyjs/wasm-edit@1.8.5": 220 | version "1.8.5" 221 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" 222 | integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== 223 | dependencies: 224 | "@webassemblyjs/ast" "1.8.5" 225 | "@webassemblyjs/helper-buffer" "1.8.5" 226 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 227 | "@webassemblyjs/helper-wasm-section" "1.8.5" 228 | "@webassemblyjs/wasm-gen" "1.8.5" 229 | "@webassemblyjs/wasm-opt" "1.8.5" 230 | "@webassemblyjs/wasm-parser" "1.8.5" 231 | "@webassemblyjs/wast-printer" "1.8.5" 232 | 233 | "@webassemblyjs/wasm-gen@1.8.5": 234 | version "1.8.5" 235 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" 236 | integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== 237 | dependencies: 238 | "@webassemblyjs/ast" "1.8.5" 239 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 240 | "@webassemblyjs/ieee754" "1.8.5" 241 | "@webassemblyjs/leb128" "1.8.5" 242 | "@webassemblyjs/utf8" "1.8.5" 243 | 244 | "@webassemblyjs/wasm-opt@1.8.5": 245 | version "1.8.5" 246 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" 247 | integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== 248 | dependencies: 249 | "@webassemblyjs/ast" "1.8.5" 250 | "@webassemblyjs/helper-buffer" "1.8.5" 251 | "@webassemblyjs/wasm-gen" "1.8.5" 252 | "@webassemblyjs/wasm-parser" "1.8.5" 253 | 254 | "@webassemblyjs/wasm-parser@1.8.5": 255 | version "1.8.5" 256 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" 257 | integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== 258 | dependencies: 259 | "@webassemblyjs/ast" "1.8.5" 260 | "@webassemblyjs/helper-api-error" "1.8.5" 261 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 262 | "@webassemblyjs/ieee754" "1.8.5" 263 | "@webassemblyjs/leb128" "1.8.5" 264 | "@webassemblyjs/utf8" "1.8.5" 265 | 266 | "@webassemblyjs/wast-parser@1.8.5": 267 | version "1.8.5" 268 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" 269 | integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== 270 | dependencies: 271 | "@webassemblyjs/ast" "1.8.5" 272 | "@webassemblyjs/floating-point-hex-parser" "1.8.5" 273 | "@webassemblyjs/helper-api-error" "1.8.5" 274 | "@webassemblyjs/helper-code-frame" "1.8.5" 275 | "@webassemblyjs/helper-fsm" "1.8.5" 276 | "@xtuc/long" "4.2.2" 277 | 278 | "@webassemblyjs/wast-printer@1.8.5": 279 | version "1.8.5" 280 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" 281 | integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== 282 | dependencies: 283 | "@webassemblyjs/ast" "1.8.5" 284 | "@webassemblyjs/wast-parser" "1.8.5" 285 | "@xtuc/long" "4.2.2" 286 | 287 | "@xtuc/ieee754@^1.2.0": 288 | version "1.2.0" 289 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 290 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 291 | 292 | "@xtuc/long@4.2.2": 293 | version "4.2.2" 294 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 295 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 296 | 297 | abbrev@1: 298 | version "1.1.1" 299 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 300 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 301 | 302 | accepts@~1.3.5: 303 | version "1.3.5" 304 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 305 | integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= 306 | dependencies: 307 | mime-types "~2.1.18" 308 | negotiator "0.6.1" 309 | 310 | acorn@^6.2.0: 311 | version "6.2.0" 312 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.0.tgz#67f0da2fc339d6cfb5d6fb244fd449f33cd8bbe3" 313 | integrity sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw== 314 | 315 | ajv-errors@^1.0.0: 316 | version "1.0.1" 317 | resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" 318 | integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== 319 | 320 | ajv-keywords@^3.1.0: 321 | version "3.2.0" 322 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 323 | integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= 324 | 325 | ajv@^6.1.0: 326 | version "6.6.2" 327 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" 328 | integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== 329 | dependencies: 330 | fast-deep-equal "^2.0.1" 331 | fast-json-stable-stringify "^2.0.0" 332 | json-schema-traverse "^0.4.1" 333 | uri-js "^4.2.2" 334 | 335 | ansi-html@0.0.7: 336 | version "0.0.7" 337 | resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" 338 | integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= 339 | 340 | ansi-regex@^2.0.0: 341 | version "2.1.1" 342 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 343 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 344 | 345 | ansi-regex@^3.0.0: 346 | version "3.0.0" 347 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 348 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 349 | 350 | ansi-styles@^2.2.1: 351 | version "2.2.1" 352 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 353 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 354 | 355 | ansi-styles@^3.2.1: 356 | version "3.2.1" 357 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 358 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 359 | dependencies: 360 | color-convert "^1.9.0" 361 | 362 | anymatch@^2.0.0: 363 | version "2.0.0" 364 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 365 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 366 | dependencies: 367 | micromatch "^3.1.4" 368 | normalize-path "^2.1.1" 369 | 370 | aproba@^1.0.3, aproba@^1.1.1: 371 | version "1.2.0" 372 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 373 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 374 | 375 | are-we-there-yet@~1.1.2: 376 | version "1.1.5" 377 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 378 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 379 | dependencies: 380 | delegates "^1.0.0" 381 | readable-stream "^2.0.6" 382 | 383 | argparse@^1.0.7: 384 | version "1.0.10" 385 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 386 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 387 | dependencies: 388 | sprintf-js "~1.0.2" 389 | 390 | arr-diff@^4.0.0: 391 | version "4.0.0" 392 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 393 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 394 | 395 | arr-flatten@^1.1.0: 396 | version "1.1.0" 397 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 398 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 399 | 400 | arr-union@^3.1.0: 401 | version "3.1.0" 402 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 403 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 404 | 405 | array-flatten@1.1.1: 406 | version "1.1.1" 407 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 408 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 409 | 410 | array-unique@^0.3.2: 411 | version "0.3.2" 412 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 413 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 414 | 415 | arrify@^1.0.0: 416 | version "1.0.1" 417 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 418 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 419 | 420 | asn1.js@^4.0.0: 421 | version "4.10.1" 422 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 423 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== 424 | dependencies: 425 | bn.js "^4.0.0" 426 | inherits "^2.0.1" 427 | minimalistic-assert "^1.0.0" 428 | 429 | assert@^1.1.1, assert@^1.4.1: 430 | version "1.4.1" 431 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 432 | integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= 433 | dependencies: 434 | util "0.10.3" 435 | 436 | assign-symbols@^1.0.0: 437 | version "1.0.0" 438 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 439 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 440 | 441 | async-each@^1.0.0: 442 | version "1.0.1" 443 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 444 | integrity sha1-GdOGodntxufByF04iu28xW0zYC0= 445 | 446 | atob@^2.1.1: 447 | version "2.1.2" 448 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 449 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 450 | 451 | babel-code-frame@^6.22.0: 452 | version "6.26.0" 453 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 454 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= 455 | dependencies: 456 | chalk "^1.1.3" 457 | esutils "^2.0.2" 458 | js-tokens "^3.0.2" 459 | 460 | balanced-match@^1.0.0: 461 | version "1.0.0" 462 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 463 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 464 | 465 | base64-js@^1.0.2: 466 | version "1.3.0" 467 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 468 | integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== 469 | 470 | base@^0.11.1: 471 | version "0.11.2" 472 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 473 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 474 | dependencies: 475 | cache-base "^1.0.1" 476 | class-utils "^0.3.5" 477 | component-emitter "^1.2.1" 478 | define-property "^1.0.0" 479 | isobject "^3.0.1" 480 | mixin-deep "^1.2.0" 481 | pascalcase "^0.1.1" 482 | 483 | big.js@^5.2.2: 484 | version "5.2.2" 485 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 486 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 487 | 488 | binary-extensions@^1.0.0: 489 | version "1.12.0" 490 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" 491 | integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== 492 | 493 | bluebird@^3.5.3: 494 | version "3.5.3" 495 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" 496 | integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== 497 | 498 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 499 | version "4.11.8" 500 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 501 | integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== 502 | 503 | body-parser@1.18.3, body-parser@^1.18.3: 504 | version "1.18.3" 505 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" 506 | integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= 507 | dependencies: 508 | bytes "3.0.0" 509 | content-type "~1.0.4" 510 | debug "2.6.9" 511 | depd "~1.1.2" 512 | http-errors "~1.6.3" 513 | iconv-lite "0.4.23" 514 | on-finished "~2.3.0" 515 | qs "6.5.2" 516 | raw-body "2.3.3" 517 | type-is "~1.6.16" 518 | 519 | brace-expansion@^1.1.7: 520 | version "1.1.11" 521 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 522 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 523 | dependencies: 524 | balanced-match "^1.0.0" 525 | concat-map "0.0.1" 526 | 527 | braces@^2.3.0, braces@^2.3.1: 528 | version "2.3.2" 529 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 530 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 531 | dependencies: 532 | arr-flatten "^1.1.0" 533 | array-unique "^0.3.2" 534 | extend-shallow "^2.0.1" 535 | fill-range "^4.0.0" 536 | isobject "^3.0.1" 537 | repeat-element "^1.1.2" 538 | snapdragon "^0.8.1" 539 | snapdragon-node "^2.0.1" 540 | split-string "^3.0.2" 541 | to-regex "^3.0.1" 542 | 543 | brorand@^1.0.1: 544 | version "1.1.0" 545 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 546 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 547 | 548 | browser-stdout@1.3.1: 549 | version "1.3.1" 550 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 551 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 552 | 553 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 554 | version "1.2.0" 555 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 556 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 557 | dependencies: 558 | buffer-xor "^1.0.3" 559 | cipher-base "^1.0.0" 560 | create-hash "^1.1.0" 561 | evp_bytestokey "^1.0.3" 562 | inherits "^2.0.1" 563 | safe-buffer "^5.0.1" 564 | 565 | browserify-cipher@^1.0.0: 566 | version "1.0.1" 567 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 568 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 569 | dependencies: 570 | browserify-aes "^1.0.4" 571 | browserify-des "^1.0.0" 572 | evp_bytestokey "^1.0.0" 573 | 574 | browserify-des@^1.0.0: 575 | version "1.0.2" 576 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 577 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 578 | dependencies: 579 | cipher-base "^1.0.1" 580 | des.js "^1.0.0" 581 | inherits "^2.0.1" 582 | safe-buffer "^5.1.2" 583 | 584 | browserify-rsa@^4.0.0: 585 | version "4.0.1" 586 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 587 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= 588 | dependencies: 589 | bn.js "^4.1.0" 590 | randombytes "^2.0.1" 591 | 592 | browserify-sign@^4.0.0: 593 | version "4.0.4" 594 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 595 | integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= 596 | dependencies: 597 | bn.js "^4.1.1" 598 | browserify-rsa "^4.0.0" 599 | create-hash "^1.1.0" 600 | create-hmac "^1.1.2" 601 | elliptic "^6.0.0" 602 | inherits "^2.0.1" 603 | parse-asn1 "^5.0.0" 604 | 605 | browserify-zlib@^0.2.0: 606 | version "0.2.0" 607 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 608 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 609 | dependencies: 610 | pako "~1.0.5" 611 | 612 | buffer-equal-constant-time@1.0.1: 613 | version "1.0.1" 614 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 615 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 616 | 617 | buffer-from@^1.0.0, buffer-from@^1.1.0: 618 | version "1.1.1" 619 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 620 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 621 | 622 | buffer-xor@^1.0.3: 623 | version "1.0.3" 624 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 625 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 626 | 627 | buffer@^4.3.0: 628 | version "4.9.1" 629 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 630 | integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= 631 | dependencies: 632 | base64-js "^1.0.2" 633 | ieee754 "^1.1.4" 634 | isarray "^1.0.0" 635 | 636 | builtin-modules@^1.1.1: 637 | version "1.1.1" 638 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 639 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 640 | 641 | builtin-status-codes@^3.0.0: 642 | version "3.0.0" 643 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 644 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 645 | 646 | bytes@3.0.0: 647 | version "3.0.0" 648 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 649 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 650 | 651 | cacache@^11.0.2: 652 | version "11.3.2" 653 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" 654 | integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== 655 | dependencies: 656 | bluebird "^3.5.3" 657 | chownr "^1.1.1" 658 | figgy-pudding "^3.5.1" 659 | glob "^7.1.3" 660 | graceful-fs "^4.1.15" 661 | lru-cache "^5.1.1" 662 | mississippi "^3.0.0" 663 | mkdirp "^0.5.1" 664 | move-concurrently "^1.0.1" 665 | promise-inflight "^1.0.1" 666 | rimraf "^2.6.2" 667 | ssri "^6.0.1" 668 | unique-filename "^1.1.1" 669 | y18n "^4.0.0" 670 | 671 | cache-base@^1.0.1: 672 | version "1.0.1" 673 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 674 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 675 | dependencies: 676 | collection-visit "^1.0.0" 677 | component-emitter "^1.2.1" 678 | get-value "^2.0.6" 679 | has-value "^1.0.0" 680 | isobject "^3.0.1" 681 | set-value "^2.0.0" 682 | to-object-path "^0.3.0" 683 | union-value "^1.0.0" 684 | unset-value "^1.0.0" 685 | 686 | chalk@*, chalk@^2.3.0, chalk@^2.4.1: 687 | version "2.4.2" 688 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 689 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 690 | dependencies: 691 | ansi-styles "^3.2.1" 692 | escape-string-regexp "^1.0.5" 693 | supports-color "^5.3.0" 694 | 695 | chalk@^1.1.3: 696 | version "1.1.3" 697 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 698 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 699 | dependencies: 700 | ansi-styles "^2.2.1" 701 | escape-string-regexp "^1.0.2" 702 | has-ansi "^2.0.0" 703 | strip-ansi "^3.0.0" 704 | supports-color "^2.0.0" 705 | 706 | chokidar@^2.0.2: 707 | version "2.0.4" 708 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" 709 | integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== 710 | dependencies: 711 | anymatch "^2.0.0" 712 | async-each "^1.0.0" 713 | braces "^2.3.0" 714 | glob-parent "^3.1.0" 715 | inherits "^2.0.1" 716 | is-binary-path "^1.0.0" 717 | is-glob "^4.0.0" 718 | lodash.debounce "^4.0.8" 719 | normalize-path "^2.1.1" 720 | path-is-absolute "^1.0.0" 721 | readdirp "^2.0.0" 722 | upath "^1.0.5" 723 | optionalDependencies: 724 | fsevents "^1.2.2" 725 | 726 | chownr@^1.1.1: 727 | version "1.1.1" 728 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 729 | integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== 730 | 731 | chrome-trace-event@^1.0.0: 732 | version "1.0.0" 733 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" 734 | integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== 735 | dependencies: 736 | tslib "^1.9.0" 737 | 738 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 739 | version "1.0.4" 740 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 741 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 742 | dependencies: 743 | inherits "^2.0.1" 744 | safe-buffer "^5.0.1" 745 | 746 | class-utils@^0.3.5: 747 | version "0.3.6" 748 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 749 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 750 | dependencies: 751 | arr-union "^3.1.0" 752 | define-property "^0.2.5" 753 | isobject "^3.0.0" 754 | static-extend "^0.1.1" 755 | 756 | code-point-at@^1.0.0: 757 | version "1.1.0" 758 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 759 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 760 | 761 | collection-visit@^1.0.0: 762 | version "1.0.0" 763 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 764 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 765 | dependencies: 766 | map-visit "^1.0.0" 767 | object-visit "^1.0.0" 768 | 769 | color-convert@^1.9.0: 770 | version "1.9.3" 771 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 772 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 773 | dependencies: 774 | color-name "1.1.3" 775 | 776 | color-name@1.1.3: 777 | version "1.1.3" 778 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 779 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 780 | 781 | commander@2.15.1: 782 | version "2.15.1" 783 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 784 | integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== 785 | 786 | commander@^2.12.1, commander@^2.19.0: 787 | version "2.19.0" 788 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" 789 | integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== 790 | 791 | commander@~2.17.1: 792 | version "2.17.1" 793 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" 794 | integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== 795 | 796 | commondir@^1.0.1: 797 | version "1.0.1" 798 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 799 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 800 | 801 | component-emitter@^1.2.1: 802 | version "1.2.1" 803 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 804 | integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= 805 | 806 | concat-map@0.0.1: 807 | version "0.0.1" 808 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 809 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 810 | 811 | concat-stream@^1.5.0: 812 | version "1.6.2" 813 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 814 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 815 | dependencies: 816 | buffer-from "^1.0.0" 817 | inherits "^2.0.3" 818 | readable-stream "^2.2.2" 819 | typedarray "^0.0.6" 820 | 821 | console-browserify@^1.1.0: 822 | version "1.1.0" 823 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 824 | integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= 825 | dependencies: 826 | date-now "^0.1.4" 827 | 828 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 829 | version "1.1.0" 830 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 831 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 832 | 833 | constants-browserify@^1.0.0: 834 | version "1.0.0" 835 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 836 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 837 | 838 | content-disposition@0.5.2: 839 | version "0.5.2" 840 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 841 | integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= 842 | 843 | content-type@~1.0.4: 844 | version "1.0.4" 845 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 846 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 847 | 848 | cookie-signature@1.0.6: 849 | version "1.0.6" 850 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 851 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 852 | 853 | cookie@0.3.1: 854 | version "0.3.1" 855 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 856 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= 857 | 858 | copy-concurrently@^1.0.0: 859 | version "1.0.5" 860 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" 861 | integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== 862 | dependencies: 863 | aproba "^1.1.1" 864 | fs-write-stream-atomic "^1.0.8" 865 | iferr "^0.1.5" 866 | mkdirp "^0.5.1" 867 | rimraf "^2.5.4" 868 | run-queue "^1.0.0" 869 | 870 | copy-descriptor@^0.1.0: 871 | version "0.1.1" 872 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 873 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 874 | 875 | core-util-is@~1.0.0: 876 | version "1.0.2" 877 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 878 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 879 | 880 | create-ecdh@^4.0.0: 881 | version "4.0.3" 882 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 883 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== 884 | dependencies: 885 | bn.js "^4.1.0" 886 | elliptic "^6.0.0" 887 | 888 | create-hash@^1.1.0, create-hash@^1.1.2: 889 | version "1.2.0" 890 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 891 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 892 | dependencies: 893 | cipher-base "^1.0.1" 894 | inherits "^2.0.1" 895 | md5.js "^1.3.4" 896 | ripemd160 "^2.0.1" 897 | sha.js "^2.4.0" 898 | 899 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 900 | version "1.1.7" 901 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 902 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 903 | dependencies: 904 | cipher-base "^1.0.3" 905 | create-hash "^1.1.0" 906 | inherits "^2.0.1" 907 | ripemd160 "^2.0.0" 908 | safe-buffer "^5.0.1" 909 | sha.js "^2.4.8" 910 | 911 | crypto-browserify@^3.11.0: 912 | version "3.12.0" 913 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 914 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 915 | dependencies: 916 | browserify-cipher "^1.0.0" 917 | browserify-sign "^4.0.0" 918 | create-ecdh "^4.0.0" 919 | create-hash "^1.1.0" 920 | create-hmac "^1.1.0" 921 | diffie-hellman "^5.0.0" 922 | inherits "^2.0.1" 923 | pbkdf2 "^3.0.3" 924 | public-encrypt "^4.0.0" 925 | randombytes "^2.0.0" 926 | randomfill "^1.0.3" 927 | 928 | cyclist@~0.2.2: 929 | version "0.2.2" 930 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" 931 | integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= 932 | 933 | date-now@^0.1.4: 934 | version "0.1.4" 935 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 936 | integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= 937 | 938 | debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: 939 | version "2.6.9" 940 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 941 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 942 | dependencies: 943 | ms "2.0.0" 944 | 945 | debug@3.1.0: 946 | version "3.1.0" 947 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 948 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 949 | dependencies: 950 | ms "2.0.0" 951 | 952 | debug@^3.0.1: 953 | version "3.2.6" 954 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 955 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 956 | dependencies: 957 | ms "^2.1.1" 958 | 959 | decode-uri-component@^0.2.0: 960 | version "0.2.0" 961 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 962 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 963 | 964 | deep-extend@^0.6.0: 965 | version "0.6.0" 966 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 967 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 968 | 969 | deepmerge@^2.0.1: 970 | version "2.2.1" 971 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" 972 | integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== 973 | 974 | define-property@^0.2.5: 975 | version "0.2.5" 976 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 977 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 978 | dependencies: 979 | is-descriptor "^0.1.0" 980 | 981 | define-property@^1.0.0: 982 | version "1.0.0" 983 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 984 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 985 | dependencies: 986 | is-descriptor "^1.0.0" 987 | 988 | define-property@^2.0.2: 989 | version "2.0.2" 990 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 991 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 992 | dependencies: 993 | is-descriptor "^1.0.2" 994 | isobject "^3.0.1" 995 | 996 | delegates@^1.0.0: 997 | version "1.0.0" 998 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 999 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 1000 | 1001 | depd@~1.1.2: 1002 | version "1.1.2" 1003 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 1004 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 1005 | 1006 | des.js@^1.0.0: 1007 | version "1.0.0" 1008 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 1009 | integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= 1010 | dependencies: 1011 | inherits "^2.0.1" 1012 | minimalistic-assert "^1.0.0" 1013 | 1014 | destroy@~1.0.4: 1015 | version "1.0.4" 1016 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 1017 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 1018 | 1019 | detect-file@^1.0.0: 1020 | version "1.0.0" 1021 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" 1022 | integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= 1023 | 1024 | detect-libc@^1.0.2: 1025 | version "1.0.3" 1026 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 1027 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 1028 | 1029 | diff@3.5.0, diff@^3.1.0, diff@^3.2.0: 1030 | version "3.5.0" 1031 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 1032 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 1033 | 1034 | diffie-hellman@^5.0.0: 1035 | version "5.0.3" 1036 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 1037 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 1038 | dependencies: 1039 | bn.js "^4.1.0" 1040 | miller-rabin "^4.0.0" 1041 | randombytes "^2.0.0" 1042 | 1043 | domain-browser@^1.1.1: 1044 | version "1.2.0" 1045 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 1046 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== 1047 | 1048 | duplexify@^3.4.2, duplexify@^3.6.0: 1049 | version "3.6.1" 1050 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" 1051 | integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== 1052 | dependencies: 1053 | end-of-stream "^1.0.0" 1054 | inherits "^2.0.1" 1055 | readable-stream "^2.0.0" 1056 | stream-shift "^1.0.0" 1057 | 1058 | ecdsa-sig-formatter@1.0.10: 1059 | version "1.0.10" 1060 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3" 1061 | integrity sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM= 1062 | dependencies: 1063 | safe-buffer "^5.0.1" 1064 | 1065 | ee-first@1.1.1: 1066 | version "1.1.1" 1067 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 1068 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 1069 | 1070 | elliptic@^6.0.0: 1071 | version "6.4.1" 1072 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" 1073 | integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== 1074 | dependencies: 1075 | bn.js "^4.4.0" 1076 | brorand "^1.0.1" 1077 | hash.js "^1.0.0" 1078 | hmac-drbg "^1.0.0" 1079 | inherits "^2.0.1" 1080 | minimalistic-assert "^1.0.0" 1081 | minimalistic-crypto-utils "^1.0.0" 1082 | 1083 | emojis-list@^2.0.0: 1084 | version "2.1.0" 1085 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 1086 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= 1087 | 1088 | encodeurl@~1.0.2: 1089 | version "1.0.2" 1090 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 1091 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 1092 | 1093 | end-of-stream@^1.0.0, end-of-stream@^1.1.0: 1094 | version "1.4.1" 1095 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 1096 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 1097 | dependencies: 1098 | once "^1.4.0" 1099 | 1100 | enhanced-resolve@^4.1.0: 1101 | version "4.1.0" 1102 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" 1103 | integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== 1104 | dependencies: 1105 | graceful-fs "^4.1.2" 1106 | memory-fs "^0.4.0" 1107 | tapable "^1.0.0" 1108 | 1109 | errno@^0.1.3, errno@~0.1.7: 1110 | version "0.1.7" 1111 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 1112 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== 1113 | dependencies: 1114 | prr "~1.0.1" 1115 | 1116 | es6-promise@^4.1.1: 1117 | version "4.2.5" 1118 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" 1119 | integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg== 1120 | 1121 | escape-html@~1.0.3: 1122 | version "1.0.3" 1123 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 1124 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 1125 | 1126 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 1127 | version "1.0.5" 1128 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1129 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1130 | 1131 | eslint-scope@^4.0.0: 1132 | version "4.0.0" 1133 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" 1134 | integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== 1135 | dependencies: 1136 | esrecurse "^4.1.0" 1137 | estraverse "^4.1.1" 1138 | 1139 | esprima@^4.0.0: 1140 | version "4.0.1" 1141 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1142 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1143 | 1144 | esrecurse@^4.1.0: 1145 | version "4.2.1" 1146 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 1147 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 1148 | dependencies: 1149 | estraverse "^4.1.0" 1150 | 1151 | estraverse@^4.1.0, estraverse@^4.1.1: 1152 | version "4.2.0" 1153 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1154 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 1155 | 1156 | esutils@^2.0.2: 1157 | version "2.0.2" 1158 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1159 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 1160 | 1161 | etag@~1.8.1: 1162 | version "1.8.1" 1163 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 1164 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 1165 | 1166 | events@^1.0.0: 1167 | version "1.1.1" 1168 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 1169 | integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= 1170 | 1171 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1172 | version "1.0.3" 1173 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1174 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 1175 | dependencies: 1176 | md5.js "^1.3.4" 1177 | safe-buffer "^5.1.1" 1178 | 1179 | expand-brackets@^2.1.4: 1180 | version "2.1.4" 1181 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1182 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 1183 | dependencies: 1184 | debug "^2.3.3" 1185 | define-property "^0.2.5" 1186 | extend-shallow "^2.0.1" 1187 | posix-character-classes "^0.1.0" 1188 | regex-not "^1.0.0" 1189 | snapdragon "^0.8.1" 1190 | to-regex "^3.0.1" 1191 | 1192 | expand-tilde@^2.0.0, expand-tilde@^2.0.2: 1193 | version "2.0.2" 1194 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" 1195 | integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= 1196 | dependencies: 1197 | homedir-polyfill "^1.0.1" 1198 | 1199 | express-http-proxy@^1.4.0: 1200 | version "1.5.1" 1201 | resolved "https://registry.yarnpkg.com/express-http-proxy/-/express-http-proxy-1.5.1.tgz#cbf45695c759693c9c5f946117462d25b57e77a8" 1202 | integrity sha512-k1RdysZWZ8wdPnsLa4iyrrYyUFih/sYKkn6WfkU/q5A8eUdh3l+oXhrRuQmEYEsZmiexVvpiOCkogl03jYfcbg== 1203 | dependencies: 1204 | debug "^3.0.1" 1205 | es6-promise "^4.1.1" 1206 | raw-body "^2.3.0" 1207 | 1208 | express@^4.16.4: 1209 | version "4.16.4" 1210 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" 1211 | integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== 1212 | dependencies: 1213 | accepts "~1.3.5" 1214 | array-flatten "1.1.1" 1215 | body-parser "1.18.3" 1216 | content-disposition "0.5.2" 1217 | content-type "~1.0.4" 1218 | cookie "0.3.1" 1219 | cookie-signature "1.0.6" 1220 | debug "2.6.9" 1221 | depd "~1.1.2" 1222 | encodeurl "~1.0.2" 1223 | escape-html "~1.0.3" 1224 | etag "~1.8.1" 1225 | finalhandler "1.1.1" 1226 | fresh "0.5.2" 1227 | merge-descriptors "1.0.1" 1228 | methods "~1.1.2" 1229 | on-finished "~2.3.0" 1230 | parseurl "~1.3.2" 1231 | path-to-regexp "0.1.7" 1232 | proxy-addr "~2.0.4" 1233 | qs "6.5.2" 1234 | range-parser "~1.2.0" 1235 | safe-buffer "5.1.2" 1236 | send "0.16.2" 1237 | serve-static "1.13.2" 1238 | setprototypeof "1.1.0" 1239 | statuses "~1.4.0" 1240 | type-is "~1.6.16" 1241 | utils-merge "1.0.1" 1242 | vary "~1.1.2" 1243 | 1244 | extend-shallow@^2.0.1: 1245 | version "2.0.1" 1246 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1247 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 1248 | dependencies: 1249 | is-extendable "^0.1.0" 1250 | 1251 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1252 | version "3.0.2" 1253 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1254 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 1255 | dependencies: 1256 | assign-symbols "^1.0.0" 1257 | is-extendable "^1.0.1" 1258 | 1259 | extglob@^2.0.4: 1260 | version "2.0.4" 1261 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1262 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 1263 | dependencies: 1264 | array-unique "^0.3.2" 1265 | define-property "^1.0.0" 1266 | expand-brackets "^2.1.4" 1267 | extend-shallow "^2.0.1" 1268 | fragment-cache "^0.2.1" 1269 | regex-not "^1.0.0" 1270 | snapdragon "^0.8.1" 1271 | to-regex "^3.0.1" 1272 | 1273 | fast-deep-equal@^2.0.1: 1274 | version "2.0.1" 1275 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 1276 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 1277 | 1278 | fast-json-stable-stringify@^2.0.0: 1279 | version "2.0.0" 1280 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1281 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 1282 | 1283 | figgy-pudding@^3.5.1: 1284 | version "3.5.1" 1285 | resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" 1286 | integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== 1287 | 1288 | fill-range@^4.0.0: 1289 | version "4.0.0" 1290 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1291 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 1292 | dependencies: 1293 | extend-shallow "^2.0.1" 1294 | is-number "^3.0.0" 1295 | repeat-string "^1.6.1" 1296 | to-regex-range "^2.1.0" 1297 | 1298 | finalhandler@1.1.1: 1299 | version "1.1.1" 1300 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 1301 | integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg== 1302 | dependencies: 1303 | debug "2.6.9" 1304 | encodeurl "~1.0.2" 1305 | escape-html "~1.0.3" 1306 | on-finished "~2.3.0" 1307 | parseurl "~1.3.2" 1308 | statuses "~1.4.0" 1309 | unpipe "~1.0.0" 1310 | 1311 | find-cache-dir@^2.0.0: 1312 | version "2.0.0" 1313 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" 1314 | integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== 1315 | dependencies: 1316 | commondir "^1.0.1" 1317 | make-dir "^1.0.0" 1318 | pkg-dir "^3.0.0" 1319 | 1320 | find-up@^3.0.0: 1321 | version "3.0.0" 1322 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1323 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 1324 | dependencies: 1325 | locate-path "^3.0.0" 1326 | 1327 | findup-sync@^2.0.0: 1328 | version "2.0.0" 1329 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" 1330 | integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= 1331 | dependencies: 1332 | detect-file "^1.0.0" 1333 | is-glob "^3.1.0" 1334 | micromatch "^3.0.4" 1335 | resolve-dir "^1.0.1" 1336 | 1337 | flush-write-stream@^1.0.0: 1338 | version "1.0.3" 1339 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" 1340 | integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== 1341 | dependencies: 1342 | inherits "^2.0.1" 1343 | readable-stream "^2.0.4" 1344 | 1345 | for-in@^1.0.2: 1346 | version "1.0.2" 1347 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1348 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 1349 | 1350 | forwarded@~0.1.2: 1351 | version "0.1.2" 1352 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1353 | integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 1354 | 1355 | fragment-cache@^0.2.1: 1356 | version "0.2.1" 1357 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1358 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 1359 | dependencies: 1360 | map-cache "^0.2.2" 1361 | 1362 | fresh@0.5.2: 1363 | version "0.5.2" 1364 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1365 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1366 | 1367 | from2@^2.1.0: 1368 | version "2.3.0" 1369 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" 1370 | integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= 1371 | dependencies: 1372 | inherits "^2.0.1" 1373 | readable-stream "^2.0.0" 1374 | 1375 | fs-minipass@^1.2.5: 1376 | version "1.2.5" 1377 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1378 | integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== 1379 | dependencies: 1380 | minipass "^2.2.1" 1381 | 1382 | fs-write-stream-atomic@^1.0.8: 1383 | version "1.0.10" 1384 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" 1385 | integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= 1386 | dependencies: 1387 | graceful-fs "^4.1.2" 1388 | iferr "^0.1.5" 1389 | imurmurhash "^0.1.4" 1390 | readable-stream "1 || 2" 1391 | 1392 | fs.realpath@^1.0.0: 1393 | version "1.0.0" 1394 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1395 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1396 | 1397 | fsevents@^1.2.2: 1398 | version "1.2.4" 1399 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1400 | integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== 1401 | dependencies: 1402 | nan "^2.9.2" 1403 | node-pre-gyp "^0.10.0" 1404 | 1405 | gauge@~2.7.3: 1406 | version "2.7.4" 1407 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1408 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 1409 | dependencies: 1410 | aproba "^1.0.3" 1411 | console-control-strings "^1.0.0" 1412 | has-unicode "^2.0.0" 1413 | object-assign "^4.1.0" 1414 | signal-exit "^3.0.0" 1415 | string-width "^1.0.1" 1416 | strip-ansi "^3.0.1" 1417 | wide-align "^1.1.0" 1418 | 1419 | get-port@^4.0.0: 1420 | version "4.1.0" 1421 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.1.0.tgz#93eb3d5552c197497d76e9c389a6ac9920e20192" 1422 | integrity sha512-4/fqAYrzrzOiqDrdeZRKXGdTGgbkfTEumGlNQPeP6Jy8w0PzN9mzeNQ3XgHaTNie8pQ3hOUkrwlZt2Fzk5H9mA== 1423 | 1424 | get-value@^2.0.3, get-value@^2.0.6: 1425 | version "2.0.6" 1426 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1427 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 1428 | 1429 | git-branch@^2.0.1: 1430 | version "2.0.1" 1431 | resolved "https://registry.yarnpkg.com/git-branch/-/git-branch-2.0.1.tgz#442724a97574c66ede4290ded75b7430785da08f" 1432 | integrity sha512-jMCT1kjXvsUdZKQd2p8E1uZhKsIuR1pnHgcDYQpQiXBtzE9cmYGvOcCSGqqi58x0B9CPS0lUSu/yti866est8g== 1433 | dependencies: 1434 | findup-sync "^2.0.0" 1435 | 1436 | glob-parent@^3.1.0: 1437 | version "3.1.0" 1438 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1439 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 1440 | dependencies: 1441 | is-glob "^3.1.0" 1442 | path-dirname "^1.0.0" 1443 | 1444 | glob@7.1.2: 1445 | version "7.1.2" 1446 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1447 | integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== 1448 | dependencies: 1449 | fs.realpath "^1.0.0" 1450 | inflight "^1.0.4" 1451 | inherits "2" 1452 | minimatch "^3.0.4" 1453 | once "^1.3.0" 1454 | path-is-absolute "^1.0.0" 1455 | 1456 | glob@^7.1.1, glob@^7.1.3: 1457 | version "7.1.3" 1458 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1459 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 1460 | dependencies: 1461 | fs.realpath "^1.0.0" 1462 | inflight "^1.0.4" 1463 | inherits "2" 1464 | minimatch "^3.0.4" 1465 | once "^1.3.0" 1466 | path-is-absolute "^1.0.0" 1467 | 1468 | global-modules@^1.0.0: 1469 | version "1.0.0" 1470 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" 1471 | integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== 1472 | dependencies: 1473 | global-prefix "^1.0.1" 1474 | is-windows "^1.0.1" 1475 | resolve-dir "^1.0.0" 1476 | 1477 | global-prefix@^1.0.1: 1478 | version "1.0.2" 1479 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" 1480 | integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= 1481 | dependencies: 1482 | expand-tilde "^2.0.2" 1483 | homedir-polyfill "^1.0.1" 1484 | ini "^1.3.4" 1485 | is-windows "^1.0.1" 1486 | which "^1.2.14" 1487 | 1488 | graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: 1489 | version "4.1.15" 1490 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 1491 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 1492 | 1493 | growl@1.10.5: 1494 | version "1.10.5" 1495 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 1496 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 1497 | 1498 | has-ansi@^2.0.0: 1499 | version "2.0.0" 1500 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1501 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 1502 | dependencies: 1503 | ansi-regex "^2.0.0" 1504 | 1505 | has-flag@^3.0.0: 1506 | version "3.0.0" 1507 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1508 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1509 | 1510 | has-unicode@^2.0.0: 1511 | version "2.0.1" 1512 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1513 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 1514 | 1515 | has-value@^0.3.1: 1516 | version "0.3.1" 1517 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1518 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 1519 | dependencies: 1520 | get-value "^2.0.3" 1521 | has-values "^0.1.4" 1522 | isobject "^2.0.0" 1523 | 1524 | has-value@^1.0.0: 1525 | version "1.0.0" 1526 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1527 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 1528 | dependencies: 1529 | get-value "^2.0.6" 1530 | has-values "^1.0.0" 1531 | isobject "^3.0.0" 1532 | 1533 | has-values@^0.1.4: 1534 | version "0.1.4" 1535 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1536 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 1537 | 1538 | has-values@^1.0.0: 1539 | version "1.0.0" 1540 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1541 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 1542 | dependencies: 1543 | is-number "^3.0.0" 1544 | kind-of "^4.0.0" 1545 | 1546 | hash-base@^3.0.0: 1547 | version "3.0.4" 1548 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 1549 | integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= 1550 | dependencies: 1551 | inherits "^2.0.1" 1552 | safe-buffer "^5.0.1" 1553 | 1554 | hash.js@^1.0.0, hash.js@^1.0.3: 1555 | version "1.1.7" 1556 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 1557 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 1558 | dependencies: 1559 | inherits "^2.0.3" 1560 | minimalistic-assert "^1.0.1" 1561 | 1562 | he@1.1.1: 1563 | version "1.1.1" 1564 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 1565 | integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= 1566 | 1567 | hmac-drbg@^1.0.0: 1568 | version "1.0.1" 1569 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1570 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 1571 | dependencies: 1572 | hash.js "^1.0.3" 1573 | minimalistic-assert "^1.0.0" 1574 | minimalistic-crypto-utils "^1.0.1" 1575 | 1576 | homedir-polyfill@^1.0.1: 1577 | version "1.0.1" 1578 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 1579 | integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= 1580 | dependencies: 1581 | parse-passwd "^1.0.0" 1582 | 1583 | html-entities@^1.2.0: 1584 | version "1.2.1" 1585 | resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" 1586 | integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= 1587 | 1588 | http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: 1589 | version "1.6.3" 1590 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 1591 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 1592 | dependencies: 1593 | depd "~1.1.2" 1594 | inherits "2.0.3" 1595 | setprototypeof "1.1.0" 1596 | statuses ">= 1.4.0 < 2" 1597 | 1598 | https-browserify@^1.0.0: 1599 | version "1.0.0" 1600 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1601 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 1602 | 1603 | iconv-lite@0.4.23: 1604 | version "0.4.23" 1605 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1606 | integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== 1607 | dependencies: 1608 | safer-buffer ">= 2.1.2 < 3" 1609 | 1610 | iconv-lite@^0.4.4: 1611 | version "0.4.24" 1612 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1613 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1614 | dependencies: 1615 | safer-buffer ">= 2.1.2 < 3" 1616 | 1617 | ieee754@^1.1.4: 1618 | version "1.1.12" 1619 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" 1620 | integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== 1621 | 1622 | iferr@^0.1.5: 1623 | version "0.1.5" 1624 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" 1625 | integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= 1626 | 1627 | ignore-walk@^3.0.1: 1628 | version "3.0.1" 1629 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1630 | integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== 1631 | dependencies: 1632 | minimatch "^3.0.4" 1633 | 1634 | imurmurhash@^0.1.4: 1635 | version "0.1.4" 1636 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1637 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1638 | 1639 | indexof@0.0.1: 1640 | version "0.0.1" 1641 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1642 | integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= 1643 | 1644 | inflight@^1.0.4: 1645 | version "1.0.6" 1646 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1647 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1648 | dependencies: 1649 | once "^1.3.0" 1650 | wrappy "1" 1651 | 1652 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1653 | version "2.0.3" 1654 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1655 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1656 | 1657 | inherits@2.0.1: 1658 | version "2.0.1" 1659 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1660 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 1661 | 1662 | ini@^1.3.4, ini@~1.3.0: 1663 | version "1.3.5" 1664 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1665 | integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== 1666 | 1667 | ipaddr.js@1.8.0: 1668 | version "1.8.0" 1669 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" 1670 | integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= 1671 | 1672 | is-accessor-descriptor@^0.1.6: 1673 | version "0.1.6" 1674 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1675 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 1676 | dependencies: 1677 | kind-of "^3.0.2" 1678 | 1679 | is-accessor-descriptor@^1.0.0: 1680 | version "1.0.0" 1681 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1682 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 1683 | dependencies: 1684 | kind-of "^6.0.0" 1685 | 1686 | is-binary-path@^1.0.0: 1687 | version "1.0.1" 1688 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1689 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 1690 | dependencies: 1691 | binary-extensions "^1.0.0" 1692 | 1693 | is-buffer@^1.1.5: 1694 | version "1.1.6" 1695 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1696 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 1697 | 1698 | is-data-descriptor@^0.1.4: 1699 | version "0.1.4" 1700 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1701 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 1702 | dependencies: 1703 | kind-of "^3.0.2" 1704 | 1705 | is-data-descriptor@^1.0.0: 1706 | version "1.0.0" 1707 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1708 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 1709 | dependencies: 1710 | kind-of "^6.0.0" 1711 | 1712 | is-descriptor@^0.1.0: 1713 | version "0.1.6" 1714 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1715 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 1716 | dependencies: 1717 | is-accessor-descriptor "^0.1.6" 1718 | is-data-descriptor "^0.1.4" 1719 | kind-of "^5.0.0" 1720 | 1721 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1722 | version "1.0.2" 1723 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1724 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 1725 | dependencies: 1726 | is-accessor-descriptor "^1.0.0" 1727 | is-data-descriptor "^1.0.0" 1728 | kind-of "^6.0.2" 1729 | 1730 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1731 | version "0.1.1" 1732 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1733 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 1734 | 1735 | is-extendable@^1.0.1: 1736 | version "1.0.1" 1737 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1738 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 1739 | dependencies: 1740 | is-plain-object "^2.0.4" 1741 | 1742 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1743 | version "2.1.1" 1744 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1745 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1746 | 1747 | is-fullwidth-code-point@^1.0.0: 1748 | version "1.0.0" 1749 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1750 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1751 | dependencies: 1752 | number-is-nan "^1.0.0" 1753 | 1754 | is-fullwidth-code-point@^2.0.0: 1755 | version "2.0.0" 1756 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1757 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1758 | 1759 | is-glob@^3.1.0: 1760 | version "3.1.0" 1761 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1762 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 1763 | dependencies: 1764 | is-extglob "^2.1.0" 1765 | 1766 | is-glob@^4.0.0: 1767 | version "4.0.0" 1768 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" 1769 | integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= 1770 | dependencies: 1771 | is-extglob "^2.1.1" 1772 | 1773 | is-number@^3.0.0: 1774 | version "3.0.0" 1775 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1776 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 1777 | dependencies: 1778 | kind-of "^3.0.2" 1779 | 1780 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1781 | version "2.0.4" 1782 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1783 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1784 | dependencies: 1785 | isobject "^3.0.1" 1786 | 1787 | is-windows@^1.0.1, is-windows@^1.0.2: 1788 | version "1.0.2" 1789 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1790 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 1791 | 1792 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1793 | version "1.0.0" 1794 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1795 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1796 | 1797 | isexe@^2.0.0: 1798 | version "2.0.0" 1799 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1800 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1801 | 1802 | isobject@^2.0.0: 1803 | version "2.1.0" 1804 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1805 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1806 | dependencies: 1807 | isarray "1.0.0" 1808 | 1809 | isobject@^3.0.0, isobject@^3.0.1: 1810 | version "3.0.1" 1811 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1812 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1813 | 1814 | js-tokens@^3.0.2: 1815 | version "3.0.2" 1816 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1817 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 1818 | 1819 | js-yaml@^3.7.0: 1820 | version "3.13.1" 1821 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1822 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 1823 | dependencies: 1824 | argparse "^1.0.7" 1825 | esprima "^4.0.0" 1826 | 1827 | json-parse-better-errors@^1.0.2: 1828 | version "1.0.2" 1829 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1830 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1831 | 1832 | json-schema-traverse@^0.4.1: 1833 | version "0.4.1" 1834 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1835 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1836 | 1837 | json5@^1.0.1: 1838 | version "1.0.1" 1839 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1840 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1841 | dependencies: 1842 | minimist "^1.2.0" 1843 | 1844 | jsonwebtoken@^8.3.0: 1845 | version "8.4.0" 1846 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.4.0.tgz#8757f7b4cb7440d86d5e2f3becefa70536c8e46a" 1847 | integrity sha512-coyXjRTCy0pw5WYBpMvWOMN+Kjaik2MwTUIq9cna/W7NpO9E+iYbumZONAz3hcr+tXFJECoQVrtmIoC3Oz0gvg== 1848 | dependencies: 1849 | jws "^3.1.5" 1850 | lodash.includes "^4.3.0" 1851 | lodash.isboolean "^3.0.3" 1852 | lodash.isinteger "^4.0.4" 1853 | lodash.isnumber "^3.0.3" 1854 | lodash.isplainobject "^4.0.6" 1855 | lodash.isstring "^4.0.1" 1856 | lodash.once "^4.0.0" 1857 | ms "^2.1.1" 1858 | 1859 | jwa@^1.1.5: 1860 | version "1.1.6" 1861 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6" 1862 | integrity sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw== 1863 | dependencies: 1864 | buffer-equal-constant-time "1.0.1" 1865 | ecdsa-sig-formatter "1.0.10" 1866 | safe-buffer "^5.0.1" 1867 | 1868 | jws@^3.1.5: 1869 | version "3.1.5" 1870 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f" 1871 | integrity sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ== 1872 | dependencies: 1873 | jwa "^1.1.5" 1874 | safe-buffer "^5.0.1" 1875 | 1876 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1877 | version "3.2.2" 1878 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1879 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1880 | dependencies: 1881 | is-buffer "^1.1.5" 1882 | 1883 | kind-of@^4.0.0: 1884 | version "4.0.0" 1885 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1886 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1887 | dependencies: 1888 | is-buffer "^1.1.5" 1889 | 1890 | kind-of@^5.0.0: 1891 | version "5.1.0" 1892 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1893 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 1894 | 1895 | kind-of@^6.0.0, kind-of@^6.0.2: 1896 | version "6.0.2" 1897 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1898 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== 1899 | 1900 | loader-runner@^2.3.0: 1901 | version "2.3.1" 1902 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" 1903 | integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== 1904 | 1905 | loader-utils@^1.1.0: 1906 | version "1.2.3" 1907 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" 1908 | integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== 1909 | dependencies: 1910 | big.js "^5.2.2" 1911 | emojis-list "^2.0.0" 1912 | json5 "^1.0.1" 1913 | 1914 | locate-path@^3.0.0: 1915 | version "3.0.0" 1916 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1917 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1918 | dependencies: 1919 | p-locate "^3.0.0" 1920 | path-exists "^3.0.0" 1921 | 1922 | lodash.debounce@^4.0.8: 1923 | version "4.0.8" 1924 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1925 | integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= 1926 | 1927 | lodash.includes@^4.3.0: 1928 | version "4.3.0" 1929 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1930 | integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 1931 | 1932 | lodash.isboolean@^3.0.3: 1933 | version "3.0.3" 1934 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1935 | integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 1936 | 1937 | lodash.isinteger@^4.0.4: 1938 | version "4.0.4" 1939 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1940 | integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 1941 | 1942 | lodash.isnumber@^3.0.3: 1943 | version "3.0.3" 1944 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1945 | integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 1946 | 1947 | lodash.isplainobject@^4.0.6: 1948 | version "4.0.6" 1949 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1950 | integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 1951 | 1952 | lodash.isstring@^4.0.1: 1953 | version "4.0.1" 1954 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1955 | integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 1956 | 1957 | lodash.once@^4.0.0: 1958 | version "4.1.1" 1959 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1960 | integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 1961 | 1962 | lru-cache@^5.1.1: 1963 | version "5.1.1" 1964 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1965 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1966 | dependencies: 1967 | yallist "^3.0.2" 1968 | 1969 | make-dir@^1.0.0: 1970 | version "1.3.0" 1971 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 1972 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== 1973 | dependencies: 1974 | pify "^3.0.0" 1975 | 1976 | make-error@^1.1.1: 1977 | version "1.3.5" 1978 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" 1979 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== 1980 | 1981 | mamacro@^0.0.3: 1982 | version "0.0.3" 1983 | resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" 1984 | integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== 1985 | 1986 | map-cache@^0.2.2: 1987 | version "0.2.2" 1988 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1989 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1990 | 1991 | map-visit@^1.0.0: 1992 | version "1.0.0" 1993 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1994 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1995 | dependencies: 1996 | object-visit "^1.0.0" 1997 | 1998 | md5.js@^1.3.4: 1999 | version "1.3.5" 2000 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 2001 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 2002 | dependencies: 2003 | hash-base "^3.0.0" 2004 | inherits "^2.0.1" 2005 | safe-buffer "^5.1.2" 2006 | 2007 | media-typer@0.3.0: 2008 | version "0.3.0" 2009 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 2010 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 2011 | 2012 | memory-fs@^0.4.0, memory-fs@~0.4.1: 2013 | version "0.4.1" 2014 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 2015 | integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= 2016 | dependencies: 2017 | errno "^0.1.3" 2018 | readable-stream "^2.0.1" 2019 | 2020 | merge-descriptors@1.0.1: 2021 | version "1.0.1" 2022 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 2023 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 2024 | 2025 | methods@~1.1.2: 2026 | version "1.1.2" 2027 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 2028 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 2029 | 2030 | micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: 2031 | version "3.1.10" 2032 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2033 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 2034 | dependencies: 2035 | arr-diff "^4.0.0" 2036 | array-unique "^0.3.2" 2037 | braces "^2.3.1" 2038 | define-property "^2.0.2" 2039 | extend-shallow "^3.0.2" 2040 | extglob "^2.0.4" 2041 | fragment-cache "^0.2.1" 2042 | kind-of "^6.0.2" 2043 | nanomatch "^1.2.9" 2044 | object.pick "^1.3.0" 2045 | regex-not "^1.0.0" 2046 | snapdragon "^0.8.1" 2047 | to-regex "^3.0.2" 2048 | 2049 | miller-rabin@^4.0.0: 2050 | version "4.0.1" 2051 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 2052 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 2053 | dependencies: 2054 | bn.js "^4.0.0" 2055 | brorand "^1.0.1" 2056 | 2057 | mime-db@~1.37.0: 2058 | version "1.37.0" 2059 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" 2060 | integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== 2061 | 2062 | mime-types@~2.1.18: 2063 | version "2.1.21" 2064 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" 2065 | integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== 2066 | dependencies: 2067 | mime-db "~1.37.0" 2068 | 2069 | mime@1.4.1: 2070 | version "1.4.1" 2071 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 2072 | integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== 2073 | 2074 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 2075 | version "1.0.1" 2076 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 2077 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 2078 | 2079 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 2080 | version "1.0.1" 2081 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 2082 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 2083 | 2084 | minimatch@3.0.4, minimatch@^3.0.4: 2085 | version "3.0.4" 2086 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2087 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 2088 | dependencies: 2089 | brace-expansion "^1.1.7" 2090 | 2091 | minimist@0.0.8: 2092 | version "0.0.8" 2093 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2094 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 2095 | 2096 | minimist@^1.2.0: 2097 | version "1.2.0" 2098 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2099 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 2100 | 2101 | minipass@^2.2.1, minipass@^2.3.4: 2102 | version "2.3.5" 2103 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" 2104 | integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== 2105 | dependencies: 2106 | safe-buffer "^5.1.2" 2107 | yallist "^3.0.0" 2108 | 2109 | minizlib@^1.1.1: 2110 | version "1.2.1" 2111 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" 2112 | integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== 2113 | dependencies: 2114 | minipass "^2.2.1" 2115 | 2116 | mississippi@^3.0.0: 2117 | version "3.0.0" 2118 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" 2119 | integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== 2120 | dependencies: 2121 | concat-stream "^1.5.0" 2122 | duplexify "^3.4.2" 2123 | end-of-stream "^1.1.0" 2124 | flush-write-stream "^1.0.0" 2125 | from2 "^2.1.0" 2126 | parallel-transform "^1.1.0" 2127 | pump "^3.0.0" 2128 | pumpify "^1.3.3" 2129 | stream-each "^1.1.0" 2130 | through2 "^2.0.0" 2131 | 2132 | mixin-deep@^1.2.0: 2133 | version "1.3.1" 2134 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 2135 | integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== 2136 | dependencies: 2137 | for-in "^1.0.2" 2138 | is-extendable "^1.0.1" 2139 | 2140 | mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 2141 | version "0.5.1" 2142 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2143 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 2144 | dependencies: 2145 | minimist "0.0.8" 2146 | 2147 | mocha@^5.2.0: 2148 | version "5.2.0" 2149 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" 2150 | integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== 2151 | dependencies: 2152 | browser-stdout "1.3.1" 2153 | commander "2.15.1" 2154 | debug "3.1.0" 2155 | diff "3.5.0" 2156 | escape-string-regexp "1.0.5" 2157 | glob "7.1.2" 2158 | growl "1.10.5" 2159 | he "1.1.1" 2160 | minimatch "3.0.4" 2161 | mkdirp "0.5.1" 2162 | supports-color "5.4.0" 2163 | 2164 | move-concurrently@^1.0.1: 2165 | version "1.0.1" 2166 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" 2167 | integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= 2168 | dependencies: 2169 | aproba "^1.1.1" 2170 | copy-concurrently "^1.0.0" 2171 | fs-write-stream-atomic "^1.0.8" 2172 | mkdirp "^0.5.1" 2173 | rimraf "^2.5.4" 2174 | run-queue "^1.0.3" 2175 | 2176 | ms@2.0.0: 2177 | version "2.0.0" 2178 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2179 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 2180 | 2181 | ms@^2.1.1: 2182 | version "2.1.1" 2183 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 2184 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 2185 | 2186 | nan@^2.9.2: 2187 | version "2.12.1" 2188 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" 2189 | integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== 2190 | 2191 | nanomatch@^1.2.9: 2192 | version "1.2.13" 2193 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 2194 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 2195 | dependencies: 2196 | arr-diff "^4.0.0" 2197 | array-unique "^0.3.2" 2198 | define-property "^2.0.2" 2199 | extend-shallow "^3.0.2" 2200 | fragment-cache "^0.2.1" 2201 | is-windows "^1.0.2" 2202 | kind-of "^6.0.2" 2203 | object.pick "^1.3.0" 2204 | regex-not "^1.0.0" 2205 | snapdragon "^0.8.1" 2206 | to-regex "^3.0.1" 2207 | 2208 | needle@^2.2.1: 2209 | version "2.2.4" 2210 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" 2211 | integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== 2212 | dependencies: 2213 | debug "^2.1.2" 2214 | iconv-lite "^0.4.4" 2215 | sax "^1.2.4" 2216 | 2217 | negotiator@0.6.1: 2218 | version "0.6.1" 2219 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 2220 | integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= 2221 | 2222 | neo-async@^2.5.0: 2223 | version "2.6.0" 2224 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" 2225 | integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== 2226 | 2227 | node-libs-browser@^2.0.0: 2228 | version "2.1.0" 2229 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" 2230 | integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== 2231 | dependencies: 2232 | assert "^1.1.1" 2233 | browserify-zlib "^0.2.0" 2234 | buffer "^4.3.0" 2235 | console-browserify "^1.1.0" 2236 | constants-browserify "^1.0.0" 2237 | crypto-browserify "^3.11.0" 2238 | domain-browser "^1.1.1" 2239 | events "^1.0.0" 2240 | https-browserify "^1.0.0" 2241 | os-browserify "^0.3.0" 2242 | path-browserify "0.0.0" 2243 | process "^0.11.10" 2244 | punycode "^1.2.4" 2245 | querystring-es3 "^0.2.0" 2246 | readable-stream "^2.3.3" 2247 | stream-browserify "^2.0.1" 2248 | stream-http "^2.7.2" 2249 | string_decoder "^1.0.0" 2250 | timers-browserify "^2.0.4" 2251 | tty-browserify "0.0.0" 2252 | url "^0.11.0" 2253 | util "^0.10.3" 2254 | vm-browserify "0.0.4" 2255 | 2256 | node-pre-gyp@^0.10.0: 2257 | version "0.10.3" 2258 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" 2259 | integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== 2260 | dependencies: 2261 | detect-libc "^1.0.2" 2262 | mkdirp "^0.5.1" 2263 | needle "^2.2.1" 2264 | nopt "^4.0.1" 2265 | npm-packlist "^1.1.6" 2266 | npmlog "^4.0.2" 2267 | rc "^1.2.7" 2268 | rimraf "^2.6.1" 2269 | semver "^5.3.0" 2270 | tar "^4" 2271 | 2272 | nopt@^4.0.1: 2273 | version "4.0.1" 2274 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2275 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= 2276 | dependencies: 2277 | abbrev "1" 2278 | osenv "^0.1.4" 2279 | 2280 | normalize-path@^2.1.1: 2281 | version "2.1.1" 2282 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2283 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 2284 | dependencies: 2285 | remove-trailing-separator "^1.0.1" 2286 | 2287 | npm-bundled@^1.0.1: 2288 | version "1.0.5" 2289 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" 2290 | integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== 2291 | 2292 | npm-packlist@^1.1.6: 2293 | version "1.2.0" 2294 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f" 2295 | integrity sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ== 2296 | dependencies: 2297 | ignore-walk "^3.0.1" 2298 | npm-bundled "^1.0.1" 2299 | 2300 | npmlog@^4.0.2: 2301 | version "4.1.2" 2302 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2303 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 2304 | dependencies: 2305 | are-we-there-yet "~1.1.2" 2306 | console-control-strings "~1.1.0" 2307 | gauge "~2.7.3" 2308 | set-blocking "~2.0.0" 2309 | 2310 | number-is-nan@^1.0.0: 2311 | version "1.0.1" 2312 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2313 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 2314 | 2315 | object-assign@^4.1.0: 2316 | version "4.1.1" 2317 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2318 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2319 | 2320 | object-copy@^0.1.0: 2321 | version "0.1.0" 2322 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2323 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 2324 | dependencies: 2325 | copy-descriptor "^0.1.0" 2326 | define-property "^0.2.5" 2327 | kind-of "^3.0.3" 2328 | 2329 | object-visit@^1.0.0: 2330 | version "1.0.1" 2331 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2332 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 2333 | dependencies: 2334 | isobject "^3.0.0" 2335 | 2336 | object.pick@^1.3.0: 2337 | version "1.3.0" 2338 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2339 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 2340 | dependencies: 2341 | isobject "^3.0.1" 2342 | 2343 | on-finished@~2.3.0: 2344 | version "2.3.0" 2345 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2346 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2347 | dependencies: 2348 | ee-first "1.1.1" 2349 | 2350 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2351 | version "1.4.0" 2352 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2353 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2354 | dependencies: 2355 | wrappy "1" 2356 | 2357 | os-browserify@^0.3.0: 2358 | version "0.3.0" 2359 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 2360 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 2361 | 2362 | os-homedir@^1.0.0: 2363 | version "1.0.2" 2364 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2365 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 2366 | 2367 | os-tmpdir@^1.0.0: 2368 | version "1.0.2" 2369 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2370 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 2371 | 2372 | osenv@^0.1.4: 2373 | version "0.1.5" 2374 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2375 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== 2376 | dependencies: 2377 | os-homedir "^1.0.0" 2378 | os-tmpdir "^1.0.0" 2379 | 2380 | p-limit@^2.0.0: 2381 | version "2.1.0" 2382 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" 2383 | integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== 2384 | dependencies: 2385 | p-try "^2.0.0" 2386 | 2387 | p-locate@^3.0.0: 2388 | version "3.0.0" 2389 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2390 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 2391 | dependencies: 2392 | p-limit "^2.0.0" 2393 | 2394 | p-try@^2.0.0: 2395 | version "2.0.0" 2396 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" 2397 | integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== 2398 | 2399 | pako@~1.0.5: 2400 | version "1.0.7" 2401 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" 2402 | integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== 2403 | 2404 | parallel-transform@^1.1.0: 2405 | version "1.1.0" 2406 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" 2407 | integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= 2408 | dependencies: 2409 | cyclist "~0.2.2" 2410 | inherits "^2.0.3" 2411 | readable-stream "^2.1.5" 2412 | 2413 | parse-asn1@^5.0.0: 2414 | version "5.1.1" 2415 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" 2416 | integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== 2417 | dependencies: 2418 | asn1.js "^4.0.0" 2419 | browserify-aes "^1.0.0" 2420 | create-hash "^1.1.0" 2421 | evp_bytestokey "^1.0.0" 2422 | pbkdf2 "^3.0.3" 2423 | 2424 | parse-passwd@^1.0.0: 2425 | version "1.0.0" 2426 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 2427 | integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= 2428 | 2429 | parseurl@~1.3.2: 2430 | version "1.3.2" 2431 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 2432 | integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= 2433 | 2434 | pascalcase@^0.1.1: 2435 | version "0.1.1" 2436 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2437 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 2438 | 2439 | path-browserify@0.0.0: 2440 | version "0.0.0" 2441 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 2442 | integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= 2443 | 2444 | path-dirname@^1.0.0: 2445 | version "1.0.2" 2446 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2447 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 2448 | 2449 | path-exists@^3.0.0: 2450 | version "3.0.0" 2451 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2452 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 2453 | 2454 | path-is-absolute@^1.0.0: 2455 | version "1.0.1" 2456 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2457 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2458 | 2459 | path-parse@^1.0.6: 2460 | version "1.0.6" 2461 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2462 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 2463 | 2464 | path-to-regexp@0.1.7: 2465 | version "0.1.7" 2466 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2467 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 2468 | 2469 | pbkdf2@^3.0.3: 2470 | version "3.0.17" 2471 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 2472 | integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== 2473 | dependencies: 2474 | create-hash "^1.1.2" 2475 | create-hmac "^1.1.4" 2476 | ripemd160 "^2.0.1" 2477 | safe-buffer "^5.0.1" 2478 | sha.js "^2.4.8" 2479 | 2480 | pify@^3.0.0: 2481 | version "3.0.0" 2482 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2483 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 2484 | 2485 | pkg-dir@^3.0.0: 2486 | version "3.0.0" 2487 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" 2488 | integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== 2489 | dependencies: 2490 | find-up "^3.0.0" 2491 | 2492 | posix-character-classes@^0.1.0: 2493 | version "0.1.1" 2494 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2495 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 2496 | 2497 | process-nextick-args@~2.0.0: 2498 | version "2.0.0" 2499 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2500 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== 2501 | 2502 | process@^0.11.10: 2503 | version "0.11.10" 2504 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2505 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 2506 | 2507 | promise-inflight@^1.0.1: 2508 | version "1.0.1" 2509 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 2510 | integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= 2511 | 2512 | proxy-addr@~2.0.4: 2513 | version "2.0.4" 2514 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" 2515 | integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== 2516 | dependencies: 2517 | forwarded "~0.1.2" 2518 | ipaddr.js "1.8.0" 2519 | 2520 | prr@~1.0.1: 2521 | version "1.0.1" 2522 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 2523 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= 2524 | 2525 | public-encrypt@^4.0.0: 2526 | version "4.0.3" 2527 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 2528 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 2529 | dependencies: 2530 | bn.js "^4.1.0" 2531 | browserify-rsa "^4.0.0" 2532 | create-hash "^1.1.0" 2533 | parse-asn1 "^5.0.0" 2534 | randombytes "^2.0.1" 2535 | safe-buffer "^5.1.2" 2536 | 2537 | pump@^2.0.0: 2538 | version "2.0.1" 2539 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 2540 | integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== 2541 | dependencies: 2542 | end-of-stream "^1.1.0" 2543 | once "^1.3.1" 2544 | 2545 | pump@^3.0.0: 2546 | version "3.0.0" 2547 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 2548 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2549 | dependencies: 2550 | end-of-stream "^1.1.0" 2551 | once "^1.3.1" 2552 | 2553 | pumpify@^1.3.3: 2554 | version "1.5.1" 2555 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" 2556 | integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== 2557 | dependencies: 2558 | duplexify "^3.6.0" 2559 | inherits "^2.0.3" 2560 | pump "^2.0.0" 2561 | 2562 | punycode@1.3.2: 2563 | version "1.3.2" 2564 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2565 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 2566 | 2567 | punycode@^1.2.4: 2568 | version "1.4.1" 2569 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2570 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 2571 | 2572 | punycode@^2.1.0: 2573 | version "2.1.1" 2574 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2575 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2576 | 2577 | qs@6.5.2: 2578 | version "6.5.2" 2579 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2580 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 2581 | 2582 | querystring-es3@^0.2.0: 2583 | version "0.2.1" 2584 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2585 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 2586 | 2587 | querystring@0.2.0, querystring@^0.2.0: 2588 | version "0.2.0" 2589 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2590 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 2591 | 2592 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2593 | version "2.0.6" 2594 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" 2595 | integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== 2596 | dependencies: 2597 | safe-buffer "^5.1.0" 2598 | 2599 | randomfill@^1.0.3: 2600 | version "1.0.4" 2601 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2602 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 2603 | dependencies: 2604 | randombytes "^2.0.5" 2605 | safe-buffer "^5.1.0" 2606 | 2607 | range-parser@~1.2.0: 2608 | version "1.2.0" 2609 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 2610 | integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= 2611 | 2612 | raw-body@2.3.3, raw-body@^2.3.0: 2613 | version "2.3.3" 2614 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 2615 | integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== 2616 | dependencies: 2617 | bytes "3.0.0" 2618 | http-errors "1.6.3" 2619 | iconv-lite "0.4.23" 2620 | unpipe "1.0.0" 2621 | 2622 | rc@^1.2.7: 2623 | version "1.2.8" 2624 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2625 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 2626 | dependencies: 2627 | deep-extend "^0.6.0" 2628 | ini "~1.3.0" 2629 | minimist "^1.2.0" 2630 | strip-json-comments "~2.0.1" 2631 | 2632 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: 2633 | version "2.3.6" 2634 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2635 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 2636 | dependencies: 2637 | core-util-is "~1.0.0" 2638 | inherits "~2.0.3" 2639 | isarray "~1.0.0" 2640 | process-nextick-args "~2.0.0" 2641 | safe-buffer "~5.1.1" 2642 | string_decoder "~1.1.1" 2643 | util-deprecate "~1.0.1" 2644 | 2645 | readdirp@^2.0.0: 2646 | version "2.2.1" 2647 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2648 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 2649 | dependencies: 2650 | graceful-fs "^4.1.11" 2651 | micromatch "^3.1.10" 2652 | readable-stream "^2.0.2" 2653 | 2654 | regex-not@^1.0.0, regex-not@^1.0.2: 2655 | version "1.0.2" 2656 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2657 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 2658 | dependencies: 2659 | extend-shallow "^3.0.2" 2660 | safe-regex "^1.1.0" 2661 | 2662 | remove-trailing-separator@^1.0.1: 2663 | version "1.1.0" 2664 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2665 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 2666 | 2667 | repeat-element@^1.1.2: 2668 | version "1.1.3" 2669 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2670 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 2671 | 2672 | repeat-string@^1.6.1: 2673 | version "1.6.1" 2674 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2675 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 2676 | 2677 | resolve-dir@^1.0.0, resolve-dir@^1.0.1: 2678 | version "1.0.1" 2679 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" 2680 | integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= 2681 | dependencies: 2682 | expand-tilde "^2.0.0" 2683 | global-modules "^1.0.0" 2684 | 2685 | resolve-url@^0.2.1: 2686 | version "0.2.1" 2687 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2688 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 2689 | 2690 | resolve@^1.3.2: 2691 | version "1.9.0" 2692 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" 2693 | integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ== 2694 | dependencies: 2695 | path-parse "^1.0.6" 2696 | 2697 | ret@~0.1.10: 2698 | version "0.1.15" 2699 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2700 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 2701 | 2702 | rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: 2703 | version "2.6.3" 2704 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 2705 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 2706 | dependencies: 2707 | glob "^7.1.3" 2708 | 2709 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2710 | version "2.0.2" 2711 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2712 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 2713 | dependencies: 2714 | hash-base "^3.0.0" 2715 | inherits "^2.0.1" 2716 | 2717 | run-queue@^1.0.0, run-queue@^1.0.3: 2718 | version "1.0.3" 2719 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" 2720 | integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= 2721 | dependencies: 2722 | aproba "^1.1.1" 2723 | 2724 | safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2725 | version "5.1.2" 2726 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2727 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2728 | 2729 | safe-regex@^1.1.0: 2730 | version "1.1.0" 2731 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2732 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 2733 | dependencies: 2734 | ret "~0.1.10" 2735 | 2736 | "safer-buffer@>= 2.1.2 < 3": 2737 | version "2.1.2" 2738 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2739 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2740 | 2741 | sax@^1.2.4: 2742 | version "1.2.4" 2743 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2744 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 2745 | 2746 | schema-utils@^1.0.0: 2747 | version "1.0.0" 2748 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" 2749 | integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== 2750 | dependencies: 2751 | ajv "^6.1.0" 2752 | ajv-errors "^1.0.0" 2753 | ajv-keywords "^3.1.0" 2754 | 2755 | semver@^5.3.0: 2756 | version "5.6.0" 2757 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 2758 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 2759 | 2760 | send@0.16.2: 2761 | version "0.16.2" 2762 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 2763 | integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== 2764 | dependencies: 2765 | debug "2.6.9" 2766 | depd "~1.1.2" 2767 | destroy "~1.0.4" 2768 | encodeurl "~1.0.2" 2769 | escape-html "~1.0.3" 2770 | etag "~1.8.1" 2771 | fresh "0.5.2" 2772 | http-errors "~1.6.2" 2773 | mime "1.4.1" 2774 | ms "2.0.0" 2775 | on-finished "~2.3.0" 2776 | range-parser "~1.2.0" 2777 | statuses "~1.4.0" 2778 | 2779 | serialize-javascript@^1.4.0: 2780 | version "1.6.1" 2781 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" 2782 | integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== 2783 | 2784 | serve-static@1.13.2, serve-static@^1.13.2: 2785 | version "1.13.2" 2786 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 2787 | integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== 2788 | dependencies: 2789 | encodeurl "~1.0.2" 2790 | escape-html "~1.0.3" 2791 | parseurl "~1.3.2" 2792 | send "0.16.2" 2793 | 2794 | set-blocking@~2.0.0: 2795 | version "2.0.0" 2796 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2797 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2798 | 2799 | set-value@^0.4.3: 2800 | version "0.4.3" 2801 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2802 | integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= 2803 | dependencies: 2804 | extend-shallow "^2.0.1" 2805 | is-extendable "^0.1.1" 2806 | is-plain-object "^2.0.1" 2807 | to-object-path "^0.3.0" 2808 | 2809 | set-value@^2.0.0: 2810 | version "2.0.0" 2811 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2812 | integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== 2813 | dependencies: 2814 | extend-shallow "^2.0.1" 2815 | is-extendable "^0.1.1" 2816 | is-plain-object "^2.0.3" 2817 | split-string "^3.0.1" 2818 | 2819 | setimmediate@^1.0.4: 2820 | version "1.0.5" 2821 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2822 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 2823 | 2824 | setprototypeof@1.1.0: 2825 | version "1.1.0" 2826 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 2827 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 2828 | 2829 | sha.js@^2.4.0, sha.js@^2.4.8: 2830 | version "2.4.11" 2831 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2832 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 2833 | dependencies: 2834 | inherits "^2.0.1" 2835 | safe-buffer "^5.0.1" 2836 | 2837 | signal-exit@^3.0.0: 2838 | version "3.0.2" 2839 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2840 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 2841 | 2842 | snapdragon-node@^2.0.1: 2843 | version "2.1.1" 2844 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2845 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 2846 | dependencies: 2847 | define-property "^1.0.0" 2848 | isobject "^3.0.0" 2849 | snapdragon-util "^3.0.1" 2850 | 2851 | snapdragon-util@^3.0.1: 2852 | version "3.0.1" 2853 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2854 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 2855 | dependencies: 2856 | kind-of "^3.2.0" 2857 | 2858 | snapdragon@^0.8.1: 2859 | version "0.8.2" 2860 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2861 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 2862 | dependencies: 2863 | base "^0.11.1" 2864 | debug "^2.2.0" 2865 | define-property "^0.2.5" 2866 | extend-shallow "^2.0.1" 2867 | map-cache "^0.2.2" 2868 | source-map "^0.5.6" 2869 | source-map-resolve "^0.5.0" 2870 | use "^3.1.0" 2871 | 2872 | source-list-map@^2.0.0: 2873 | version "2.0.1" 2874 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 2875 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 2876 | 2877 | source-map-resolve@^0.5.0: 2878 | version "0.5.2" 2879 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2880 | integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== 2881 | dependencies: 2882 | atob "^2.1.1" 2883 | decode-uri-component "^0.2.0" 2884 | resolve-url "^0.2.1" 2885 | source-map-url "^0.4.0" 2886 | urix "^0.1.0" 2887 | 2888 | source-map-support@^0.5.6, source-map-support@~0.5.6: 2889 | version "0.5.9" 2890 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" 2891 | integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== 2892 | dependencies: 2893 | buffer-from "^1.0.0" 2894 | source-map "^0.6.0" 2895 | 2896 | source-map-url@^0.4.0: 2897 | version "0.4.0" 2898 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2899 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 2900 | 2901 | source-map@^0.5.6: 2902 | version "0.5.7" 2903 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2904 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2905 | 2906 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 2907 | version "0.6.1" 2908 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2909 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2910 | 2911 | split-string@^3.0.1, split-string@^3.0.2: 2912 | version "3.1.0" 2913 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2914 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 2915 | dependencies: 2916 | extend-shallow "^3.0.0" 2917 | 2918 | sprintf-js@~1.0.2: 2919 | version "1.0.3" 2920 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2921 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2922 | 2923 | ssri@^6.0.1: 2924 | version "6.0.1" 2925 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" 2926 | integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== 2927 | dependencies: 2928 | figgy-pudding "^3.5.1" 2929 | 2930 | static-extend@^0.1.1: 2931 | version "0.1.2" 2932 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2933 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 2934 | dependencies: 2935 | define-property "^0.2.5" 2936 | object-copy "^0.1.0" 2937 | 2938 | "statuses@>= 1.4.0 < 2": 2939 | version "1.5.0" 2940 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2941 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2942 | 2943 | statuses@~1.4.0: 2944 | version "1.4.0" 2945 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 2946 | integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== 2947 | 2948 | stream-browserify@^2.0.1: 2949 | version "2.0.1" 2950 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 2951 | integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= 2952 | dependencies: 2953 | inherits "~2.0.1" 2954 | readable-stream "^2.0.2" 2955 | 2956 | stream-each@^1.1.0: 2957 | version "1.2.3" 2958 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" 2959 | integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== 2960 | dependencies: 2961 | end-of-stream "^1.1.0" 2962 | stream-shift "^1.0.0" 2963 | 2964 | stream-http@^2.7.2: 2965 | version "2.8.3" 2966 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 2967 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== 2968 | dependencies: 2969 | builtin-status-codes "^3.0.0" 2970 | inherits "^2.0.1" 2971 | readable-stream "^2.3.6" 2972 | to-arraybuffer "^1.0.0" 2973 | xtend "^4.0.0" 2974 | 2975 | stream-shift@^1.0.0: 2976 | version "1.0.0" 2977 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 2978 | integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= 2979 | 2980 | string-width@^1.0.1: 2981 | version "1.0.2" 2982 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2983 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 2984 | dependencies: 2985 | code-point-at "^1.0.0" 2986 | is-fullwidth-code-point "^1.0.0" 2987 | strip-ansi "^3.0.0" 2988 | 2989 | "string-width@^1.0.2 || 2": 2990 | version "2.1.1" 2991 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2992 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2993 | dependencies: 2994 | is-fullwidth-code-point "^2.0.0" 2995 | strip-ansi "^4.0.0" 2996 | 2997 | string_decoder@^1.0.0: 2998 | version "1.2.0" 2999 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" 3000 | integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== 3001 | dependencies: 3002 | safe-buffer "~5.1.0" 3003 | 3004 | string_decoder@~1.1.1: 3005 | version "1.1.1" 3006 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3007 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 3008 | dependencies: 3009 | safe-buffer "~5.1.0" 3010 | 3011 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3012 | version "3.0.1" 3013 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3014 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 3015 | dependencies: 3016 | ansi-regex "^2.0.0" 3017 | 3018 | strip-ansi@^4.0.0: 3019 | version "4.0.0" 3020 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3021 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 3022 | dependencies: 3023 | ansi-regex "^3.0.0" 3024 | 3025 | strip-bom@^3.0.0: 3026 | version "3.0.0" 3027 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3028 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 3029 | 3030 | strip-json-comments@~2.0.1: 3031 | version "2.0.1" 3032 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3033 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 3034 | 3035 | supports-color@5.4.0: 3036 | version "5.4.0" 3037 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 3038 | integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== 3039 | dependencies: 3040 | has-flag "^3.0.0" 3041 | 3042 | supports-color@^2.0.0: 3043 | version "2.0.0" 3044 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3045 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 3046 | 3047 | supports-color@^5.3.0: 3048 | version "5.5.0" 3049 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 3050 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3051 | dependencies: 3052 | has-flag "^3.0.0" 3053 | 3054 | tapable@^1.0.0, tapable@^1.1.0: 3055 | version "1.1.1" 3056 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" 3057 | integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== 3058 | 3059 | tar@^4: 3060 | version "4.4.8" 3061 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" 3062 | integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== 3063 | dependencies: 3064 | chownr "^1.1.1" 3065 | fs-minipass "^1.2.5" 3066 | minipass "^2.3.4" 3067 | minizlib "^1.1.1" 3068 | mkdirp "^0.5.0" 3069 | safe-buffer "^5.1.2" 3070 | yallist "^3.0.2" 3071 | 3072 | terser-webpack-plugin@^1.1.0: 3073 | version "1.2.1" 3074 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz#7545da9ae5f4f9ae6a0ac961eb46f5e7c845cc26" 3075 | integrity sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw== 3076 | dependencies: 3077 | cacache "^11.0.2" 3078 | find-cache-dir "^2.0.0" 3079 | schema-utils "^1.0.0" 3080 | serialize-javascript "^1.4.0" 3081 | source-map "^0.6.1" 3082 | terser "^3.8.1" 3083 | webpack-sources "^1.1.0" 3084 | worker-farm "^1.5.2" 3085 | 3086 | terser@^3.8.1: 3087 | version "3.14.1" 3088 | resolved "https://registry.yarnpkg.com/terser/-/terser-3.14.1.tgz#cc4764014af570bc79c79742358bd46926018a32" 3089 | integrity sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw== 3090 | dependencies: 3091 | commander "~2.17.1" 3092 | source-map "~0.6.1" 3093 | source-map-support "~0.5.6" 3094 | 3095 | through2@^2.0.0: 3096 | version "2.0.5" 3097 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" 3098 | integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== 3099 | dependencies: 3100 | readable-stream "~2.3.6" 3101 | xtend "~4.0.1" 3102 | 3103 | timers-browserify@^2.0.4: 3104 | version "2.0.10" 3105 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" 3106 | integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== 3107 | dependencies: 3108 | setimmediate "^1.0.4" 3109 | 3110 | to-arraybuffer@^1.0.0: 3111 | version "1.0.1" 3112 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 3113 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= 3114 | 3115 | to-object-path@^0.3.0: 3116 | version "0.3.0" 3117 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3118 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 3119 | dependencies: 3120 | kind-of "^3.0.2" 3121 | 3122 | to-regex-range@^2.1.0: 3123 | version "2.1.1" 3124 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3125 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 3126 | dependencies: 3127 | is-number "^3.0.0" 3128 | repeat-string "^1.6.1" 3129 | 3130 | to-regex@^3.0.1, to-regex@^3.0.2: 3131 | version "3.0.2" 3132 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3133 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 3134 | dependencies: 3135 | define-property "^2.0.2" 3136 | extend-shallow "^3.0.2" 3137 | regex-not "^1.0.2" 3138 | safe-regex "^1.1.0" 3139 | 3140 | toml@^3.0.0: 3141 | version "3.0.0" 3142 | resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" 3143 | integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== 3144 | 3145 | ts-mocha@^2.0.0: 3146 | version "2.0.0" 3147 | resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-2.0.0.tgz#0dbd3cd04671df9933b9303b4aa46347573c5635" 3148 | integrity sha512-Rj6+vvwKtOTs5GsNO1jLl4DIXUGnyAg5HFt2Yb4SHIRN45clTJkHWpNdTxCSL0u+1oeavSYJah6d1PZ++Ju5pw== 3149 | dependencies: 3150 | ts-node "7.0.0" 3151 | optionalDependencies: 3152 | tsconfig-paths "^3.5.0" 3153 | 3154 | ts-node@7.0.0: 3155 | version "7.0.0" 3156 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.0.tgz#a94a13c75e5e1aa6b82814b84c68deb339ba7bff" 3157 | integrity sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q== 3158 | dependencies: 3159 | arrify "^1.0.0" 3160 | buffer-from "^1.1.0" 3161 | diff "^3.1.0" 3162 | make-error "^1.1.1" 3163 | minimist "^1.2.0" 3164 | mkdirp "^0.5.1" 3165 | source-map-support "^0.5.6" 3166 | yn "^2.0.0" 3167 | 3168 | tsconfig-paths@^3.5.0: 3169 | version "3.7.0" 3170 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.7.0.tgz#02ae978db447b22e09dafcd4198be95c4885ceb2" 3171 | integrity sha512-7iE+Q/2E1lgvxD+c0Ot+GFFmgmfIjt/zCayyruXkXQ84BLT85gHXy0WSoQSiuFX9+d+keE/jiON7notV74ZY+A== 3172 | dependencies: 3173 | "@types/json5" "^0.0.29" 3174 | deepmerge "^2.0.1" 3175 | json5 "^1.0.1" 3176 | minimist "^1.2.0" 3177 | strip-bom "^3.0.0" 3178 | 3179 | tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: 3180 | version "1.9.3" 3181 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 3182 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 3183 | 3184 | tslint@^5.12.0: 3185 | version "5.12.1" 3186 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.1.tgz#8cec9d454cf8a1de9b0a26d7bdbad6de362e52c1" 3187 | integrity sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw== 3188 | dependencies: 3189 | babel-code-frame "^6.22.0" 3190 | builtin-modules "^1.1.1" 3191 | chalk "^2.3.0" 3192 | commander "^2.12.1" 3193 | diff "^3.2.0" 3194 | glob "^7.1.1" 3195 | js-yaml "^3.7.0" 3196 | minimatch "^3.0.4" 3197 | resolve "^1.3.2" 3198 | semver "^5.3.0" 3199 | tslib "^1.8.0" 3200 | tsutils "^2.27.2" 3201 | 3202 | tsutils@^2.27.2: 3203 | version "2.29.0" 3204 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 3205 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== 3206 | dependencies: 3207 | tslib "^1.8.1" 3208 | 3209 | tty-browserify@0.0.0: 3210 | version "0.0.0" 3211 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 3212 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= 3213 | 3214 | type-is@~1.6.16: 3215 | version "1.6.16" 3216 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 3217 | integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== 3218 | dependencies: 3219 | media-typer "0.3.0" 3220 | mime-types "~2.1.18" 3221 | 3222 | typedarray@^0.0.6: 3223 | version "0.0.6" 3224 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3225 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 3226 | 3227 | typescript@^3.1.3: 3228 | version "3.5.3" 3229 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" 3230 | integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== 3231 | 3232 | union-value@^1.0.0: 3233 | version "1.0.0" 3234 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 3235 | integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= 3236 | dependencies: 3237 | arr-union "^3.1.0" 3238 | get-value "^2.0.6" 3239 | is-extendable "^0.1.1" 3240 | set-value "^0.4.3" 3241 | 3242 | unique-filename@^1.1.1: 3243 | version "1.1.1" 3244 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" 3245 | integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== 3246 | dependencies: 3247 | unique-slug "^2.0.0" 3248 | 3249 | unique-slug@^2.0.0: 3250 | version "2.0.1" 3251 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" 3252 | integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== 3253 | dependencies: 3254 | imurmurhash "^0.1.4" 3255 | 3256 | unpipe@1.0.0, unpipe@~1.0.0: 3257 | version "1.0.0" 3258 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 3259 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 3260 | 3261 | unset-value@^1.0.0: 3262 | version "1.0.0" 3263 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3264 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 3265 | dependencies: 3266 | has-value "^0.3.1" 3267 | isobject "^3.0.0" 3268 | 3269 | upath@^1.0.5: 3270 | version "1.1.0" 3271 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" 3272 | integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== 3273 | 3274 | uri-js@^4.2.2: 3275 | version "4.2.2" 3276 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 3277 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 3278 | dependencies: 3279 | punycode "^2.1.0" 3280 | 3281 | urix@^0.1.0: 3282 | version "0.1.0" 3283 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3284 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 3285 | 3286 | url-pattern@^1.0.3: 3287 | version "1.0.3" 3288 | resolved "https://registry.yarnpkg.com/url-pattern/-/url-pattern-1.0.3.tgz#0409292471b24f23c50d65a47931793d2b5acfc1" 3289 | integrity sha1-BAkpJHGyTyPFDWWkeTF5PStaz8E= 3290 | 3291 | url@^0.11.0: 3292 | version "0.11.0" 3293 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 3294 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 3295 | dependencies: 3296 | punycode "1.3.2" 3297 | querystring "0.2.0" 3298 | 3299 | use@^3.1.0: 3300 | version "3.1.1" 3301 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 3302 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 3303 | 3304 | util-deprecate@~1.0.1: 3305 | version "1.0.2" 3306 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3307 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 3308 | 3309 | util@0.10.3: 3310 | version "0.10.3" 3311 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 3312 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 3313 | dependencies: 3314 | inherits "2.0.1" 3315 | 3316 | util@^0.10.3: 3317 | version "0.10.4" 3318 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" 3319 | integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== 3320 | dependencies: 3321 | inherits "2.0.3" 3322 | 3323 | utils-merge@1.0.1: 3324 | version "1.0.1" 3325 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 3326 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 3327 | 3328 | vary@~1.1.2: 3329 | version "1.1.2" 3330 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 3331 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 3332 | 3333 | vm-browserify@0.0.4: 3334 | version "0.0.4" 3335 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 3336 | integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= 3337 | dependencies: 3338 | indexof "0.0.1" 3339 | 3340 | watchpack@^1.5.0: 3341 | version "1.6.0" 3342 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 3343 | integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== 3344 | dependencies: 3345 | chokidar "^2.0.2" 3346 | graceful-fs "^4.1.2" 3347 | neo-async "^2.5.0" 3348 | 3349 | webpack-hot-middleware@^2.24.3: 3350 | version "2.24.3" 3351 | resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.24.3.tgz#5bb76259a8fc0d97463ab517640ba91d3382d4a6" 3352 | integrity sha512-pPlmcdoR2Fn6UhYjAhp1g/IJy1Yc9hD+T6O9mjRcWV2pFbBjIFoJXhP0CoD0xPOhWJuWXuZXGBga9ybbOdzXpg== 3353 | dependencies: 3354 | ansi-html "0.0.7" 3355 | html-entities "^1.2.0" 3356 | querystring "^0.2.0" 3357 | strip-ansi "^3.0.0" 3358 | 3359 | webpack-sources@^1.1.0, webpack-sources@^1.3.0: 3360 | version "1.3.0" 3361 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" 3362 | integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== 3363 | dependencies: 3364 | source-list-map "^2.0.0" 3365 | source-map "~0.6.1" 3366 | 3367 | webpack@^4.20.2: 3368 | version "4.35.3" 3369 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.35.3.tgz#66bc35ef215a7b75e8790f84d560013ffecf0ca3" 3370 | integrity sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA== 3371 | dependencies: 3372 | "@webassemblyjs/ast" "1.8.5" 3373 | "@webassemblyjs/helper-module-context" "1.8.5" 3374 | "@webassemblyjs/wasm-edit" "1.8.5" 3375 | "@webassemblyjs/wasm-parser" "1.8.5" 3376 | acorn "^6.2.0" 3377 | ajv "^6.1.0" 3378 | ajv-keywords "^3.1.0" 3379 | chrome-trace-event "^1.0.0" 3380 | enhanced-resolve "^4.1.0" 3381 | eslint-scope "^4.0.0" 3382 | json-parse-better-errors "^1.0.2" 3383 | loader-runner "^2.3.0" 3384 | loader-utils "^1.1.0" 3385 | memory-fs "~0.4.1" 3386 | micromatch "^3.1.8" 3387 | mkdirp "~0.5.0" 3388 | neo-async "^2.5.0" 3389 | node-libs-browser "^2.0.0" 3390 | schema-utils "^1.0.0" 3391 | tapable "^1.1.0" 3392 | terser-webpack-plugin "^1.1.0" 3393 | watchpack "^1.5.0" 3394 | webpack-sources "^1.3.0" 3395 | 3396 | which@^1.2.14: 3397 | version "1.3.1" 3398 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3399 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 3400 | dependencies: 3401 | isexe "^2.0.0" 3402 | 3403 | wide-align@^1.1.0: 3404 | version "1.1.3" 3405 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3406 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 3407 | dependencies: 3408 | string-width "^1.0.2 || 2" 3409 | 3410 | worker-farm@^1.5.2: 3411 | version "1.6.0" 3412 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" 3413 | integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== 3414 | dependencies: 3415 | errno "~0.1.7" 3416 | 3417 | wrappy@1: 3418 | version "1.0.2" 3419 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3420 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3421 | 3422 | xtend@^4.0.0, xtend@~4.0.1: 3423 | version "4.0.1" 3424 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3425 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= 3426 | 3427 | y18n@^4.0.0: 3428 | version "4.0.0" 3429 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3430 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 3431 | 3432 | yallist@^3.0.0, yallist@^3.0.2: 3433 | version "3.0.3" 3434 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" 3435 | integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== 3436 | 3437 | yn@^2.0.0: 3438 | version "2.0.0" 3439 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 3440 | integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= 3441 | --------------------------------------------------------------------------------