From d16406ac6064915aeb8b81d921a97dcb49044925 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:03:18 -0800 Subject: [PATCH 01/21] swagger-ui-react alpha.0 --- .gitignore | 2 + flavors/swagger-ui-react/README.md | 43 + flavors/swagger-ui-react/index.js | 23 + flavors/swagger-ui-react/package.json | 24 + .../release/create-manifest.js | 5 + flavors/swagger-ui-react/release/run.sh | 22 + .../swagger-ui-react/release/template.json | 29 + package-lock.json | 1031 +++++++++++------ package.json | 2 + 9 files changed, 837 insertions(+), 344 deletions(-) create mode 100644 flavors/swagger-ui-react/README.md create mode 100644 flavors/swagger-ui-react/index.js create mode 100644 flavors/swagger-ui-react/package.json create mode 100644 flavors/swagger-ui-react/release/create-manifest.js create mode 100755 flavors/swagger-ui-react/release/run.sh create mode 100644 flavors/swagger-ui-react/release/template.json diff --git a/.gitignore b/.gitignore index 7bd54eaac45..1ddf19e3d2b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ selenium-debug.log test/e2e/db.json docs/_book +flavors/**/dist/* + # Cypress test/e2e-cypress/screenshots test/e2e-cypress/videos \ No newline at end of file diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md new file mode 100644 index 00000000000..2ef33e98b92 --- /dev/null +++ b/flavors/swagger-ui-react/README.md @@ -0,0 +1,43 @@ +# `swagger-ui-react` + +[![NPM version](https://badge.fury.io/js/swagger-ui-react.svg)](http://badge.fury.io/js/swagger-ui-react) + +`swagger-ui-react` is a flavor of Swagger UI suitable for use in React applications. + +It has a few distinctions from the mainstream version of Swagger UI: +* Exports a component instead of a constructor function +* Declares `react` and `react-dom` as peerDependencies + +Versions of this module mirror the version of Swagger UI included in the distribution. + +### Quick start + +Install `swagger-ui-react`: + +``` +$ npm i --save swagger-ui-react +``` + +Use it in your React application: + +```js +import SwaggerUI from "swagger-ui-react" +import "swagger-ui-react/swagger-ui.css" + +export default AppComponent = () => +``` + +### Configuration + +TODO + +### Limitations + +* Not all configuration bindings are available. +* Custom plugins are not officially supported. +* OAuth redirection handling is not supported. +* Topbar/Standalone mode is not supported. + +--- + +For anything else, check the [Swagger-UI](https://github.com/swagger-api/swagger-ui) repository. diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js new file mode 100644 index 00000000000..a6322ff278b --- /dev/null +++ b/flavors/swagger-ui-react/index.js @@ -0,0 +1,23 @@ +import React from "react" +import swaggerUIConstructor from "./swagger-ui" + +export class SwaggerUI extends React.Component { + constructor (props) { + super(props) + this.SwaggerUIComponent = null + this.system = null + } + + componentDidMount() { + const ui = swaggerUIConstructor({ + url: this.props.url + }) + + this.system = ui + this.SwaggerUIComponent = ui.getComponent("App", "root") + } + + render() { + return this.SwaggerUIComponent + } +} diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json new file mode 100644 index 00000000000..99533262007 --- /dev/null +++ b/flavors/swagger-ui-react/package.json @@ -0,0 +1,24 @@ +{ + "name": "swagger-ui-react", + "version": "0.0.0-alpha.0", + "main": "index.js", + "repository": "git@github.com:swagger-api/swagger-ui.git", + "contributors": [ + "(in alphabetical order)", + "Anna Bodnia ", + "Buu Nguyen ", + "Josh Ponelat ", + "Kyle Shockey ", + "Robert Barnwell ", + "Sahar Jafari " + ], + "license": "Apache-2.0", + "dependencies": {}, + "peerDependencies": { + "react": ">=15.6.2", + "react-dom": ">=15.6.2" + }, + "scripts": { + "release": "./release/run.sh" + } +} \ No newline at end of file diff --git a/flavors/swagger-ui-react/release/create-manifest.js b/flavors/swagger-ui-react/release/create-manifest.js new file mode 100644 index 00000000000..451ffc3b003 --- /dev/null +++ b/flavors/swagger-ui-react/release/create-manifest.js @@ -0,0 +1,5 @@ +var jsonMerger = require("json-merger") +var fs = require("fs") +var result = jsonMerger.mergeFiles(["../../../package.json", "../package.json", "template.json"]) + +process.stdout.write(JSON.stringify(result, null, 2)) \ No newline at end of file diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh new file mode 100755 index 00000000000..34f16994faa --- /dev/null +++ b/flavors/swagger-ui-react/release/run.sh @@ -0,0 +1,22 @@ +# Deploy `swagger-ui-react` to npm. + +# Parameter Expansion: http://stackoverflow.com/questions/6393551/what-is-the-meaning-of-0-in-a-bash-script +cd "${0%/*}" + +# Copy UI's dist files to our directory +cp ../../../dist/swagger-ui.js ../dist +cp ../../../dist/swagger-ui.css ../dist + +# Create a releasable package manifest +node create-manifest.js > ../dist/package.json + +# Transpile our top-level component +../../../node_modules/.bin/babel ../index.js > ../dist/index.js + +cd ../dist + +if [ "$PUBLISH_FLAVOR_REACT" = "true" ] || [ "$TRAVIS" = "true" ] ; then + npm publish . +else + npm pack . +fi diff --git a/flavors/swagger-ui-react/release/template.json b/flavors/swagger-ui-react/release/template.json new file mode 100644 index 00000000000..f93a100462f --- /dev/null +++ b/flavors/swagger-ui-react/release/template.json @@ -0,0 +1,29 @@ +{ + "dependencies": { + "react": { + "$remove": true + }, + "react-dom": { + "$remove": true + } + }, + "peerDependencies": { + "react": ">=15.6.2", + "react-dom": ">=15.6.2" + }, + "scripts": { + "$remove": true + }, + "devDependencies": { + "$remove": true + }, + "bundlesize": { + "$remove": true + }, + "nyc": { + "$remove": true + }, + "browserslist": { + "$remove": true + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 869596974b4..7c0a09ce094 100644 --- a/package-lock.json +++ b/package-lock.json @@ -325,6 +325,12 @@ "@types/sinon": "*" } }, + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=", + "dev": true + }, "JSONStream": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.4.tgz", @@ -1060,6 +1066,66 @@ "is-buffer": "^1.1.5" } }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -1931,6 +1997,25 @@ "babel-types": "^6.24.1" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, "babel-preset-env": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", @@ -3161,6 +3246,12 @@ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, + "cjson": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", + "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=", + "dev": true + }, "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", @@ -5669,6 +5760,12 @@ "stream-shift": "^1.0.0" } }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=", + "dev": true + }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -7360,6 +7457,12 @@ "rimraf": "^2.2.8" } }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -7391,27 +7494,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "", + "resolved": false, "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", - "resolved": "", + "resolved": false, "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "", + "resolved": false, "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, @@ -7422,15 +7526,17 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "", + "resolved": false, "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7438,39 +7544,42 @@ }, "chownr": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "", + "resolved": false, "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "", + "resolved": false, "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "", + "resolved": false, "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, @@ -7480,28 +7589,28 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "", + "resolved": false, "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "", + "resolved": false, "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "", + "resolved": false, "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, @@ -7511,14 +7620,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "", + "resolved": false, "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -7535,7 +7644,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, @@ -7550,14 +7659,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": "", + "resolved": false, "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, @@ -7567,7 +7676,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": "", + "resolved": false, "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, @@ -7577,7 +7686,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "", + "resolved": false, "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -7588,53 +7697,58 @@ }, "inherits": { "version": "2.0.3", - "resolved": "", + "resolved": false, "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", - "resolved": "", + "resolved": false, "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "", + "resolved": false, "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "", + "resolved": false, "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", - "resolved": "", + "resolved": false, "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7642,7 +7756,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": "", + "resolved": false, "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, @@ -7652,23 +7766,24 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "", + "resolved": false, "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": "", + "resolved": false, "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, @@ -7680,7 +7795,7 @@ }, "node-pre-gyp": { "version": "0.9.1", - "resolved": "", + "resolved": false, "integrity": "sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA=", "dev": true, "optional": true, @@ -7699,7 +7814,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -7710,14 +7825,14 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": "", + "resolved": false, "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": "", + "resolved": false, "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, @@ -7728,7 +7843,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -7741,43 +7856,45 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "", + "resolved": false, "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "", + "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "", + "resolved": false, "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -7788,21 +7905,21 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "", + "resolved": false, "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.6", - "resolved": "", + "resolved": false, "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", "dev": true, "optional": true, @@ -7815,7 +7932,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "", + "resolved": false, "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true @@ -7824,7 +7941,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "", + "resolved": false, "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -7840,7 +7957,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "", + "resolved": false, "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, @@ -7850,50 +7967,52 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "", + "resolved": false, "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": "", + "resolved": false, "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "", + "resolved": false, "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7902,7 +8021,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "", + "resolved": false, "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -7912,23 +8031,24 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "", + "resolved": false, "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": "", + "resolved": false, "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, @@ -7944,14 +8064,14 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": "", + "resolved": false, "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, @@ -7961,15 +8081,17 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", - "resolved": "", + "resolved": false, "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "dev": true, + "optional": true } } }, @@ -9929,6 +10051,103 @@ "is-object": "^1.0.1" } }, + "jison": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", + "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", + "dev": true, + "requires": { + "JSONSelect": "0.4.0", + "cjson": "~0.2.1", + "ebnf-parser": "~0.1.9", + "escodegen": "0.0.21", + "esprima": "1.0.x", + "jison-lex": "0.2.x", + "lex-parser": "~0.1.3", + "nomnom": "1.5.2" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "dev": true + }, + "escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", + "dev": true, + "requires": { + "esprima": "~1.0.2", + "estraverse": "~0.0.4", + "source-map": ">= 0.1.2" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=", + "dev": true + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "dev": true, + "requires": { + "colors": "0.5.x", + "underscore": "1.1.x" + } + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=", + "dev": true + } + } + }, + "jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", + "dev": true, + "requires": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "dev": true + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "dev": true, + "requires": { + "colors": "0.5.x", + "underscore": "1.1.x" + } + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=", + "dev": true + } + } + }, "jju": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", @@ -10070,6 +10289,49 @@ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, + "json-merger": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/json-merger/-/json-merger-1.1.0.tgz", + "integrity": "sha512-0MRqgAqZXCTvWbesFpIhaPLaMKYT3ImYc0dkdEOfMIb63kyQ1nssltcBo0pezRcheRrvBuVCMubnNDVUHkEMKw==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "fs-extra": "^7.0.1", + "js-yaml": "^3.9.1", + "json-ptr": "^1.1.1", + "jsonpath": "^1.0.0", + "lodash.range": "^3.2.0", + "safe-eval": "^0.4.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -10085,6 +10347,12 @@ "jju": "^1.1.0" } }, + "json-ptr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.1.1.tgz", + "integrity": "sha512-AGCtezsBJDtAvh6XP4afC7+EifV4nCJnnUC1lqxBSvu3EGqAtnRz6s1PpsYJqLNCAYsZ1NojXvbga0TIzJyO/w==", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -10246,6 +10514,26 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "jsonpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.0.tgz", + "integrity": "sha1-Rc2dTE0NaCXZC9fkD4PxGCsT3Qc=", + "dev": true, + "requires": { + "esprima": "1.2.2", + "jison": "0.4.13", + "static-eval": "2.0.0", + "underscore": "1.7.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=", + "dev": true + } + } + }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -10383,6 +10671,12 @@ "type-check": "~0.3.2" } }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=", + "dev": true + }, "license-checker": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-19.0.0.tgz", @@ -10971,6 +11265,12 @@ "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", "dev": true }, + "lodash.range": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.range/-/lodash.range-3.2.0.tgz", + "integrity": "sha1-9GHliPZmg/fq3q3lE+OKaaVloV0=", + "dev": true + }, "lodash.reduce": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", @@ -12523,6 +12823,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -13831,7 +14132,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -15867,6 +16169,17 @@ "os-tmpdir": "^1.0.0" } }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", @@ -19812,6 +20125,12 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "safe-eval": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/safe-eval/-/safe-eval-0.4.1.tgz", + "integrity": "sha512-wmiu4RSYVZ690RP1+cv/LxfPK1dIlEN35aW7iv4SMYdqDrHbkll4+NJcHmKm7PbCuI1df1otOcPwgcc2iFR85g==", + "dev": true + }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -20979,6 +21298,15 @@ "snazzy": "^6.0.0" } }, + "static-eval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz", + "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", + "dev": true, + "requires": { + "escodegen": "^1.8.1" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -22176,6 +22504,12 @@ } } }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "utf8-bytes": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/utf8-bytes/-/utf8-bytes-0.0.1.tgz", @@ -22233,6 +22567,15 @@ "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", "dev": true }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", @@ -22526,43 +22869,133 @@ "webpack-addons": "^1.1.5", "yargs": "^9.0.1", "yeoman-environment": "^2.0.0", - "yeoman-generator": "git://github.com/ev1stensberg/generator.git#9e24fa31c85302ca1145ae34fc68b4f133251ca0" + "yeoman-generator": "git://github.com/ev1stensberg/generator.git#Feature-getArgument" }, "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "restore-cursor": "^1.0.1" } }, - "has-flag": { - "version": "2.0.0", + "external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "spawn-sync": "^1.0.15", + "tmp": "^0.0.29" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "has-flag": { + "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "mute-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -22574,6 +23007,22 @@ "mem": "^1.1.0" } }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", @@ -22589,6 +23038,24 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + }, + "untildify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", + "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -22630,6 +23097,127 @@ "requires": { "camelcase": "^4.1.0" } + }, + "yeoman-generator": { + "version": "git://github.com/ev1stensberg/generator.git#9e24fa31c85302ca1145ae34fc68b4f133251ca0", + "from": "git://github.com/ev1stensberg/generator.git#Feature-getArgument", + "dev": true, + "requires": { + "async": "^2.0.0", + "chalk": "^1.0.0", + "cli-table": "^0.3.1", + "cross-spawn": "^5.0.1", + "dargs": "^5.1.0", + "dateformat": "^2.0.0", + "debug": "^2.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^2.1.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.1.0", + "lodash": "^4.11.1", + "mem-fs-editor": "^3.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.0", + "pretty-bytes": "^4.0.2", + "read-chunk": "^2.0.0", + "read-pkg-up": "^2.0.0", + "rimraf": "^2.2.0", + "run-async": "^2.0.0", + "shelljs": "^0.7.0", + "text-table": "^0.2.0", + "through2": "^2.0.0", + "yeoman-environment": "^1.1.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "diff": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", + "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=", + "dev": true + }, + "inquirer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", + "dev": true, + "requires": { + "ansi-escapes": "^1.1.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "external-editor": "^1.1.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "mute-stream": "0.0.6", + "pinkie-promise": "^2.0.0", + "run-async": "^2.2.0", + "rx": "^4.1.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yeoman-environment": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz", + "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "debug": "^2.0.0", + "diff": "^2.1.2", + "escape-string-regexp": "^1.0.2", + "globby": "^4.0.0", + "grouped-queue": "^0.3.0", + "inquirer": "^1.0.2", + "lodash": "^4.11.1", + "log-symbols": "^1.0.1", + "mem-fs": "^1.1.0", + "text-table": "^0.2.0", + "untildify": "^2.0.0" + } + } + } } } }, @@ -23226,251 +23814,6 @@ } } }, - "yeoman-generator": { - "version": "git://github.com/ev1stensberg/generator.git#9e24fa31c85302ca1145ae34fc68b4f133251ca0", - "from": "yeoman-generator@git://github.com/ev1stensberg/generator.git#9e24fa31c85302ca1145ae34fc68b4f133251ca0", - "dev": true, - "requires": { - "async": "^2.0.0", - "chalk": "^1.0.0", - "cli-table": "^0.3.1", - "cross-spawn": "^5.0.1", - "dargs": "^5.1.0", - "dateformat": "^2.0.0", - "debug": "^2.1.0", - "detect-conflict": "^1.0.0", - "error": "^7.0.2", - "find-up": "^2.1.0", - "github-username": "^4.0.0", - "istextorbinary": "^2.1.0", - "lodash": "^4.11.1", - "mem-fs-editor": "^3.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.0", - "pretty-bytes": "^4.0.2", - "read-chunk": "^2.0.0", - "read-pkg-up": "^2.0.0", - "rimraf": "^2.2.0", - "run-async": "^2.0.0", - "shelljs": "^0.7.0", - "text-table": "^0.2.0", - "through2": "^2.0.0", - "yeoman-environment": "^1.1.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "dev": true, - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "diff": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", - "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=", - "dev": true - }, - "external-editor": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "spawn-sync": "^1.0.15", - "tmp": "^0.0.29" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^6.0.1", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "inquirer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", - "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", - "dev": true, - "requires": { - "ansi-escapes": "^1.1.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", - "cli-width": "^2.0.0", - "external-editor": "^1.1.0", - "figures": "^1.3.5", - "lodash": "^4.3.0", - "mute-stream": "0.0.6", - "pinkie-promise": "^2.0.0", - "run-async": "^2.2.0", - "rx": "^4.1.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", - "through": "^2.3.6" - } - }, - "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=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "mute-stream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", - "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=", - "dev": true - }, - "onetime": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "dev": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tmp": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - }, - "untildify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", - "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } - }, - "yeoman-environment": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz", - "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "debug": "^2.0.0", - "diff": "^2.1.2", - "escape-string-regexp": "^1.0.2", - "globby": "^4.0.0", - "grouped-queue": "^0.3.0", - "inquirer": "^1.0.2", - "lodash": "^4.11.1", - "log-symbols": "^1.0.1", - "mem-fs": "^1.1.0", - "text-table": "^0.2.0", - "untildify": "^2.0.0" - } - } - } - }, "zenscroll": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/zenscroll/-/zenscroll-4.0.2.tgz", diff --git a/package.json b/package.json index 30f214cb31d..58fbb7fafca 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ }, "devDependencies": { "autoprefixer": "^8.4.1", + "babel-cli": "^6.26.0", "babel-core": "^6.23.1", "babel-eslint": "^7.1.1", "babel-loader": "^7.1.0", @@ -118,6 +119,7 @@ "imports-loader": "^0.8.0", "jsdom": "^11.10.0", "json-loader": "^0.5.7", + "json-merger": "^1.1.0", "json-server": "^0.12.2", "less": "^3.0.2", "license-checker": "^19.0.0", From 261f8db939a441e8c8fc0c452a2333d7d0fc0c8f Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:08:19 -0800 Subject: [PATCH 02/21] alpha.1 --- flavors/swagger-ui-react/package.json | 2 +- flavors/swagger-ui-react/release/run.sh | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json index 99533262007..0131f040ffd 100644 --- a/flavors/swagger-ui-react/package.json +++ b/flavors/swagger-ui-react/package.json @@ -1,6 +1,6 @@ { "name": "swagger-ui-react", - "version": "0.0.0-alpha.0", + "version": "0.0.0-alpha.1", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh index 34f16994faa..a3bc6719e0a 100755 --- a/flavors/swagger-ui-react/release/run.sh +++ b/flavors/swagger-ui-react/release/run.sh @@ -11,8 +11,12 @@ cp ../../../dist/swagger-ui.css ../dist node create-manifest.js > ../dist/package.json # Transpile our top-level component -../../../node_modules/.bin/babel ../index.js > ../dist/index.js +../../../node_modules/.bin/babel ../index.js > ../dist/index.js +# Copy our README into the dist folder for npm +cp ../README.md ../dist + +# Run the release from the dist folder cd ../dist if [ "$PUBLISH_FLAVOR_REACT" = "true" ] || [ "$TRAVIS" = "true" ] ; then From 88d29bc3e1af00a29deab3d17dca4dcb5c09754f Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:15:58 -0800 Subject: [PATCH 03/21] alpha.2 --- flavors/swagger-ui-react/index.js | 2 +- flavors/swagger-ui-react/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index a6322ff278b..e113f16c91e 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -18,6 +18,6 @@ export class SwaggerUI extends React.Component { } render() { - return this.SwaggerUIComponent + return } } diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json index 0131f040ffd..92a2f3d8275 100644 --- a/flavors/swagger-ui-react/package.json +++ b/flavors/swagger-ui-react/package.json @@ -1,6 +1,6 @@ { "name": "swagger-ui-react", - "version": "0.0.0-alpha.1", + "version": "0.0.0-alpha.2", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ From 04536c20e0952820d04887bf1238088e65fbe3ad Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:23:07 -0800 Subject: [PATCH 04/21] alpha.3 --- flavors/swagger-ui-react/index.js | 2 +- flavors/swagger-ui-react/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index e113f16c91e..5d7f09e17f9 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -18,6 +18,6 @@ export class SwaggerUI extends React.Component { } render() { - return + return this.SwaggerUIComponent ? : null } } diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json index 92a2f3d8275..261537b5eb2 100644 --- a/flavors/swagger-ui-react/package.json +++ b/flavors/swagger-ui-react/package.json @@ -1,6 +1,6 @@ { "name": "swagger-ui-react", - "version": "0.0.0-alpha.2", + "version": "0.0.0-alpha.3", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ From 0059527425603c0d2b802e9c5acfe321573a1ebe Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:40:37 -0800 Subject: [PATCH 05/21] begin updating README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f86b1fdd6c..7aa052ae693 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,11 @@ **🕰️ Looking for the older version of Swagger UI?** Refer to the [*2.x* branch](https://github.com/swagger-api/swagger-ui/tree/2.x). -This repository publishes to two different NPM modules: +This repository publishes to three different NPM modules: * [swagger-ui](https://www.npmjs.com/package/swagger-ui) is a traditional npm module intended for use in single-page applications that are capable of resolving dependencies (via Webpack, Browserify, etc). * [swagger-ui-dist](https://www.npmjs.com/package/swagger-ui-dist) is a dependency-free module that includes everything you need to serve Swagger UI in a server-side project, or a single-page application that can't resolve npm module dependencies. +* [swagger-ui-react](https://www.npmjs.com/package/swagger-ui-react) is Swagger UI packaged as a React component for use in React applciations. We strongly suggest that you use `swagger-ui` instead of `swagger-ui-dist` if you're building a single-page application, since `swagger-ui-dist` is significantly larger. From 70491675e447ed7fa826e288cc90e1848de53b78 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Wed, 20 Feb 2019 17:41:13 -0800 Subject: [PATCH 06/21] alpha.4 --- flavors/swagger-ui-react/index.js | 2 ++ flavors/swagger-ui-react/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index 5d7f09e17f9..fcfe2624e47 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -15,6 +15,8 @@ export class SwaggerUI extends React.Component { this.system = ui this.SwaggerUIComponent = ui.getComponent("App", "root") + + this.forceUpdate() } render() { diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json index 261537b5eb2..d610d74bb1e 100644 --- a/flavors/swagger-ui-react/package.json +++ b/flavors/swagger-ui-react/package.json @@ -1,6 +1,6 @@ { "name": "swagger-ui-react", - "version": "0.0.0-alpha.3", + "version": "0.0.0-alpha.4", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ From d73839ff532d49057d95ca3218a3443a91733248 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Fri, 22 Feb 2019 12:02:38 -0800 Subject: [PATCH 07/21] WIP: `displayOperationId` support --- flavors/swagger-ui-react/index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index fcfe2624e47..39dc149da75 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -10,7 +10,8 @@ export class SwaggerUI extends React.Component { componentDidMount() { const ui = swaggerUIConstructor({ - url: this.props.url + url: this.props.url, + displayOperationId: this.props.displayOperationId }) this.system = ui @@ -22,4 +23,10 @@ export class SwaggerUI extends React.Component { render() { return this.SwaggerUIComponent ? : null } + + componentDidUpdate(prevProps) { + if(this.props.displayOperationId !== prevProps.displayOperationId) { + this.system.getConfigs().displayOperationId = this.props.displayOperationId // XXX: this is bad + } + } } From e07bb1beb08e620fe0181b46853241bcbc5adfc8 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 12:52:51 -0800 Subject: [PATCH 08/21] move loading error readouts to BaseLayout --- src/core/components/layouts/base.jsx | 46 ++++++++++++++++++++++------ src/standalone/layout.jsx | 31 ++----------------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/src/core/components/layouts/base.jsx b/src/core/components/layouts/base.jsx index fc933e5bc47..f4062ad4420 100644 --- a/src/core/components/layouts/base.jsx +++ b/src/core/components/layouts/base.jsx @@ -13,7 +13,7 @@ export default class BaseLayout extends React.Component { } render() { - let {specSelectors, getComponent} = this.props + let {errSelectors, specSelectors, getComponent} = this.props let SvgAssets = getComponent("SvgAssets") let InfoContainer = getComponent("InfoContainer", true) @@ -33,15 +33,43 @@ export default class BaseLayout extends React.Component { const isSpecEmpty = !specSelectors.specStr() - if(isSpecEmpty) { - let loadingMessage - let isLoading = specSelectors.loadingStatus() === "loading" - if(isLoading) { - loadingMessage =
- } else { - loadingMessage =

No API definition provided.

- } + const loadingStatus = specSelectors.loadingStatus() + let loadingMessage = null + + if(loadingStatus === "loading") { + loadingMessage =
+
+
+
+
+ } + + if(loadingStatus === "failed") { + loadingMessage =
+
+

Failed to load API definition.

+ +
+
+ } + + if (loadingStatus === "failedConfig") { + const lastErr = errSelectors.lastError() + const lastErrMsg = lastErr ? lastErr.get("message") : "" + loadingMessage =
+
+

Failed to load remote configuration.

+

{lastErrMsg}

+
+
+ } + + if(!loadingMessage && isSpecEmpty) { + loadingMessage =

No API definition provided.

+ } + + if(loadingMessage) { return
{loadingMessage} diff --git a/src/standalone/layout.jsx b/src/standalone/layout.jsx index c4f85f55858..6374e497b1c 100644 --- a/src/standalone/layout.jsx +++ b/src/standalone/layout.jsx @@ -21,44 +21,17 @@ export default class StandaloneLayout extends React.Component { let Container = getComponent("Container") let Row = getComponent("Row") let Col = getComponent("Col") - let Errors = getComponent("errors", true) const Topbar = getComponent("Topbar", true) const BaseLayout = getComponent("BaseLayout", true) const OnlineValidatorBadge = getComponent("onlineValidatorBadge", true) - const loadingStatus = specSelectors.loadingStatus() - const lastErr = errSelectors.lastError() - const lastErrMsg = lastErr ? lastErr.get("message") : "" return ( - { Topbar ? : null } - { loadingStatus === "loading" && -
-
-
-
-
- } - { loadingStatus === "failed" && -
-
-

Failed to load API definition.

- -
-
- } - { loadingStatus === "failedConfig" && -
-
-

Failed to load remote configuration.

-

{lastErrMsg}

-
-
- } - { !loadingStatus || loadingStatus === "success" && } + {Topbar ? : null} + From fe8e3a11e49d56a660148f50fc03415a2ec36014 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 13:11:40 -0800 Subject: [PATCH 09/21] add `url` prop --- flavors/swagger-ui-react/README.md | 9 ++++++++- flavors/swagger-ui-react/index.js | 15 ++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 2ef33e98b92..753ee583082 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -29,7 +29,10 @@ export default AppComponent = () => Date: Thu, 28 Feb 2019 13:17:24 -0800 Subject: [PATCH 10/21] export React component as default --- flavors/swagger-ui-react/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index 57e10b8a9e5..b85f91fe0d4 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -2,7 +2,7 @@ import React from "react" import PropTypes from "prop-types" import swaggerUIConstructor from "./swagger-ui" -export class SwaggerUI extends React.Component { +export default class SwaggerUI extends React.Component { constructor (props) { super(props) this.SwaggerUIComponent = null From 4311e8d3ed44c3cd56b24dbd57f5769c2dec75ec Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 13:54:22 -0800 Subject: [PATCH 11/21] add interceptor support --- flavors/swagger-ui-react/README.md | 13 +++++++++++++ flavors/swagger-ui-react/index.js | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 753ee583082..d5bcfc5c445 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -33,6 +33,19 @@ export default AppComponent = () => { + if (typeof this.props.responseInterceptor === "function") { + return this.props.responseInterceptor(res) + } + return res + } } SwaggerUI.propTypes = { url: PropTypes.string, + requestInterceptor: PropTypes.func, + responseInterceptor: PropTypes.func, } \ No newline at end of file From ad1917c4e6f662f61cb4feaaeff1d490dc567f03 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 13:55:44 -0800 Subject: [PATCH 12/21] modify docs markup --- flavors/swagger-ui-react/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index d5bcfc5c445..7df1799f44c 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -35,14 +35,14 @@ Remote URL to an OpenAPI document that Swagger UI will fetch, parse, and display ##### `requestInterceptor`: PropTypes.func -`req => req` or `req => Promise`. +> `req => req` or `req => Promise`. A function that accepts a request object, and returns either a request object or a Promise that resolves to a request object. ##### `responseInterceptor`: PropTypes.func -`res => res` or `res => Promise`. +> `res => res` or `res => Promise`. A function that accepts a response object, and returns either a response object or a Promise that resolves to a response object. From b1bbb90291d6a5cd44f914ddb96d90760a770fb7 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 14:17:30 -0800 Subject: [PATCH 13/21] add `onComplete` prop --- flavors/swagger-ui-react/README.md | 4 ++++ flavors/swagger-ui-react/index.js | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 7df1799f44c..c66b8623b3f 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -47,6 +47,10 @@ or a Promise that resolves to a request object. A function that accepts a response object, and returns either a response object or a Promise that resolves to a response object. +##### `onComplete`: PropTypes.func + +A callback function that is triggered when Swagger-UI finishes rendering an OpenAPI document. + ### Limitations * Not all configuration bindings are available. diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js index ec7bc3a6f91..8b7c94d13ac 100644 --- a/flavors/swagger-ui-react/index.js +++ b/flavors/swagger-ui-react/index.js @@ -14,6 +14,7 @@ export default class SwaggerUI extends React.Component { url: this.props.url, requestInterceptor: this.requestInterceptor, responseInterceptor: this.responseInterceptor, + onComplete: this.onComplete, }) this.system = ui @@ -50,10 +51,17 @@ export default class SwaggerUI extends React.Component { } return res } + + onComplete = () => { + if (typeof this.props.onComplete === "function") { + return this.props.onComplete() + } + } } SwaggerUI.propTypes = { url: PropTypes.string, requestInterceptor: PropTypes.func, responseInterceptor: PropTypes.func, + onComplete: PropTypes.func, } \ No newline at end of file From b30fcb74ef273cc8065a87fe5797f0653a1c55ad Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 14:47:30 -0800 Subject: [PATCH 14/21] add `spec` prop --- flavors/swagger-ui-react/README.md | 8 ++++++++ flavors/swagger-ui-react/index.js | 24 ++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index c66b8623b3f..2331b740736 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -29,10 +29,18 @@ export default AppComponent = () => Date: Thu, 28 Feb 2019 15:58:09 -0800 Subject: [PATCH 15/21] Update README.md --- flavors/swagger-ui-react/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 2331b740736..e7af4eaf12b 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -10,7 +10,7 @@ It has a few distinctions from the mainstream version of Swagger UI: Versions of this module mirror the version of Swagger UI included in the distribution. -### Quick start +## Quick start Install `swagger-ui-react`: @@ -27,46 +27,46 @@ import "swagger-ui-react/swagger-ui.css" export default AppComponent = () => ``` -### Configuration +## Configuration -##### `spec`: PropTypes.object +#### `spec`: PropTypes.object An OpenAPI document respresented as a JavaScript object, JSON string, or YAML string for Swagger UI to display. ⚠️ Don't use this in conjunction with `url` - unpredictable behavior may occur. -##### `url`: PropTypes.string +#### `url`: PropTypes.string Remote URL to an OpenAPI document that Swagger UI will fetch, parse, and display. ⚠️ Don't use this in conjunction with `spec` - unpredictable behavior may occur. -##### `requestInterceptor`: PropTypes.func +#### `onComplete`: PropTypes.func + +A callback function that is triggered when Swagger-UI finishes rendering an OpenAPI document. + +#### `requestInterceptor`: PropTypes.func > `req => req` or `req => Promise`. A function that accepts a request object, and returns either a request object or a Promise that resolves to a request object. -##### `responseInterceptor`: PropTypes.func +#### `responseInterceptor`: PropTypes.func > `res => res` or `res => Promise`. A function that accepts a response object, and returns either a response object or a Promise that resolves to a response object. -##### `onComplete`: PropTypes.func - -A callback function that is triggered when Swagger-UI finishes rendering an OpenAPI document. - -### Limitations +## Limitations * Not all configuration bindings are available. * Custom plugins are not officially supported. * OAuth redirection handling is not supported. * Topbar/Standalone mode is not supported. -### Notes +## Notes * The `package.json` in the same folder as this README is _not_ the manifest that should be used for releases - another manifest is generated at build-time and can be found in `./dist/`. From b4de4d8c96d15bd0c6e61c80647b9813d4f52f85 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 16:45:26 -0800 Subject: [PATCH 16/21] alpha.6 --- README.md | 1 - flavors/swagger-ui-react/README.md | 12 +++++++----- flavors/swagger-ui-react/package-lock.json | 5 +++++ flavors/swagger-ui-react/package.json | 2 +- flavors/swagger-ui-react/release/run.sh | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 flavors/swagger-ui-react/package-lock.json diff --git a/README.md b/README.md index 7aa052ae693..16443e91a54 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,6 @@ To help with the migration, here are the currently known issues with 3.X. This l - Support for `collectionFormat` is partial. - l10n (translations) is not implemented. - Relative path support for external files is not implemented. -- There are compatibility [issues](https://github.com/swagger-api/swagger-ui/labels/epic%3A%20usage%20in%20react%4016) with React 16.x. ## Security contact diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index e7af4eaf12b..60d7d5aaf02 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -4,9 +4,9 @@ `swagger-ui-react` is a flavor of Swagger UI suitable for use in React applications. -It has a few distinctions from the mainstream version of Swagger UI: +It has a few differences from the main version of Swagger UI: +* Declares `react` and `react-dom` as peerDependencies instead of production dependencies * Exports a component instead of a constructor function -* Declares `react` and `react-dom` as peerDependencies Versions of this module mirror the version of Swagger UI included in the distribution. @@ -24,10 +24,12 @@ Use it in your React application: import SwaggerUI from "swagger-ui-react" import "swagger-ui-react/swagger-ui.css" -export default AppComponent = () => +export default App = () => ``` -## Configuration +## Props + +These props map to [Swagger UI configuration options](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md) of the same name. #### `spec`: PropTypes.object @@ -62,9 +64,9 @@ or a Promise that resolves to a response object. ## Limitations * Not all configuration bindings are available. -* Custom plugins are not officially supported. * OAuth redirection handling is not supported. * Topbar/Standalone mode is not supported. +* Custom plugins are not supported. ## Notes diff --git a/flavors/swagger-ui-react/package-lock.json b/flavors/swagger-ui-react/package-lock.json new file mode 100644 index 00000000000..dcea24a9585 --- /dev/null +++ b/flavors/swagger-ui-react/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "swagger-ui-react", + "version": "0.0.0-alpha.4", + "lockfileVersion": 1 +} diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json index d610d74bb1e..89de16be365 100644 --- a/flavors/swagger-ui-react/package.json +++ b/flavors/swagger-ui-react/package.json @@ -1,6 +1,6 @@ { "name": "swagger-ui-react", - "version": "0.0.0-alpha.4", + "version": "0.0.0-alpha.6", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh index a3bc6719e0a..9d43372f4fb 100755 --- a/flavors/swagger-ui-react/release/run.sh +++ b/flavors/swagger-ui-react/release/run.sh @@ -19,7 +19,7 @@ cp ../README.md ../dist # Run the release from the dist folder cd ../dist -if [ "$PUBLISH_FLAVOR_REACT" = "true" ] || [ "$TRAVIS" = "true" ] ; then +if [ "$PUBLISH_FLAVOR_REACT" = "true" ] ; then npm publish . else npm pack . From 7d97cfb4f5797a912e37a6f21b1f7487d08ce20d Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 16:46:03 -0800 Subject: [PATCH 17/21] remove independent manifest; build releasable exclusively from template --- flavors/swagger-ui-react/package-lock.json | 5 ---- flavors/swagger-ui-react/package.json | 24 ------------------- .../release/create-manifest.js | 2 +- .../swagger-ui-react/release/template.json | 22 +++++++++++++---- 4 files changed, 19 insertions(+), 34 deletions(-) delete mode 100644 flavors/swagger-ui-react/package-lock.json delete mode 100644 flavors/swagger-ui-react/package.json diff --git a/flavors/swagger-ui-react/package-lock.json b/flavors/swagger-ui-react/package-lock.json deleted file mode 100644 index dcea24a9585..00000000000 --- a/flavors/swagger-ui-react/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "swagger-ui-react", - "version": "0.0.0-alpha.4", - "lockfileVersion": 1 -} diff --git a/flavors/swagger-ui-react/package.json b/flavors/swagger-ui-react/package.json deleted file mode 100644 index 89de16be365..00000000000 --- a/flavors/swagger-ui-react/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "swagger-ui-react", - "version": "0.0.0-alpha.6", - "main": "index.js", - "repository": "git@github.com:swagger-api/swagger-ui.git", - "contributors": [ - "(in alphabetical order)", - "Anna Bodnia ", - "Buu Nguyen ", - "Josh Ponelat ", - "Kyle Shockey ", - "Robert Barnwell ", - "Sahar Jafari " - ], - "license": "Apache-2.0", - "dependencies": {}, - "peerDependencies": { - "react": ">=15.6.2", - "react-dom": ">=15.6.2" - }, - "scripts": { - "release": "./release/run.sh" - } -} \ No newline at end of file diff --git a/flavors/swagger-ui-react/release/create-manifest.js b/flavors/swagger-ui-react/release/create-manifest.js index 451ffc3b003..491697c6dcc 100644 --- a/flavors/swagger-ui-react/release/create-manifest.js +++ b/flavors/swagger-ui-react/release/create-manifest.js @@ -1,5 +1,5 @@ var jsonMerger = require("json-merger") var fs = require("fs") -var result = jsonMerger.mergeFiles(["../../../package.json", "../package.json", "template.json"]) +var result = jsonMerger.mergeFiles(["../../../package.json", "template.json"]) process.stdout.write(JSON.stringify(result, null, 2)) \ No newline at end of file diff --git a/flavors/swagger-ui-react/release/template.json b/flavors/swagger-ui-react/release/template.json index f93a100462f..ad23d923ab5 100644 --- a/flavors/swagger-ui-react/release/template.json +++ b/flavors/swagger-ui-react/release/template.json @@ -7,10 +7,6 @@ "$remove": true } }, - "peerDependencies": { - "react": ">=15.6.2", - "react-dom": ">=15.6.2" - }, "scripts": { "$remove": true }, @@ -25,5 +21,23 @@ }, "browserslist": { "$remove": true + }, + "name": "swagger-ui-react", + "version": "0.0.0-alpha.6", + "main": "index.js", + "repository": "git@github.com:swagger-api/swagger-ui.git", + "contributors": [ + "(in alphabetical order)", + "Anna Bodnia ", + "Buu Nguyen ", + "Josh Ponelat ", + "Kyle Shockey ", + "Robert Barnwell ", + "Sahar Jafari " + ], + "license": "Apache-2.0", + "peerDependencies": { + "react": ">=15.6.2", + "react-dom": ">=15.6.2" } } \ No newline at end of file From e96739de03f5ce6b9f591f9f70b0a7a2f52407ea Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 16:49:09 -0800 Subject: [PATCH 18/21] ensure dist is present; drop config field in manifest --- flavors/swagger-ui-react/release/run.sh | 2 ++ flavors/swagger-ui-react/release/template.json | 3 +++ 2 files changed, 5 insertions(+) diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh index 9d43372f4fb..c1396d5d5b8 100755 --- a/flavors/swagger-ui-react/release/run.sh +++ b/flavors/swagger-ui-react/release/run.sh @@ -3,6 +3,8 @@ # Parameter Expansion: http://stackoverflow.com/questions/6393551/what-is-the-meaning-of-0-in-a-bash-script cd "${0%/*}" +mkdir ../dist + # Copy UI's dist files to our directory cp ../../../dist/swagger-ui.js ../dist cp ../../../dist/swagger-ui.css ../dist diff --git a/flavors/swagger-ui-react/release/template.json b/flavors/swagger-ui-react/release/template.json index ad23d923ab5..7d73cef1a7c 100644 --- a/flavors/swagger-ui-react/release/template.json +++ b/flavors/swagger-ui-react/release/template.json @@ -22,6 +22,9 @@ "browserslist": { "$remove": true }, + "config": { + "$remove": true + }, "name": "swagger-ui-react", "version": "0.0.0-alpha.6", "main": "index.js", From 0de1e0431fd5b9ffdf88b93636ad0177f94a7ea6 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Thu, 28 Feb 2019 16:51:02 -0800 Subject: [PATCH 19/21] drop alpha field this script is now able to release to npm! --- flavors/swagger-ui-react/release/template.json | 1 - 1 file changed, 1 deletion(-) diff --git a/flavors/swagger-ui-react/release/template.json b/flavors/swagger-ui-react/release/template.json index 7d73cef1a7c..822d906aad4 100644 --- a/flavors/swagger-ui-react/release/template.json +++ b/flavors/swagger-ui-react/release/template.json @@ -26,7 +26,6 @@ "$remove": true }, "name": "swagger-ui-react", - "version": "0.0.0-alpha.6", "main": "index.js", "repository": "git@github.com:swagger-api/swagger-ui.git", "contributors": [ From fd300adb793799a7f787add2c8c2c41d54d54116 Mon Sep 17 00:00:00 2001 From: kyle Date: Fri, 1 Mar 2019 20:31:42 -0800 Subject: [PATCH 20/21] remove unused selector references --- src/standalone/layout.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/standalone/layout.jsx b/src/standalone/layout.jsx index 6374e497b1c..b91bb4dc412 100644 --- a/src/standalone/layout.jsx +++ b/src/standalone/layout.jsx @@ -16,7 +16,7 @@ export default class StandaloneLayout extends React.Component { } render() { - let { getComponent, specSelectors, errSelectors } = this.props + let { getComponent } = this.props let Container = getComponent("Container") let Row = getComponent("Row") From 7a3304a3ec539aedd88c3e4ddcc722265b7a22ee Mon Sep 17 00:00:00 2001 From: kyle Date: Fri, 1 Mar 2019 20:33:50 -0800 Subject: [PATCH 21/21] Update README.md --- flavors/swagger-ui-react/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md index 60d7d5aaf02..0fefd5b6c97 100644 --- a/flavors/swagger-ui-react/README.md +++ b/flavors/swagger-ui-react/README.md @@ -68,6 +68,8 @@ or a Promise that resolves to a response object. * Topbar/Standalone mode is not supported. * Custom plugins are not supported. +We intend to address these limitations based on user demand, so please open an issue or pull request if you have a specific request. + ## Notes * The `package.json` in the same folder as this README is _not_ the manifest that should be used for releases - another manifest is generated at build-time and can be found in `./dist/`.