diff --git a/.gitignore b/.gitignore index 6eecb4d2..f8cc68f9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,8 @@ node_modules lib/ stats.json +e2e/build/ +cypress/ /coverage .ghpages-tmp diff --git a/cypress.json b/cypress.json new file mode 100644 index 00000000..d9a183e3 --- /dev/null +++ b/cypress.json @@ -0,0 +1,8 @@ +{ + "integrationFolder": "e2e/.build", + "fixturesFolder": false, + "supportFile": false, + "fileServerFolder": ".", + "videoRecording": false, + "screenshotOnHeadlessFailure": false +} diff --git a/e2e/.build/standalone.e2e.js b/e2e/.build/standalone.e2e.js new file mode 100644 index 00000000..d38ed49a --- /dev/null +++ b/e2e/.build/standalone.e2e.js @@ -0,0 +1,31 @@ +describe('Standalone bundle test', function () { + describe('OAS3 mode', function () { + it('Render and check no errors', function () { + cy + .visit('e2e/standalone.html') + .get('.api-info') + .should('exist'); + }); + it('Render and click all the menu items', function () { + cy + .visit('e2e/standalone.html') + .get('.menu-content li') + .click({ multiple: true }); + }); + }); + describe('OAS2 compatibility mode', function () { + it('Render and check no errors', function () { + cy + .visit('e2e/standalone.html') + .get('.api-info') + .should('exist'); + }); + it('Render and click all the menu items', function () { + cy + .visit('e2e/standalone.html') + .get('.menu-content li') + .click({ multiple: true }); + }); + }); +}); +//# sourceMappingURL=standalone.e2e.js.map \ No newline at end of file diff --git a/e2e/.build/standalone.e2e.js.map b/e2e/.build/standalone.e2e.js.map new file mode 100644 index 00000000..a4c53327 --- /dev/null +++ b/e2e/.build/standalone.e2e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"standalone.e2e.js","sourceRoot":"","sources":["../standalone.e2e.ts"],"names":[],"mappings":"AAAA,QAAQ,CAAC,wBAAwB,EAAE;IACjC,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,4BAA4B,EAAE;YAC/B,EAAE;iBACC,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,GAAG,CAAC,WAAW,CAAC;iBAChB,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE;YACxC,EAAE;iBACC,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,GAAG,CAAC,kBAAkB,CAAC;iBACvB,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE;QAClC,EAAE,CAAC,4BAA4B,EAAE;YAC/B,EAAE;iBACC,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,GAAG,CAAC,WAAW,CAAC;iBAChB,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE;YACxC,EAAE;iBACC,KAAK,CAAC,qBAAqB,CAAC;iBAC5B,GAAG,CAAC,kBAAkB,CAAC;iBACvB,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/e2e/standalone-compatibility.html b/e2e/standalone-compatibility.html new file mode 100644 index 00000000..73d0181c --- /dev/null +++ b/e2e/standalone-compatibility.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/e2e/standalone.e2e.ts b/e2e/standalone.e2e.ts new file mode 100644 index 00000000..4f09bc07 --- /dev/null +++ b/e2e/standalone.e2e.ts @@ -0,0 +1,33 @@ +describe('Standalone bundle test', function() { + describe('OAS3 mode', () => { + it('Render and check no errors', function() { + cy + .visit('e2e/standalone.html') + .get('.api-info') + .should('exist'); + }); + + it('Render and click all the menu items', function() { + cy + .visit('e2e/standalone.html') + .get('.menu-content li') + .click({ multiple: true }); + }); + }); + + describe('OAS2 compatibility mode', () => { + it('Render and check no errors', function() { + cy + .visit('e2e/standalone.html') + .get('.api-info') + .should('exist'); + }); + + it('Render and click all the menu items', function() { + cy + .visit('e2e/standalone.html') + .get('.menu-content li') + .click({ multiple: true }); + }); + }); +}); diff --git a/e2e/standalone.html b/e2e/standalone.html new file mode 100644 index 00000000..b9f1f448 --- /dev/null +++ b/e2e/standalone.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/package.json b/package.json index 9d7ccaa4..24cee077 100644 --- a/package.json +++ b/package.json @@ -9,19 +9,27 @@ "start:perf": "webpack-dev-server --env.prod --env.perf", "start:prod": "webpack-dev-server --env.prod", "dev": "webpack-dashboard -- webpack-dev-server --hot", - "test": "jest", - "bundle": "webpack", - "bundle:prod": "webpack -p --env.prod", + "test": "npm run unit && npm run e2e", + "unit": "jest", + "e2e": "npm run e2e:tsc && cypress run", + "e2e:tsc": "tsc -p tsconfig.e2e.json", + "e2e:clean": "rimraf e2e/.build", + "cy:open": "cypress open", + "bundle:clean": "rimraf bundles", + "bundle": "npm run bundle:clean && webpack -p --env.prod --env.standalone", "stats": "webpack -p --env.prod --json --profile > stats.json", "prettier": "prettier --write \"src/**/*.{ts,tsx}\"" }, "author": "", "license": "MIT", "devDependencies": { + "@types/chai": "^4.0.5", + "@types/cypress": "^0.1.2", "@types/enzyme": "^2.8.10", "@types/enzyme-to-json": "^1.5.0", "@types/jest": "^20.0.8", "@types/json-pointer": "^1.0.30", + "@types/mocha": "^2.2.44", "@types/prismjs": "^1.6.4", "@types/react": "^16.0.9", "@types/react-dom": "^16.0.0", @@ -31,6 +39,7 @@ "@types/webpack-env": "^1.13.0", "awesome-typescript-loader": "^3.2.2", "css-loader": "^0.28.7", + "cypress": "^1.0.3", "enzyme": "^3.1.1", "enzyme-adapter-react-16": "^1.0.4", "enzyme-to-json": "^3.2.2", @@ -51,7 +60,10 @@ "typescript": "^2.4.2", "webpack": "^3.4.1", "webpack-dashboard": "^0.4.0", - "webpack-dev-server": "^2.6.1" + "webpack-dev-server": "^2.6.1", + "http-server": "^0.10.0", + "core-js": "^2.5.1", + "rimraf": "^2.6.2" }, "dependencies": { "decko": "^1.2.0", diff --git a/src/components/LoadingWrap/LoadingWrap.tsx b/src/components/LoadingWrap/LoadingWrap.tsx index b276e9ca..6c34f3f9 100644 --- a/src/components/LoadingWrap/LoadingWrap.tsx +++ b/src/components/LoadingWrap/LoadingWrap.tsx @@ -5,17 +5,17 @@ import styled from '../../styled-components'; import { Spinner } from './Spinner.svg'; const LoadingMessage = styled.div` - font-family: ${props => props.theme.baseFont.family}; + font-family: black; width: 100%; text-align: center; font-size: 25px; margin: 30px 0 20px 0; - color: ${props => props.theme.colors.main}; + color: black; `; export class LoadingWrap extends React.Component<{ loading: boolean }> { render() { - if (this.props.loading) { + if (!this.props.loading) { return Children.only(this.props.children); } return ( diff --git a/src/components/LoadingWrap/Spinner.svg.tsx b/src/components/LoadingWrap/Spinner.svg.tsx index 77cfcf0d..0361720b 100644 --- a/src/components/LoadingWrap/Spinner.svg.tsx +++ b/src/components/LoadingWrap/Spinner.svg.tsx @@ -31,6 +31,6 @@ export const Spinner = styled(_Spinner)` margin-left: -25px; path { - fill: ${props => props.theme.colors.main}; + fill: black; } `; diff --git a/src/components/Redoc/Redoc.tsx b/src/components/Redoc/Redoc.tsx index 48b1602e..5e1e0854 100644 --- a/src/components/Redoc/Redoc.tsx +++ b/src/components/Redoc/Redoc.tsx @@ -26,8 +26,9 @@ export class Redoc extends React.Component { render() { const { store: { spec, menu }, options = {} } = this.props; + console.log(options.theme, defaultTheme, { ...options.theme, ...defaultTheme }); return ( - + diff --git a/src/components/StoreProvider.ts b/src/components/StoreProvider.ts index b0b41991..1fb616e3 100644 --- a/src/components/StoreProvider.ts +++ b/src/components/StoreProvider.ts @@ -1,6 +1,6 @@ import { Component } from 'react'; import { AppStore } from '../services/'; -import { loadSpec } from '../utils'; +import { loadAndBundleSpec } from '../utils'; interface SpecProps { specUrl?: string; @@ -23,7 +23,7 @@ export class StoreProvider extends Component { super(props); this.state = { - loading: false, + loading: true, }; this.load(); @@ -37,7 +37,7 @@ export class StoreProvider extends Component { }); try { - const resolvedSpec = await loadSpec(spec || specUrl!); + const resolvedSpec = await loadAndBundleSpec(spec || specUrl!); this.setState({ loading: false, store: new AppStore(resolvedSpec, specUrl), diff --git a/src/components/index.ts b/src/components/index.ts index 7934b6c1..233dd8ec 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -3,4 +3,8 @@ export * from './Redoc/Redoc'; export * from './Redoc/elements'; export * from './Schema/'; export * from './Operation/Operation'; +export * from './RedocStandalone'; + +export * from './ErrorBoundary'; +export * from './StoreProvider'; // re-export the rest of components diff --git a/src/hmr-playground.tsx b/src/hmr-playground.tsx index 76ac026e..18cb54ae 100644 --- a/src/hmr-playground.tsx +++ b/src/hmr-playground.tsx @@ -5,7 +5,7 @@ import { AppContainer } from 'react-hot-loader'; import { Redoc } from './components/Redoc/Redoc'; import { AppStore } from './services/AppStore'; -import { loadSpec } from './utils/loadSpec'; +import { loadAndBundleSpec } from './utils/loadAndBundleSpec'; const renderRoot = (Component: typeof Redoc, props: { store: AppStore }) => render( @@ -25,7 +25,7 @@ const specUrl = swagger ? 'swagger.yaml' : big ? 'big-openapi.json' : 'swagger.y let store; async function init() { - const spec = await loadSpec(specUrl); + const spec = await loadAndBundleSpec(specUrl); store = new AppStore(spec, specUrl); renderRoot(Redoc, { store: store }); } diff --git a/src/index.ts b/src/index.ts index 2ee9aeb9..80e3bea6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,20 +1,2 @@ -import { render } from 'react-dom'; -import * as React from 'react'; - -import { RedocStandalone } from './components/Redoc'; - export * from './components'; export * from './services'; - -export function init(specOrSpecUrl: string | any, options?: any, element?: Element) { - render( - React.createElement( - RedocStandalone, - { - specOrSpecUrl, - }, - [], - ), - element || document.querySelector('redoc'), - ); -} diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/services/AppStore.ts b/src/services/AppStore.ts index e9a8993d..bb1d8936 100644 --- a/src/services/AppStore.ts +++ b/src/services/AppStore.ts @@ -2,6 +2,7 @@ import { OpenAPISpec } from '../types'; import { SpecStore } from './models'; import { MenuStore } from './MenuStore'; import { ScrollService } from './ScrollService'; +import { loadAndBundleSpec } from '../utils/loadAndBundleSpec'; type StoreData = { menu: { @@ -13,6 +14,11 @@ type StoreData = { }; }; +export async function createStore(spec: object, specUrl: string) { + const resolvedSpec = await loadAndBundleSpec(spec || specUrl); + return new AppStore(resolvedSpec, specUrl); +} + export class AppStore { menu: MenuStore; spec: SpecStore; diff --git a/src/services/models/MediaContent.ts b/src/services/models/MediaContent.ts index f9e4eb9d..07c8fb8f 100644 --- a/src/services/models/MediaContent.ts +++ b/src/services/models/MediaContent.ts @@ -22,7 +22,8 @@ export class MediaContentModel { info: { [mime: string]: OpenAPIMediaType }, public isRequestType: boolean = false, ) { - this.mediaTypes = Object.entries(info).map(([name, mime]) => { + this.mediaTypes = Object.keys(info).map(name => { + const mime = info[name]; // reset deref cache just in case something is left there parser.resetVisited(); return new MediaTypeModel(parser, name, isRequestType, mime); diff --git a/src/standalone.tsx b/src/standalone.tsx new file mode 100644 index 00000000..258311c7 --- /dev/null +++ b/src/standalone.tsx @@ -0,0 +1,63 @@ +import { render } from 'react-dom'; +import * as React from 'react'; + +import { RedocStandalone } from './components/RedocStandalone'; + +function attributesMap(element: Element) { + var res = {}; + var elAttrs = element.attributes; + for (let i = 0; i < elAttrs.length; i++) { + var attrib = elAttrs[i]; + res[attrib.name] = attrib.value; + } + return res; +} + +function parseOptionsFromElement(element: Element) { + const attrMap = attributesMap(element); + const res = {}; + for (let attrName in attrMap) { + const optionName = attrName.replace(/-(.)/g, (_, $1) => $1.toUpperCase()); + res[optionName] = attrMap[attrName]; + // TODO: normalize options + } + return res; +} + +export function init( + specOrSpecUrl: string | any, + options: any = {}, + element: Element | null = document.querySelector('redoc'), +) { + if (element === null) { + throw new Error('"element" argument is not provided and tag is not found on the page'); + } + + render( + React.createElement( + RedocStandalone, + { + specOrSpecUrl, + options: { ...options, ...parseOptionsFromElement(element) }, + }, + ['Loading...'], + ), + element, + ); +} + +/** + * autoinit ReDoc if tag is found on the page with "spec-url" attr + */ +function autoInit() { + const element = document.querySelector('redoc'); + if (!element) { + return; + } + const specUrl = element.getAttribute('spec-url'); + if (specUrl) { + init(specUrl, {}, element); + } +} + +autoInit(); diff --git a/src/utils/index.ts b/src/utils/index.ts index c13c47a1..21540e92 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -4,4 +4,4 @@ export * from './styled'; export * from './openapi'; export * from './helpers'; export * from './highlight'; -export * from './loadSpec'; +export * from './loadAndBundleSpec'; diff --git a/src/utils/convertSpec.ts b/src/utils/loadAndBundleSpec.ts similarity index 52% rename from src/utils/convertSpec.ts rename to src/utils/loadAndBundleSpec.ts index 88ac0da5..26bfac5d 100644 --- a/src/utils/convertSpec.ts +++ b/src/utils/loadAndBundleSpec.ts @@ -1,6 +1,20 @@ +import * as JsonSchemaRefParser from 'json-schema-ref-parser'; import { convertObj } from 'swagger2openapi'; import { OpenAPISpec } from '../types'; +export async function loadAndBundleSpec(specUrlOrObject: object | string): Promise { + const _parser = new JsonSchemaRefParser(); + const spec = await _parser.bundle(specUrlOrObject, { + resolve: { http: { withCredentials: false } }, + } as object); + + if (spec.swagger !== undefined) { + return convertSwagger2OpenAPI(spec); + } else { + return spec; + } +} + export function convertSwagger2OpenAPI(spec: any): Promise { console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0'); return new Promise((resolve, reject) => diff --git a/src/utils/loadSpec.ts b/src/utils/loadSpec.ts deleted file mode 100644 index 4cd5efd6..00000000 --- a/src/utils/loadSpec.ts +++ /dev/null @@ -1,17 +0,0 @@ -import * as JsonSchemaRefParser from 'json-schema-ref-parser'; - -import { convertSwagger2OpenAPI } from './convertSpec'; -import { OpenAPISpec } from '../types'; - -export async function loadSpec(specUrlOrObject: object | string): Promise { - const _parser = new JsonSchemaRefParser(); - const spec = await _parser.bundle(specUrlOrObject, { - resolve: { http: { withCredentials: false } }, - } as object); - - if (spec.swagger !== undefined) { - return convertSwagger2OpenAPI(spec); - } else { - return spec; - } -} diff --git a/tsconfig.e2e.json b/tsconfig.e2e.json new file mode 100644 index 00000000..1a0f2641 --- /dev/null +++ b/tsconfig.e2e.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "module": "es2015", + "moduleResolution": "node", + "target": "es5", + "noImplicitAny": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "strictNullChecks": true, + "sourceMap": true, + "outDir": "e2e/.build", + "pretty": true, + "lib": [ + "es2015", + "es2016", + "es2017", + "dom" + ], + "jsx": "react", + "types": [ + "mocha", + "cypress", + "chai" + ] + }, + "compileOnSave": false, + "include": [ + "e2e" + ] +} diff --git a/tsconfig.json b/tsconfig.json index b04af4fd..3e971d64 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,7 +28,8 @@ "exclude": [ "node_modules", ".tmp", - "lib" + "lib", + "e2e" ], "include": [ "./custom.d.ts", diff --git a/webpack.config.js b/webpack.config.js index 9c63dc41..04e29915 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -6,18 +6,25 @@ const DashboardPlugin = require('webpack-dashboard/plugin'); module.exports = env => { env = env || {}; - const config = { - entry: env.prod + let entry; + if (env.standalone) { + entry = ['./src/polyfills.ts', './src/standalone.tsx']; + } else { + entry = env.prod ? env.perf ? ['./perf/index.tsx'] : ['./src/hmr-playground.tsx'] : [ 'react-dev-utils/webpackHotDevClient', 'react-hot-loader/patch', './src/hmr-playground.tsx', - ], + ]; + } + + const config = { + entry: entry, output: { - filename: 'redoc.bundle.js', - path: __dirname + '/lib', + filename: env.standalone ? 'redoc.standalone.js' : 'redoc.bundle.js', + path: __dirname + '/bundles', }, devServer: { diff --git a/yarn.lock b/yarn.lock index d34aa091..ac561a90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,31 @@ # yarn lockfile v1 +"@cypress/listr-verbose-renderer@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/xvfb@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.0.4.tgz#e7391d534baef2b180bd84fdc2ffea1020f7d6a5" + +"@types/chai@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.5.tgz#b6e250e281b47e0192e236619e9b1afe62fd345c" + "@types/cheerio@*": version "0.22.5" resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.5.tgz#db749e8470d98f103d51407db9bee5a8b9d20d45" +"@types/cypress@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/cypress/-/cypress-0.1.2.tgz#add87c95508b4aef215292fe2b7027b3a91c8cfb" + "@types/enzyme-to-json@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@types/enzyme-to-json/-/enzyme-to-json-1.5.0.tgz#0b53c4c8479050e76a38ad298fb2672a7241fad3" @@ -34,6 +55,10 @@ version "1.0.30" resolved "https://registry.yarnpkg.com/@types/json-pointer/-/json-pointer-1.0.30.tgz#b973c1f79b1f61d424b7d92b954e01e6c68ee66d" +"@types/mocha@^2.2.44": + version "2.2.44" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.44.tgz#1d4a798e53f35212fd5ad4d04050620171cd5b5e" + "@types/node@*": version "8.0.52" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.52.tgz#8e7f47747868e7687f2cd4922966e2d6af78d22d" @@ -193,6 +218,10 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-escapes@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + ansi-escapes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" @@ -377,6 +406,12 @@ async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" +async@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + async@^1.4.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -669,6 +704,10 @@ block-stream@*: dependencies: inherits "~2.0.0" +bluebird@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + bluebird@^3.4.7: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -831,6 +870,10 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" @@ -956,7 +999,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@1.1.3, chalk@^1.1.3: +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -966,6 +1009,14 @@ chalk@1.1.3, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" @@ -974,6 +1025,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +check-more-types@2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + cheerio@^1.0.0-rc.2: version "1.0.0-rc.2" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" @@ -1041,12 +1096,29 @@ clean-css@4.1.x: dependencies: source-map "0.5.x" +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: restore-cursor "^2.0.0" +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -1136,6 +1208,10 @@ colors@0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + colors@^1.1.2, colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1146,11 +1222,11 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@2.11.x, commander@^2.7.1, commander@^2.9.0, commander@~2.11.0: +commander@2.11.0, commander@2.11.x, commander@^2.7.1, commander@^2.9.0, commander@~2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -common-tags@^1.4.0: +common-tags@1.4.0, common-tags@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" dependencies: @@ -1252,7 +1328,7 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" @@ -1260,6 +1336,10 @@ core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +corser@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + create-ecdh@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" @@ -1450,6 +1530,37 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cypress@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-1.0.3.tgz#ef3a8fbe72d6f69b2c02e384db405cc49c5773be" + dependencies: + "@cypress/listr-verbose-renderer" "0.4.1" + "@cypress/xvfb" "1.0.4" + bluebird "3.5.0" + chalk "2.1.0" + check-more-types "2.24.0" + commander "2.11.0" + common-tags "1.4.0" + debug "2.6.8" + dev-null "0.1.1" + extract-zip "1.6.5" + fs-extra "4.0.1" + getos "2.8.4" + glob "7.1.2" + is-ci "1.0.10" + is-installed-globally "0.1.0" + lazy-ass "1.6.0" + listr "0.12.0" + lodash "4.17.4" + minimist "1.2.0" + progress "1.1.8" + ramda "0.24.1" + request "2.81.0" + request-progress "0.3.1" + tmp "0.0.31" + url "0.11.0" + yauzl "2.8.0" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -1462,6 +1573,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +date-fns@^1.27.2: + version "1.29.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -1478,6 +1593,12 @@ debug@2.3.3: dependencies: ms "0.7.2" +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.4.1, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1614,6 +1735,10 @@ detect-port-alt@1.1.3: address "^1.0.1" debug "^2.6.0" +dev-null@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dev-null/-/dev-null-0.1.1.tgz#5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818" + diff@^3.2.0: version "3.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" @@ -1729,6 +1854,15 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +ecstatic@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-2.2.1.tgz#b5087fad439dd9dd49d31e18131454817fe87769" + dependencies: + he "^1.1.1" + mime "^1.2.11" + minimist "^1.1.0" + url-join "^2.0.2" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1737,6 +1871,10 @@ electron-to-chromium@^1.2.7: version "1.3.27" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -2138,6 +2276,10 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2260,6 +2402,15 @@ extract-text-webpack-plugin@^3.0.0: schema-utils "^0.3.0" webpack-sources "^1.0.1" +extract-zip@1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440" + dependencies: + concat-stream "1.6.0" + debug "2.2.0" + mkdirp "0.5.0" + yauzl "2.4.1" + extract-zip@^1.6.5: version "1.6.6" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" @@ -2325,6 +2476,13 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -2462,6 +2620,14 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +fs-extra@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + fs-extra@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" @@ -2543,6 +2709,12 @@ get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" +getos@2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/getos/-/getos-2.8.4.tgz#7b8603d3619c28e38cb0fe7a4f63c3acb80d5163" + dependencies: + async "2.1.4" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -2562,7 +2734,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: +glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -2573,6 +2745,12 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.0.tgz#10d34039e0df04272e262cf24224f7209434df4f" + dependencies: + ini "^1.3.4" + global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -2778,7 +2956,7 @@ hawk@~6.0.2: hoek "4.x.x" sntp "2.x.x" -he@1.1.x: +he@1.1.x, he@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -2916,13 +3094,26 @@ http-proxy-middleware@~0.17.4: lodash "^4.17.2" micromatch "^2.3.11" -http-proxy@^1.16.2: +http-proxy@^1.16.2, http-proxy@^1.8.1: version "1.16.2" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" dependencies: eventemitter3 "1.x.x" requires-port "1.x.x" +http-server@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.10.0.tgz#b2a446b16a9db87ed3c622ba9beb1b085b1234a7" + dependencies: + colors "1.0.3" + corser "~2.0.0" + ecstatic "^2.0.0" + http-proxy "^1.8.1" + opener "~1.4.0" + optimist "0.6.x" + portfinder "^1.0.13" + union "~0.4.3" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -2989,7 +3180,7 @@ indent-string@^2.1.0: dependencies: repeating "^2.0.0" -indent-string@^3.2.0: +indent-string@^3.0.0, indent-string@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" @@ -3101,7 +3292,7 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" -is-ci@^1.0.10: +is-ci@1.0.10, is-ci@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" dependencies: @@ -3187,6 +3378,13 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-installed-globally@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -3727,6 +3925,12 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -3770,6 +3974,10 @@ kind-of@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.0.tgz#3606e9e2fa960e7ddaa8898c03804e47e5d66644" +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -3797,6 +4005,53 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + +listr-update-renderer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +listr@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + figures "^1.7.0" + indent-string "^2.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.2.0" + listr-verbose-renderer "^0.4.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + ora "^0.2.3" + p-map "^1.1.1" + rxjs "^5.0.0-beta.11" + stream-to-observable "^0.1.0" + strip-ansi "^3.0.1" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -3876,10 +4131,23 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1: +lodash@4.17.4, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.6.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log-update@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + loglevel-colored-level-prefix@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" @@ -4055,7 +4323,7 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, dependencies: mime-db "~1.30.0" -mime@1.4.1, mime@^1.3.4: +mime@1.4.1, mime@^1.2.11, mime@^1.3.4: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" @@ -4093,7 +4361,7 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4455,6 +4723,10 @@ once@^1.3.0, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -4473,13 +4745,17 @@ openapi-sampler@^1.0.0-beta.1: dependencies: json-pointer "^0.6.0" +opener@~1.4.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" + opn@5.1.0, opn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" dependencies: is-wsl "^1.1.0" -optimist@^0.6.1: +optimist@0.6.x, optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: @@ -4501,6 +4777,15 @@ options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" +ora@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + original@>=0.0.5: version "1.0.0" resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" @@ -4529,7 +4814,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4739,7 +5024,7 @@ pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" -portfinder@^1.0.9: +portfinder@^1.0.13, portfinder@^1.0.9: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" dependencies: @@ -5072,6 +5357,10 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" +progress@1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" @@ -5148,6 +5437,10 @@ qs@6.5.1, qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -5185,6 +5478,10 @@ railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" +ramda@0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" + randexp@^0.4.2: version "0.4.6" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" @@ -5507,6 +5804,12 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +request-progress@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-0.3.1.tgz#0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a" + dependencies: + throttleit "~0.0.2" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -5619,6 +5922,13 @@ resolve@^1.3.2: dependencies: path-parse "^1.0.5" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -5636,7 +5946,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5672,6 +5982,12 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" +rxjs@^5.0.0-beta.11: + version "5.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" + dependencies: + symbol-observable "^1.0.1" + safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5881,6 +6197,10 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -6157,6 +6477,10 @@ stream-http@^2.3.1: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-to-observable@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -6300,6 +6624,10 @@ swagger2openapi@^2.11.0: should "^13.0.1" yargs "^9.0.1" +symbol-observable@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" @@ -6358,6 +6686,10 @@ throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" +throttleit@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -6380,6 +6712,12 @@ tiny-emitter@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c" +tmp@0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -6597,6 +6935,12 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" +union@~0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/union/-/union-0.4.6.tgz#198fbdaeba254e788b0efcb630bc11f24a2959e0" + dependencies: + qs "~2.3.3" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -6634,6 +6978,10 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" +url-join@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.2.tgz#c072756967ad24b8b59e5741551caac78f50b8b7" + url-parse@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" @@ -6648,7 +6996,7 @@ url-parse@^1.1.8: querystringify "~1.0.0" requires-port "~1.0.0" -url@^0.11.0: +url@0.11.0, url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" dependencies: @@ -7102,6 +7450,13 @@ yauzl@2.4.1: dependencies: fd-slicer "~1.0.1" +yauzl@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"