diff --git a/.gitignore b/.gitignore
index 93632811..f0bdac6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,7 +25,7 @@ stats.json
e2e/.build/
cypress/
bundles
-bin/cli.js
+cli/index.js
/benchmark/revisions
diff --git a/.npmignore b/.npmignore
index 6400333e..13fe9fad 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,4 +1,3 @@
!bundles/
!package.json
-!README.md
-!bin/cli.js
\ No newline at end of file
+!README.md
\ No newline at end of file
diff --git a/cli/.npmignore b/cli/.npmignore
new file mode 100644
index 00000000..f8cf9806
--- /dev/null
+++ b/cli/.npmignore
@@ -0,0 +1,3 @@
+!index.js
+!package.json
+!README.md
\ No newline at end of file
diff --git a/cli/README.md b/cli/README.md
new file mode 100644
index 00000000..e69de29b
diff --git a/bin/cli.ts b/cli/index.ts
similarity index 94%
rename from bin/cli.ts
rename to cli/index.ts
index d6f0ad62..19f75fde 100644
--- a/bin/cli.ts
+++ b/cli/index.ts
@@ -7,7 +7,7 @@ import * as zlib from 'zlib';
import { resolve } from 'path';
// @ts-ignore
-import { Redoc, loadAndBundleSpec, createStore } from '../';
+import { Redoc, loadAndBundleSpec, createStore } from 'redoc';
import { createReadStream, writeFileSync, ReadStream, readFileSync, watch, existsSync } from 'fs';
@@ -53,7 +53,7 @@ yargs
try {
await serve(argv.port, argv.spec, { ssr: argv.ssr, watch: argv.watch });
} catch (e) {
- console.log(e.message);
+ console.log(e.stack);
}
},
)
@@ -142,11 +142,16 @@ async function serve(port: number, pathToSpec: string, options: Options = {}) {
}
async function bundle(pathToSpec, options: Options = {}) {
+ const start = Date.now();
const spec = await loadAndBundleSpec(pathToSpec);
const pageHTML = await getPageHTML(spec, pathToSpec, { ...options, ssr: true });
+
writeFileSync(options.output!, pageHTML);
- const sizeInKb = Math.ceil(Buffer.byteLength(pageHTML) / 1024);
- console.log(`\nš bundled successfully in: ${options.output!} (${sizeInKb} kB)`);
+ const sizeInKiB = Math.ceil(Buffer.byteLength(pageHTML) / 1024);
+ const time = Date.now() - start;
+ console.log(
+ `\nš bundled successfully in: ${options.output!} (${sizeInKiB} KiB) [ā± ${time / 1000}s]`,
+ );
}
async function getPageHTML(spec: any, pathToSpec: string, { ssr, cdn }: Options) {
@@ -154,7 +159,7 @@ async function getPageHTML(spec: any, pathToSpec: string, { ssr, cdn }: Options)
let redocStandaloneSrc;
if (ssr) {
console.log('Prerendering docs');
- let store = await createStore(spec, pathToSpec);
+ const store = await createStore(spec, pathToSpec);
const sheet = new ServerStyleSheet();
html = renderToString(sheet.collectStyles(React.createElement(Redoc, { store })));
css = sheet.getStyleTags();
@@ -165,7 +170,8 @@ async function getPageHTML(spec: any, pathToSpec: string, { ssr, cdn }: Options)
}
}
- return `
+ return `
+
ReDoc
diff --git a/cli/package-lock.json b/cli/package-lock.json
new file mode 100644
index 00000000..e54c12ca
--- /dev/null
+++ b/cli/package-lock.json
@@ -0,0 +1,1342 @@
+{
+ "name": "@redoc/cli",
+ "version": "0.0.1",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@types/jquery": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.1.tgz",
+ "integrity": "sha512-N3h+rzN518yl2xKrW0o6KKdNmWZ+OwG6SoM5TBEQFF0tTv5wXPEsoOuYQ2Kt3/89XbcSZUJLdjiT/2c3BR/ApQ=="
+ },
+ "@types/mark.js": {
+ "version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/@types/mark.js/-/mark.js-8.11.1.tgz",
+ "integrity": "sha512-Sv4lNOYFC8R64dYhWi2RFCmr0TWGzUPfwjy8/jolwipZmV00E0qLzunRTT8CayvlYckm8/FLvY6fWLKoCs0tOA==",
+ "requires": {
+ "@types/jquery": "3.3.1"
+ }
+ },
+ "@types/marked": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz",
+ "integrity": "sha512-CSf9YWJdX1DkTNu9zcNtdCcn6hkRtB5ILjbhRId4ZOQqx30fXmdecuaXhugQL6eyrhuXtaHJ7PHI+Vm7k9ZJjg=="
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "requires": {
+ "co": "4.6.0",
+ "fast-deep-equal": "1.1.0",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1"
+ }
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "babel-polyfill": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
+ "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.10.5"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
+ }
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "2.5.3",
+ "regenerator-runtime": "0.11.1"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz",
+ "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w=="
+ },
+ "buffer": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz",
+ "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==",
+ "requires": {
+ "base64-js": "1.2.3",
+ "ieee754": "1.1.10"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms="
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
+ },
+ "classnames": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz",
+ "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "requires": {
+ "restore-cursor": "2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
+ },
+ "clipboard": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.0.tgz",
+ "integrity": "sha512-gXzHBlzEVqCk2b8Wpkil89S0WSMAX7eZho2zANX+EEEa9LMutGe9ICU+wHRzsH7cCHaCbUzj900P+AXOM0FE3A==",
+ "optional": true,
+ "requires": {
+ "good-listener": "1.2.2",
+ "select": "1.1.2",
+ "tiny-emitter": "2.0.2"
+ }
+ },
+ "cliui": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz",
+ "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==",
+ "requires": {
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "wrap-ansi": "2.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "requires": {
+ "lru-cache": "4.1.2",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "css-color-keywords": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
+ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU="
+ },
+ "css-to-react-native": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.1.2.tgz",
+ "integrity": "sha512-akxvxNPNm+Qb7kGswgWhD8rLENM8857NVIn1lX0Dr9BQuju8vx6ypet7KvwvqBC01FUEne5V/jvt7FJXWJPtgw==",
+ "requires": {
+ "css-color-keywords": "1.0.0",
+ "fbjs": "0.8.16",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "decko": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz",
+ "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc="
+ },
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
+ "optional": true
+ },
+ "dom-walk": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
+ "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
+ },
+ "dompurify": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-1.0.3.tgz",
+ "integrity": "sha512-7dks9EA59zmQ9UBH7QJmGCHNxGJ7chzB5RJObT+h/TGBDtp4pTgunOeT0NidTA5MAq22muWrW3XfqtpvIsoSmw=="
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "0.4.19"
+ }
+ },
+ "error-stack-parser": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz",
+ "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=",
+ "requires": {
+ "stackframe": "0.3.1"
+ }
+ },
+ "es6-promise": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+ "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
+ },
+ "eventemitter3": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.0.1.tgz",
+ "integrity": "sha512-QOCPu979MMWX9XNlfRZoin+Wm+bK1SP7vv3NGUniYwuSJK/+cPA10blMaeRgzg31RvoSFk6FsCDVa4vNryBTGA=="
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fbjs": {
+ "version": "0.8.16",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
+ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.17"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "requires": {
+ "escape-string-regexp": "1.0.5"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "2.0.0"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ },
+ "format-util": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz",
+ "integrity": "sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU="
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "global": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
+ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
+ "requires": {
+ "min-document": "2.19.0",
+ "process": "0.5.2"
+ }
+ },
+ "good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+ "optional": true,
+ "requires": {
+ "delegate": "3.2.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
+ },
+ "hoist-non-react-statics": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz",
+ "integrity": "sha512-6Bl6XsDT1ntE0lHbIhr4Kp2PGcleGZ66qu5Jqk8lc0Xc/IeG6gVLmwUGs/K0Us+L8VWoKgj0uWdPMataOsm31w=="
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
+ },
+ "ieee754": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.10.tgz",
+ "integrity": "sha512-byWFX8OyW/qeVxcY21r6Ncxl0ZYHgnf0cPup2h34eHXrCJbOp7IuqnJ4Q0omfyWl6Z++BTI6bByf31pZt7iRLg=="
+ },
+ "inquirer": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz",
+ "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=",
+ "requires": {
+ "ansi-escapes": "1.4.0",
+ "chalk": "1.1.3",
+ "cli-cursor": "2.1.0",
+ "cli-width": "2.2.0",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.5",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx": "4.1.0",
+ "string-width": "2.1.1",
+ "strip-ansi": "3.0.1",
+ "through": "2.3.8"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "3.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "isomorphic-fetch": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "requires": {
+ "node-fetch": "1.7.3",
+ "whatwg-fetch": "2.0.3"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+ },
+ "js-yaml": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
+ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "4.0.0"
+ }
+ },
+ "json-pointer": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz",
+ "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=",
+ "requires": {
+ "foreach": "2.0.5"
+ }
+ },
+ "json-schema-ref-parser": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-4.1.1.tgz",
+ "integrity": "sha512-lByoCHZ6H2zgb6NtsXIqtzQ+6Ji7iVqnrhWxsXLhF+gXmgu6E8+ErpDxCMR439MUG1nfMjWI2HAoM8l0XgSNhw==",
+ "requires": {
+ "call-me-maybe": "1.0.1",
+ "debug": "3.1.0",
+ "js-yaml": "3.11.0",
+ "ono": "4.0.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "requires": {
+ "js-tokens": "3.0.2"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz",
+ "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==",
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "lunr": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.1.6.tgz",
+ "integrity": "sha512-ydJpB8CX8cZ/VE+KMaYaFcZ6+o2LruM6NG76VXdflYTgluvVemz1lW4anE+pyBbLvxJHZdvD1Jy/fOqdzAEJog=="
+ },
+ "mark.js": {
+ "version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
+ "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U="
+ },
+ "marked": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz",
+ "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ=="
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+ },
+ "min-document": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
+ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+ "requires": {
+ "dom-walk": "0.1.1"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mobx": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/mobx/-/mobx-3.6.2.tgz",
+ "integrity": "sha512-Dq3boJFLpZEvuh5a/MbHLUIyN9XobKWIb0dBfkNOJffNkE3vtuY0C9kSDVpfH8BB0BPkVw8g22qCv7d05LEhKg=="
+ },
+ "mobx-react": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-4.4.3.tgz",
+ "integrity": "sha1-uqnsQRZe41rnud8ZvKEBkPNvEX4=",
+ "requires": {
+ "hoist-non-react-statics": "2.5.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
+ },
+ "node-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "requires": {
+ "encoding": "0.1.12",
+ "is-stream": "1.1.0"
+ }
+ },
+ "node-readfiles": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz",
+ "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=",
+ "requires": {
+ "es6-promise": "3.3.1"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "requires": {
+ "path-key": "2.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
+ },
+ "ono": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.3.tgz",
+ "integrity": "sha512-7QIxG4UB00H7CR7fhXC/U7VhB5DK9wsYLwaYBui1JmQoXtLkhIBn3fbuk6FgAP+ctWeBsWVTM+R/bThvUZN+ww==",
+ "requires": {
+ "format-util": "1.0.3"
+ }
+ },
+ "openapi-sampler": {
+ "version": "1.0.0-beta.9",
+ "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.9.tgz",
+ "integrity": "sha1-HkuldvqPtjG2iK5g6ZW9J6wIdJI=",
+ "requires": {
+ "json-pointer": "0.6.0"
+ }
+ },
+ "opencollective": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz",
+ "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=",
+ "requires": {
+ "babel-polyfill": "6.23.0",
+ "chalk": "1.1.3",
+ "inquirer": "3.0.6",
+ "minimist": "1.2.0",
+ "node-fetch": "1.6.3",
+ "opn": "4.0.2"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
+ "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
+ "requires": {
+ "encoding": "0.1.12",
+ "is-stream": "1.1.0"
+ }
+ }
+ }
+ },
+ "opn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
+ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "requires": {
+ "object-assign": "4.1.1",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "requires": {
+ "execa": "0.7.0",
+ "lcid": "1.0.0",
+ "mem": "1.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-limit": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
+ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+ "requires": {
+ "p-try": "1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "requires": {
+ "p-limit": "1.2.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "perfect-scrollbar": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.3.0.tgz",
+ "integrity": "sha512-7Ub8YOvZB5k+pTy0K3LYUDnH9Xl3qvHcclJyIX+AV5UxHxll146iVGq4rtc+848nTDBQq89J7QxKKMA++cTXzQ=="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "2.0.4"
+ }
+ },
+ "polished": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/polished/-/polished-1.9.2.tgz",
+ "integrity": "sha512-mPocQrVUSiqQdHNZFGL1iHJmsR/etiv05Nf2oZUbya+GMsQkZVEBl5wonN+Sr/e9zQBEhT6yrMjxAUJ06eyocQ=="
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU="
+ },
+ "prismjs": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.12.2.tgz",
+ "integrity": "sha512-en/99X4LLNXDMn8+nCP3Yb1gYmL3z6lQ9jBkZVhWzS0pRLEyakcL17nOjJPer/AoSpA51zdcydbfo++oLwQ5Ug==",
+ "requires": {
+ "clipboard": "2.0.0"
+ }
+ },
+ "process": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
+ "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
+ "prop-types": {
+ "version": "15.6.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz",
+ "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "react": {
+ "version": "16.3.0-alpha.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.3.0-alpha.2.tgz",
+ "integrity": "sha512-zkK9FsbtJzZ8Qadamd8DhwVLWGwL8EEZmUCgXkuGW2eT+7U/jouf5tLsHr1TQkEeeA/63MWVXyk80baivJ5ZLw==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.1"
+ }
+ },
+ "react-deep-force-update": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz",
+ "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk="
+ },
+ "react-dom": {
+ "version": "16.3.0-alpha.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.3.0-alpha.2.tgz",
+ "integrity": "sha512-T8zKRXRDbs34byvtVrnW2rE0xGm4xoEY0Ag6FQXVD68jbSeHCgf+DF+cjNqCO+ldz9d9D/YAuMOlsvYYWqBtMA==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.1"
+ }
+ },
+ "react-dropdown": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.4.0.tgz",
+ "integrity": "sha512-ak1ZL05+/SefrG1aXNPh9ANoALuv3ktryqtiGKOEPoBPf6prJgYSx/zlK/JMMnuSq9Li8lN861E1qhCzq2IplA==",
+ "requires": {
+ "classnames": "2.2.5"
+ }
+ },
+ "react-hot-loader": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz",
+ "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==",
+ "requires": {
+ "global": "4.3.2",
+ "react-deep-force-update": "2.1.1",
+ "react-proxy": "3.0.0-alpha.1",
+ "redbox-react": "1.5.0",
+ "source-map": "0.6.1"
+ }
+ },
+ "react-proxy": {
+ "version": "3.0.0-alpha.1",
+ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz",
+ "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=",
+ "requires": {
+ "lodash": "4.17.5"
+ }
+ },
+ "react-tabs": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.2.1.tgz",
+ "integrity": "sha512-Fu1frsfsGUUwxsNQsjQDo1ZuNwyLCXoZcu7jaaeWAP9HlwPpYsUzNQaquA6+6jd4E/uPlBGyBTFW3PpEUOwkVw==",
+ "requires": {
+ "classnames": "2.2.5",
+ "prop-types": "15.6.1"
+ }
+ },
+ "redbox-react": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.5.0.tgz",
+ "integrity": "sha512-mdxArOI3sF8K5Nay5NG+lv/VW516TbXjjd4h1wcV1Iy4IMDQPnCayjoQXBAycAFSME4nyXRUXCjHxsw2rYpVRw==",
+ "requires": {
+ "error-stack-parser": "1.3.6",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.1",
+ "sourcemapped-stacktrace": "1.1.8"
+ }
+ },
+ "redoc": {
+ "version": "2.0.0-alpha.15",
+ "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-alpha.15.tgz",
+ "integrity": "sha512-6PtgvrDwXg9W7ntgmv7piq/IB0uwHDZwDBhjHmBKdlKjlfU2PYcFCmN5GNV3tqoFiqbBKsxv+XO80IA5BhQRJw==",
+ "requires": {
+ "@types/mark.js": "8.11.1",
+ "@types/marked": "0.3.0",
+ "classnames": "2.2.5",
+ "decko": "1.2.0",
+ "dompurify": "1.0.3",
+ "eventemitter3": "3.0.1",
+ "json-pointer": "0.6.0",
+ "json-schema-ref-parser": "4.1.1",
+ "lunr": "2.1.6",
+ "mark.js": "8.11.1",
+ "marked": "0.3.17",
+ "mobx": "3.6.2",
+ "mobx-react": "4.4.3",
+ "openapi-sampler": "1.0.0-beta.9",
+ "perfect-scrollbar": "1.3.0",
+ "polished": "1.9.2",
+ "prismjs": "1.12.2",
+ "prop-types": "15.6.1",
+ "react-dropdown": "1.4.0",
+ "react-hot-loader": "3.1.3",
+ "react-tabs": "2.2.1",
+ "slugify": "1.2.9",
+ "stickyfill": "1.1.1",
+ "styled-components": "3.2.3",
+ "swagger2openapi": "2.11.16",
+ "yargs": "11.0.0"
+ }
+ },
+ "reftools": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/reftools/-/reftools-0.0.20.tgz",
+ "integrity": "sha512-xP04tVBgU6IEfVN3AD+jKg0tuDFjzbpAVulI8vFp9jJ6avejnq6BaTj4aneY0sNseXJbAykG6uMDuFJaun1Q9w=="
+ },
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "requires": {
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "2.1.0"
+ }
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ },
+ "select": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "should": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/should/-/should-13.2.1.tgz",
+ "integrity": "sha512-l+/NwEMO+DcstsHEwPHRHzC9j4UOE3VQwJGcMWSsD/vqpqHbnQ+1iSHy64Ihmmjx1uiRPD9pFadTSc3MJtXAgw==",
+ "requires": {
+ "should-equal": "2.0.0",
+ "should-format": "3.0.3",
+ "should-type": "1.4.0",
+ "should-type-adaptors": "1.1.0",
+ "should-util": "1.0.0"
+ }
+ },
+ "should-equal": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
+ "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
+ "requires": {
+ "should-type": "1.4.0"
+ }
+ },
+ "should-format": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
+ "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=",
+ "requires": {
+ "should-type": "1.4.0",
+ "should-type-adaptors": "1.1.0"
+ }
+ },
+ "should-type": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
+ "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM="
+ },
+ "should-type-adaptors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
+ "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
+ "requires": {
+ "should-type": "1.4.0",
+ "should-util": "1.0.0"
+ }
+ },
+ "should-util": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz",
+ "integrity": "sha1-yYzaN0qmsZDfi6h8mInCtNtiAGM="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "slugify": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.2.9.tgz",
+ "integrity": "sha512-n0cdJ+kN3slJu8SbZXt/EHjljBqF6MxvMGSg/NPpBzoY7yyXoH38wp/ox20a1JaG1KgmdTN5Lf3aS9+xB2Y2aQ=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "sourcemapped-stacktrace": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.8.tgz",
+ "integrity": "sha512-OkVoI7GQOLl/laR1qsSo1c87tS8kF2VXhQq2SrQCDdXufBAcm8FgXogWso96ciMYoDtTw1Dn70CVdwYzoYs6Pg==",
+ "requires": {
+ "source-map": "0.5.6"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI="
+ }
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "stackframe": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz",
+ "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ="
+ },
+ "stickyfill": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz",
+ "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ },
+ "styled-components": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.2.3.tgz",
+ "integrity": "sha1-UPcSBzIO6x71Od7EY38h9ePJNrQ=",
+ "requires": {
+ "buffer": "5.1.0",
+ "css-to-react-native": "2.1.2",
+ "fbjs": "0.8.16",
+ "hoist-non-react-statics": "1.2.0",
+ "is-plain-object": "2.0.4",
+ "opencollective": "1.0.3",
+ "prop-types": "15.6.1",
+ "stylis": "3.5.0",
+ "stylis-rule-sheet": "0.0.10",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "hoist-non-react-statics": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
+ "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
+ }
+ }
+ },
+ "stylis": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz",
+ "integrity": "sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw=="
+ },
+ "stylis-rule-sheet": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
+ "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw=="
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ },
+ "swagger2openapi": {
+ "version": "2.11.16",
+ "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-2.11.16.tgz",
+ "integrity": "sha512-5Pv20whg9Bn1dqKDuGatH0r+7mAEU8+tHJU1PdT9ufGeZNseqJBs9Y8AOd8EMEHKRuAgAzYYWhINvgtodAlZRA==",
+ "requires": {
+ "ajv": "5.5.2",
+ "call-me-maybe": "1.0.1",
+ "co": "4.6.0",
+ "js-yaml": "3.11.0",
+ "node-fetch": "2.1.1",
+ "node-readfiles": "0.2.0",
+ "reftools": "0.0.20",
+ "should": "13.2.1",
+ "yargs": "11.0.0"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.1.tgz",
+ "integrity": "sha1-NpynC4L1DIZJYQSmx3bSdPTkotQ="
+ }
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tiny-emitter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
+ "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==",
+ "optional": true
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "ua-parser-js": {
+ "version": "0.7.17",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
+ "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g=="
+ },
+ "whatwg-fetch": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
+ "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
+ },
+ "which": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "requires": {
+ "isexe": "2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
+ }
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yargs": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz",
+ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==",
+ "requires": {
+ "cliui": "4.0.0",
+ "decamelize": "1.2.0",
+ "find-up": "2.1.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "9.0.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "requires": {
+ "camelcase": "4.1.0"
+ }
+ }
+ }
+}
diff --git a/cli/package.json b/cli/package.json
new file mode 100644
index 00000000..8eb0cb98
--- /dev/null
+++ b/cli/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "@redoc/cli",
+ "version": "0.0.1",
+ "description": "ReDoc's Command Line Interface",
+ "main": "index.js",
+ "bin": {
+ "redoc": "index.js"
+ },
+ "repository": "https://github.com/Rebilly/ReDoc",
+ "author": "Roman Hotsiy ",
+ "license": "MIT",
+ "dependencies": {
+ "react": "^16.3.0-alpha.2",
+ "react-dom": "^16.3.0-alpha.2",
+ "redoc": "^2.0.0-alpha.15"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/cli/redoc-static.html b/cli/redoc-static.html
new file mode 100644
index 00000000..eec5132d
--- /dev/null
+++ b/cli/redoc-static.html
@@ -0,0 +1,469 @@
+
+
+
+
+ ReDoc
+
+
+
+
+
+
+
+
+
+ Swagger Petstore (1.0.0) Download OpenAPI specification:Download
Find out how to create Github repo for your OpenAPI spec.
This is a sample server Petstore server.
+You can find out more about Swagger at
+http://swagger.io or on irc.freenode.net, #swagger .
+For this sample, you can use the api key special-key
to test the authorization filters.
+
IntroductionThis API is documented in OpenAPI format and is based on
+Petstore sample provided by swagger.io team.
+It was extended to illustrate features of generator-openapi-repo
+tool and ReDoc documentation. In addition to standard
+OpenAPI syntax we use a few vendor extensions .
+
OpenAPI SpecificationThis API is documented in OpenAPI format and is based on
+Petstore sample provided by swagger.io team.
+It was extended to illustrate features of generator-openapi-repo
+tool and ReDoc documentation. In addition to standard
+OpenAPI syntax we use a few vendor extensions .
+
Cross-Origin Resource SharingThis API features Cross-Origin Resource Sharing (CORS) implemented in compliance with W3C spec .
+And that allows cross-domain communication from the browser.
+All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.
+
AuthenticationPetstore offers two forms of authentication:
+
+
OAuth2 - an open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.
+
petstore_authGet access to data while protecting your account credentials.
+OAuth2 is also a safer and more secure way to give you access.
+
Security scheme type: OAuth2 implicit OAuth Flow Authorization URL: http://petstore.swagger.io/api/oauth/dialog
Scopes:
write:pets
- modify pets in your accountread:pets
- read your pets
api_keyFor this sample, you can use the api key special-key
to test the authorization filters.
+
Security scheme type: API Key header parameter name: api_key
petEverything about your Pets
+
Add a new pet to the store Add new pet to the store inventory.
+
Request Body schema: categoryobject (Category)
Categories this pet belongs to
+
name required
string
The name given to a pet
+
photoUrls required
Array of string
The list of URL to a cute photos featuring pet
+
friend tagsArray of object
Tags attached to the pet
+
statusstring
Enum: "available" "pending" "sold"
Pet status in the store
+
petType huntingSkill required
string
Default: "lazy"
Enum: "clueless" "lazy" "adventurous" "aggressive"
The measured skill for hunting
+
Default server
null//petstore.swagger.io/v2 /pet
Sandbox server
null//petstore.swagger.io/sandbox /pet
Request samples Copy
Expand all Collapse all
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string" ,
"huntingSkill" : "lazy"
}
Update an existing pet Request Body schema: categoryobject (Category)
Categories this pet belongs to
+
name required
string
The name given to a pet
+
photoUrls required
Array of string
The list of URL to a cute photos featuring pet
+
friend tagsArray of object
Tags attached to the pet
+
statusstring
Enum: "available" "pending" "sold"
Pet status in the store
+
petType huntingSkill required
string
Default: "lazy"
Enum: "clueless" "lazy" "adventurous" "aggressive"
The measured skill for hunting
+
Responses 400 Invalid ID supplied
+405 Validation exception
+Default server
null//petstore.swagger.io/v2 /pet
Sandbox server
null//petstore.swagger.io/sandbox /pet
Request samples Copy
Expand all Collapse all
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string" ,
"huntingSkill" : "lazy"
}
Find pet by ID path Parameters petId required
integer <int64>
Deprecated
Responses 200 successful operation
+400 Invalid ID supplied
+Default server
null//petstore.swagger.io/v2 /pet/{petId}
Sandbox server
null//petstore.swagger.io/sandbox /pet/{petId}
Response samples Copy
Expand all Collapse all
{
"id" : 0 ,
"category" :
{
"id" : 0 ,
"name" : "string" ,
},
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string" ,
"huntingSkill" : "lazy"
}
Updates a pet in the store with form data path Parameters petId required
integer <int64>
ID of pet that needs to be updated
+
Request Body schema: application/x-www-form-urlencoded namestring
Updated name of the pet
+
statusstring
Updated status of the pet
+
Default server
null//petstore.swagger.io/v2 /pet/{petId}
Sandbox server
null//petstore.swagger.io/sandbox /pet/{petId}
Deletes a pet header Parameters api_keystring
Example: "Bearer <TOKEN>"
Default server
null//petstore.swagger.io/v2 /pet/{petId}
Sandbox server
null//petstore.swagger.io/sandbox /pet/{petId}
uploads an image Request Body schema: application/octet-stream Responses 200 successful operation
+ post /pet/{petId}/uploadImage Default server
null//petstore.swagger.io/v2 /pet/{petId}/uploadImage
Sandbox server
null//petstore.swagger.io/sandbox /pet/{petId}/uploadImage
Response samples application/json
Copy
Expand all Collapse all
{
"code" : 0 ,
"type" : "string" ,
"message" : "string"
}
Finds Pets by status Multiple status values can be provided with comma seperated strings
+
query Parameters status required
Array of string
Items Enum: "available" "pending" "sold"
Status values that need to be considered for filter
+
Responses 200 successful operation
+400 Invalid status value
+Default server
null//petstore.swagger.io/v2 /pet/findByStatus
Sandbox server
null//petstore.swagger.io/sandbox /pet/findByStatus
Response samples Copy
Expand all Collapse all
[
{
"id" : 0 ,
"category" :
{
"id" : 0 ,
"name" : "string" ,
},
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
}
]
Finds Pets by tags Deprecated Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing.
+
Responses 200 successful operation
+Default server
null//petstore.swagger.io/v2 /pet/findByTags
Sandbox server
null//petstore.swagger.io/sandbox /pet/findByTags
Response samples Copy
Expand all Collapse all
[
{
"id" : 0 ,
"category" :
{
"id" : 0 ,
"name" : "string" ,
},
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
}
]
storeAccess to Petstore orders
+
Returns pet inventories by status Returns a map of status codes to quantities
+
Responses 200 successful operation
+Default server
null//petstore.swagger.io/v2 /store/inventory
Sandbox server
null//petstore.swagger.io/sandbox /store/inventory
Response samples application/json
Copy
Expand all Collapse all
{
"property1" : 0 ,
"property2" : 0
}
Place an order for a pet Request Body schema: application/json quantityinteger <int32> >= 1
Default: 1
shipDate statusstring
Enum: "placed" "approved" "delivered"
completeboolean
Indicates whenever order was completed or not
+
Responses 200 successful operation
+Default server
null//petstore.swagger.io/v2 /store/order
Sandbox server
null//petstore.swagger.io/sandbox /store/order
Request samples application/json
Copy
Expand all Collapse all Response samples Copy
Expand all Collapse all
Find purchase order by ID For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
+
path Parameters orderId required
integer <int64> [ 1 .. 5 ]
ID of pet that needs to be fetched
+
Responses 200 successful operation
+400 Invalid ID supplied
+ get /store/order/{orderId} Default server
null//petstore.swagger.io/v2 /store/order/{orderId}
Sandbox server
null//petstore.swagger.io/sandbox /store/order/{orderId}
Response samples Copy
Expand all Collapse all Delete purchase order by ID For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+
path Parameters orderId required
string >= 1
ID of the order that needs to be deleted
+
Responses 400 Invalid ID supplied
+ delete /store/order/{orderId} Default server
null//petstore.swagger.io/v2 /store/order/{orderId}
Sandbox server
null//petstore.swagger.io/sandbox /store/order/{orderId}
Create user This can only be done by the logged in user.
+
Request Body schema: application/json pet username firstName lastName email passwordstring <password> >= 8 characters (?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
User password, MUST contain a mix of upper and lower case letters, as well as digits
+
phonestring Nullable ^\+(?:[0-9]-?){6,14}[0-9]$
User phone number in international format
+
userStatus
Responses default successful operation
+Default server
null//petstore.swagger.io/v2 /user
Sandbox server
null//petstore.swagger.io/sandbox /user
Request samples application/json
Copy
Expand all Collapse all
{
"pet" :
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
},
"username" : "John78" ,
"firstName" : "John" ,
"lastName" : "Smith" ,
"email" : "john.smith@example.com" ,
"password" : "drowssaP123" ,
"phone" : "+1-202-555-0192" ,
"userStatus" : 0
}
Get user by user name path Parameters username required
string
The name that needs to be fetched. Use user1 for testing.
+
Responses 200 successful operation
+400 Invalid username supplied
+Default server
null//petstore.swagger.io/v2 /user/{username}
Sandbox server
null//petstore.swagger.io/sandbox /user/{username}
Response samples Copy
Expand all Collapse all
{
"id" : 0 ,
"pet" :
{
"id" : 0 ,
"category" :
{
"id" : 0 ,
"name" : "string" ,
},
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
},
"username" : "John78" ,
"firstName" : "John" ,
"lastName" : "Smith" ,
"email" : "john.smith@example.com" ,
"password" : "drowssaP123" ,
"phone" : "+1-202-555-0192" ,
"userStatus" : 0
}
Updated user This can only be done by the logged in user.
+
path Parameters username required
string
name that need to be deleted
+
Request Body schema: application/json pet username firstName lastName email passwordstring <password> >= 8 characters (?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
User password, MUST contain a mix of upper and lower case letters, as well as digits
+
phonestring Nullable ^\+(?:[0-9]-?){6,14}[0-9]$
User phone number in international format
+
userStatus
Responses 400 Invalid user supplied
+Default server
null//petstore.swagger.io/v2 /user/{username}
Sandbox server
null//petstore.swagger.io/sandbox /user/{username}
Request samples application/json
Copy
Expand all Collapse all
{
"pet" :
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
},
"username" : "John78" ,
"firstName" : "John" ,
"lastName" : "Smith" ,
"email" : "john.smith@example.com" ,
"password" : "drowssaP123" ,
"phone" : "+1-202-555-0192" ,
"userStatus" : 0
}
Delete user This can only be done by the logged in user.
+
path Parameters username required
string
The name that needs to be deleted
+
Responses 400 Invalid username supplied
+Default server
null//petstore.swagger.io/v2 /user/{username}
Sandbox server
null//petstore.swagger.io/sandbox /user/{username}
Creates list of users with given input array Request Body schema: application/json Array
pet username firstName lastName email passwordstring <password> >= 8 characters (?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
User password, MUST contain a mix of upper and lower case letters, as well as digits
+
phonestring Nullable ^\+(?:[0-9]-?){6,14}[0-9]$
User phone number in international format
+
userStatus
Responses default successful operation
+ post /user/createWithArray Default server
null//petstore.swagger.io/v2 /user/createWithArray
Sandbox server
null//petstore.swagger.io/sandbox /user/createWithArray
Request samples application/json
Copy
Expand all Collapse all
[
{
"pet" :
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
},
"username" : "John78" ,
"firstName" : "John" ,
"lastName" : "Smith" ,
"email" : "john.smith@example.com" ,
"password" : "drowssaP123" ,
"phone" : "+1-202-555-0192" ,
"userStatus" : 0
}
]
Creates list of users with given input array Request Body schema: application/json Array
pet username firstName lastName email passwordstring <password> >= 8 characters (?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])
User password, MUST contain a mix of upper and lower case letters, as well as digits
+
phonestring Nullable ^\+(?:[0-9]-?){6,14}[0-9]$
User phone number in international format
+
userStatus
Responses default successful operation
+ post /user/createWithList Default server
null//petstore.swagger.io/v2 /user/createWithList
Sandbox server
null//petstore.swagger.io/sandbox /user/createWithList
Request samples application/json
Copy
Expand all Collapse all
[
{
"pet" :
{
"name" : "Guru" ,
"friend" : { },
"status" : "available" ,
"petType" : "string"
},
"username" : "John78" ,
"firstName" : "John" ,
"lastName" : "Smith" ,
"email" : "john.smith@example.com" ,
"password" : "drowssaP123" ,
"phone" : "+1-202-555-0192" ,
"userStatus" : 0
}
]
Logs user into the system query Parameters username required
string
The user name for login
+
password required
string
The password for login in clear text
+
Responses 200 successful operation
+400 Invalid username/password supplied
+Default server
null//petstore.swagger.io/v2 /user/login
Sandbox server
null//petstore.swagger.io/sandbox /user/login
Response samples Copy
Expand all Collapse all Logs out current logged in user session
Responses default successful operation
+Default server
null//petstore.swagger.io/v2 /user/logout
Sandbox server
null//petstore.swagger.io/sandbox /user/logout
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
index 375d1f4b..5836a8aa 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,6 @@
"version": "2.0.0-alpha.15",
"description": "ReDoc",
"main": "bundles/redoc.lib.js",
- "bin": "bin/cli.js",
"scripts": {
"start": "webpack-dev-server --mode=development --env.playground --hot --config demo/webpack.config.ts ",
"start:prod": "webpack-dev-server --env.playground --mode=production --config demo/webpack.config.ts",
@@ -24,7 +23,7 @@
"lint": "tslint --project tsconfig.json",
"benchmark": "node ./benchmark/benchmark.js",
"start:demo": "webpack-dev-server --hot --config demo/webpack.config.ts",
- "compile:cli": "tsc bin/cli.ts --target es6 --module commonjs --types yargs"
+ "compile:cli": "tsc cli/index.ts --target es6 --module commonjs --types yargs"
},
"author": "",
"license": "MIT",
diff --git a/webpack.config.ts b/webpack.config.ts
index 25dd593e..20e59b8d 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -23,6 +23,7 @@ export default (env: { standalone?: boolean } = {}) => ({
path: path.join(__dirname, '/bundles'),
library: 'Redoc',
libraryTarget: 'umd',
+ globalObject: 'this',
},
devtool: 'source-map',