├── .gitignore ├── README.md ├── bin └── swagger-ui-watcher.js ├── index.html ├── index.js ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Use either npm or yarn lockfiles, not both 2 | /package-lock.json 3 | 4 | # Created by https://www.gitignore.io 5 | 6 | backup 7 | 8 | ### PhpStorm ### 9 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm 10 | 11 | *.iml 12 | 13 | ## Directory-based project format: 14 | .idea/ 15 | # if you remove the above rule, at least ignore the following: 16 | 17 | # User-specific stuff: 18 | # .idea/workspace.xml 19 | # .idea/tasks.xml 20 | # .idea/dictionaries 21 | 22 | # Sensitive or high-churn files: 23 | # .idea/dataSources.ids 24 | # .idea/dataSources.xml 25 | # .idea/sqlDataSources.xml 26 | # .idea/dynamic.xml 27 | # .idea/uiDesigner.xml 28 | 29 | # Gradle: 30 | # .idea/gradle.xml 31 | # .idea/libraries 32 | 33 | # Mongo Explorer plugin: 34 | # .idea/mongoSettings.xml 35 | 36 | ## File-based project format: 37 | *.ipr 38 | *.iws 39 | 40 | ## Plugin-specific files: 41 | 42 | # IntelliJ 43 | out/ 44 | 45 | # mpeltonen/sbt-idea plugin 46 | .idea_modules/ 47 | 48 | # JIRA plugin 49 | atlassian-ide-plugin.xml 50 | 51 | # Crashlytics plugin (for Android Studio and IntelliJ) 52 | com_crashlytics_export_strings.xml 53 | crashlytics.properties 54 | crashlytics-build.properties 55 | 56 | 57 | # cache files for sublime text 58 | *.tmlanguage.cache 59 | *.tmPreferences.cache 60 | *.stTheme.cache 61 | 62 | # workspace files are user-specific 63 | *.sublime-workspace 64 | 65 | # project files should be checked into the repository, unless a significant 66 | # proportion of contributors will probably not be using SublimeText 67 | # *.sublime-project 68 | 69 | # sftp configuration file 70 | sftp-config.json 71 | 72 | 73 | ### OSX ### 74 | .DS_Store 75 | .AppleDouble 76 | .LSOverride 77 | 78 | # Icon must end with two \r 79 | Icon 80 | 81 | 82 | # Thumbnails 83 | ._* 84 | 85 | # Files that might appear on external disk 86 | .Spotlight-V100 87 | .Trashes 88 | 89 | # Directories potentially created on remote AFP share 90 | .AppleDB 91 | .AppleDesktop 92 | Network Trash Folder 93 | Temporary Items 94 | .apdisk 95 | 96 | 97 | ### Windows ### 98 | # Windows image file caches 99 | Thumbs.db 100 | ehthumbs.db 101 | 102 | # Folder config file 103 | Desktop.ini 104 | 105 | # Recycle Bin used on file shares 106 | $RECYCLE.BIN/ 107 | 108 | # Windows Installer files 109 | *.cab 110 | *.msi 111 | *.msm 112 | *.msp 113 | 114 | # Windows shortcuts 115 | *.lnk 116 | 117 | 118 | ### Laravel ### 119 | /bootstrap/compiled.php 120 | /storage 121 | .env.*.php 122 | .env.php 123 | .env 124 | 125 | ### Composer ### 126 | composer.phar 127 | vendor/ 128 | 129 | 130 | ### Node ### 131 | # Logs 132 | ./logs 133 | ./*.log 134 | 135 | # Runtime data 136 | pids 137 | *.pid 138 | *.seed 139 | 140 | # Directory for instrumented libs generated by jscoverage/JSCover 141 | lib-cov 142 | 143 | # Coverage directory used by tools like istanbul 144 | coverage 145 | 146 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 147 | .grunt 148 | 149 | # node-waf configuration 150 | .lock-wscript 151 | 152 | # Compiled binary addons (http://nodejs.org/api/addons.html) 153 | build/Release 154 | 155 | # Dependency directory 156 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- 157 | node_modules 158 | 159 | 160 | ### vim ### 161 | [._]*.s[a-w][a-z] 162 | [._]s[a-w][a-z] 163 | *.un~ 164 | Session.vim 165 | .netrwhist 166 | *~ 167 | ======= 168 | ### Composer ### 169 | composer.phar 170 | vendor/ 171 | 172 | ### Docker ### 173 | docker-compose.yml 174 | 175 | ### PHPUnit ### 176 | phpunit.xml 177 | 178 | ### Temp Files ### 179 | ~* 180 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Swagger UI Watcher 2 | 3 | Swagger UI Watcher detects changes in your local Swagger files and reload Swagger UI in your browser to give you fluid workflow. It is primarily developed to work with multiple Swagger files using \$ref. 4 | 5 | ## Why? 6 | 7 | - Using online Swagger Editor is annoying. You have to copy and paste your Swagger files back and forth. 8 | - Relative and local system \$ref do not work with online Swagger Editor v3 9 | - Manually creating bundle from multiple Swagger files after each update is impractical and tiresome. 10 | - Using my editor/ide of choice is awesome. 11 | 12 | ## Installation 13 | 14 | | Version | Swagger Version | 15 | | ------- | --------------- | 16 | | 1.0.10 | 2 | 17 | | >=2.0 | 3 | 18 | 19 | ``` 20 | npm install swagger-ui-watcher -g 21 | ``` 22 | 23 | ## Usage 24 | 25 | For watching the changes in target directory, following command is used 26 | 27 | ``` 28 | swagger-ui-watcher ./main-swagger-file.json 29 | ``` 30 | 31 | ### Additional Options 32 | 33 | | Command line argument | Description | 34 | | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 35 | | -p --port | Default is 8000 | 36 | | -h --host | Defaults to 127.0.0.1 | 37 | | --no-open | Do not open the view page in the default browser | 38 | | -c --config | JSON file containing any of the [Swagger UI options](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md). Example: `{"withCredentials": true}` | 39 | | -b --bundle | Create bundle at the specified location | 40 | | -i --ignore | File or path omitted from watching. Supports globbing | 41 | 42 | For creating the bundled file, provide the optional argument `bundle` 43 | 44 | ``` 45 | swagger-ui-watcher ./main-swagger-file.json --bundle=./bundled.json 46 | ``` 47 | 48 | Click the image to see it in action 49 | 50 | [![Alt text](http://i.imgur.com/UQMAn4U.png)](https://www.youtube.com/embed/ejBS75q3ouo?autoplay=1) 51 | 52 | ## Do What You Want to Public License 53 | 54 | ``` 55 | DO WHAT YOU WANT TO PUBLIC LICENSE 56 | Version 3, January 2012 57 | 58 | Copyright (C) 2012 Ryan Thompson 59 | 60 | Everyone is permitted to copy and distribute verbatim or modified 61 | copies of this license document, and changing it is allowed as long 62 | as the name is changed. 63 | 64 | DO WHAT YOU WANT TO PUBLIC LICENSE 65 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 66 | 67 | 0. You just DO WHAT YOU WANT TO. 68 | ``` 69 | -------------------------------------------------------------------------------- /bin/swagger-ui-watcher.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | 4 | var version = require('../package.json').version 5 | var program = require('commander'); 6 | var fs = require('fs'); 7 | var path = require('path'); 8 | var swaggerFileValue; 9 | var targetDirValue; 10 | var swaggerUIOptions = {}; 11 | var watchIgnore = undefined; 12 | var help = 'Enter "swagger-ui-watcher --help" for more details.'; 13 | 14 | /* 15 | * NOTE: the '--no-open' option will set its inverse counterpart `program.open`; 16 | * this will always be set accordingly, see https://github.com/tj/commander.js#option-parsing. 17 | */ 18 | program 19 | .version(version) 20 | .arguments(' [targetDir]') 21 | .option('-p, --port ', 'Port to be used. Default is 8000') 22 | .option('-h, --host ', 'Host to be used. Default is 127.0.0.1') 23 | .option('-b, --bundle ', 'Create bundle and save it to bundleTo') 24 | .option('--no-open', 'Do not open the view page in the default browser') 25 | .option('-c, --config ', 'Path to json file containing swagger ui options') 26 | .option('-i, --ignore ', 'File or path omitted from watching') 27 | .action(function(swaggerFile, targetDir) { 28 | swaggerFileValue = swaggerFile; 29 | targetDirValue = targetDir; 30 | }) 31 | .parse(process.argv); 32 | 33 | if (typeof swaggerFileValue === 'undefined') { 34 | console.error(` is required.\n${help}`); 35 | process.exit(1); 36 | } 37 | 38 | if (typeof targetDirValue === 'undefined') { 39 | try { 40 | if (!path.isAbsolute(swaggerFileValue)) { 41 | swaggerFileValue = path.resolve(process.cwd(), swaggerFileValue); 42 | } 43 | targetDirValue = path.dirname(swaggerFileValue); 44 | } catch (err) { 45 | console.error(`Failed to resolve path to [targetDir].\n${help}`); 46 | process.exit(1); 47 | } 48 | } 49 | 50 | if (typeof program.port === 'undefined') { 51 | program.port = 8000; 52 | } 53 | 54 | if (typeof program.host === 'undefined') { 55 | program.host = "127.0.0.1"; 56 | } 57 | 58 | if (typeof program.bundle === 'undefined') { 59 | program.bundle = null; 60 | } 61 | 62 | if (program.bundle === swaggerFileValue) { 63 | console.error(" value cannot be same as value."); 64 | process.exit(1); 65 | } 66 | 67 | if (program.ignore) { 68 | watchIgnore = path.resolve(program.ignore); 69 | } 70 | 71 | if (!fs.existsSync(targetDirValue)) { 72 | console.error(targetDirValue + " does not exist."); 73 | process.exit(1); 74 | } 75 | 76 | if (!fs.existsSync(swaggerFileValue)) { 77 | console.error(swaggerFileValue + " does not exist."); 78 | process.exit(1); 79 | } 80 | 81 | if(program.config) { 82 | swaggerUIOptions = JSON.parse(fs.readFileSync(program.config).toString()) 83 | } 84 | 85 | if (program.bundle === null) { 86 | require("../index.js").start( 87 | swaggerFileValue, 88 | targetDirValue, 89 | program.port, 90 | program.host, 91 | program.open, 92 | swaggerUIOptions, 93 | watchIgnore 94 | ); 95 | } else { 96 | require("../index.js").build( 97 | swaggerFileValue, 98 | targetDirValue, 99 | program.bundle 100 | ); 101 | } 102 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Swagger Editor 7 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |
67 | 68 | 69 | 70 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
151 |   
There was an error while processing your files. Please fix the error and save the file.
152 |
153 |
154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var path = require('path'); 4 | var fs = require('fs'); 5 | var open = require('open'); 6 | var nodeModules = path.resolve(path.resolve(__dirname, ''), 'node_modules'); 7 | var swaggerEditorDist = path.dirname(require.resolve('swagger-editor-dist/index.html')); 8 | var express = require('express'); 9 | var app = express(); 10 | var server = require('http').createServer(app); 11 | var io = require('socket.io')(server); 12 | var chokidar = require('chokidar'); 13 | var JsonRefs = require('json-refs'); 14 | var yaml = require('js-yaml'); 15 | 16 | function dictToString(dict) { 17 | var res = []; 18 | for (const [k, v] of Object.entries(dict)) { 19 | res.push(`${k}: ${v}`); 20 | } 21 | return res.join('\n'); 22 | } 23 | 24 | function bundle(swaggerFile) { 25 | var root = yaml.safeLoad(fs.readFileSync(swaggerFile, 'utf8')); 26 | var options = { 27 | filter : ['relative', 'remote'], 28 | resolveCirculars: true, 29 | location: swaggerFile, 30 | loaderOptions : { 31 | processContent : function (res, callback) { 32 | callback(undefined, yaml.safeLoad(res.text)); 33 | } 34 | } 35 | }; 36 | JsonRefs.clearCache(); 37 | return JsonRefs.resolveRefs(root, options).then(function (results) { 38 | var resErrors = {}; 39 | for (const [k,v] of Object.entries(results.refs)) { 40 | if ('missing' in v && v.missing === true && (v.type == 'relative' || v.type === 'remote')) 41 | resErrors[k] = v.error; 42 | } 43 | 44 | if (Object.keys(resErrors).length > 0) { 45 | return Promise.reject(dictToString(resErrors)); 46 | } 47 | 48 | return results.resolved; 49 | }, function (e) { 50 | var error = {}; 51 | Object.getOwnPropertyNames(e).forEach(function (key) { 52 | error[key] = e[key]; 53 | }); 54 | return Promise.reject(dictToString(error)); 55 | }); 56 | } 57 | 58 | function start(swaggerFile, targetDir, port, hostname, openBrowser, swaggerUIOptions, watchIgnore) { 59 | app.get('/', function(req, res) { 60 | res.sendFile(__dirname + "/index.html"); 61 | }); 62 | 63 | app.use(express.static(swaggerEditorDist)); 64 | app.use(function(req, res, next) { 65 | res.header("Access-Control-Allow-Origin", "*"); 66 | res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 67 | next(); 68 | }); 69 | 70 | io.on('connection', function(socket) { 71 | socket.on('swaggerReady', function (data) { 72 | bundle(swaggerFile).then(function (bundled) { 73 | socket.emit('updateSpec', JSON.stringify(bundled)); 74 | }, function (err) { 75 | socket.emit('showError', err); 76 | }); 77 | }); 78 | socket.once('uiReady', function(data) { 79 | socket.emit('swaggerOptions', swaggerUIOptions); 80 | }); 81 | }); 82 | 83 | chokidar.watch(targetDir, {ignored: watchIgnore}).on('change', function(eventType, name) { 84 | bundle(swaggerFile).then(function (bundled) { 85 | console.log("File changed. Sent updated spec to the browser."); 86 | var bundleString = JSON.stringify(bundled, null, 2); 87 | io.sockets.emit('updateSpec', bundleString); 88 | }, function (err) { 89 | io.sockets.emit('showError', err); 90 | }); 91 | }); 92 | 93 | server.listen(port,hostname, function() { 94 | var serverUrl = `http://${hostname}:${port}`; 95 | console.log(`Listening on ${serverUrl}`); 96 | if (openBrowser) open(serverUrl); 97 | }); 98 | } 99 | 100 | function build (swaggerFile, targetDir, bundleTo) { 101 | bundle(swaggerFile).then(function (bundled) { 102 | var bundleString = JSON.stringify(bundled, null, 2); 103 | if (typeof bundleTo === 'string') { 104 | fs.writeFile(bundleTo, bundleString, function(err) { 105 | if (err) { 106 | io.sockets.emit('showError', err); 107 | return; 108 | } 109 | console.log('Saved bundle file at ' + bundleTo); 110 | }); 111 | } 112 | }, function (err) { 113 | io.sockets.emit('showError', err); 114 | }); 115 | } 116 | 117 | module.exports = { 118 | start: start, 119 | build: build 120 | }; 121 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swagger-ui-watcher", 3 | "version": "2.1.14", 4 | "main": "index.js", 5 | "repository": "https://github.com/moon0326/swagger-ui-watcher.git", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "chokidar": "^3.4.0", 13 | "commander": "^5.1.0", 14 | "express": "^4.17.1", 15 | "js-yaml": "^3.14.0", 16 | "json-refs": "^3.0.15", 17 | "open": "^7.0.4", 18 | "path": "^0.12.7", 19 | "socket.io": "^4.5.4", 20 | "swagger-editor-dist": "^3.11.1" 21 | }, 22 | "bin": { 23 | "swagger-ui-watcher": "bin/swagger-ui-watcher.js" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@socket.io/component-emitter@~3.1.0": 6 | version "3.1.0" 7 | resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" 8 | integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== 9 | 10 | "@types/cookie@^0.4.1": 11 | version "0.4.1" 12 | resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" 13 | integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== 14 | 15 | "@types/cors@^2.8.12": 16 | version "2.8.12" 17 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" 18 | integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== 19 | 20 | "@types/node@>=10.0.0": 21 | version "15.0.2" 22 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.2.tgz#51e9c0920d1b45936ea04341aa3e2e58d339fb67" 23 | integrity sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA== 24 | 25 | accepts@~1.3.4: 26 | version "1.3.4" 27 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" 28 | dependencies: 29 | mime-types "~2.1.16" 30 | negotiator "0.6.1" 31 | 32 | accepts@~1.3.7: 33 | version "1.3.7" 34 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 35 | dependencies: 36 | mime-types "~2.1.24" 37 | negotiator "0.6.2" 38 | 39 | anymatch@~3.1.1: 40 | version "3.1.1" 41 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 42 | dependencies: 43 | normalize-path "^3.0.0" 44 | picomatch "^2.0.4" 45 | 46 | argparse@^1.0.7: 47 | version "1.0.9" 48 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 49 | dependencies: 50 | sprintf-js "~1.0.2" 51 | 52 | array-flatten@1.1.1: 53 | version "1.1.1" 54 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 55 | 56 | asynckit@^0.4.0: 57 | version "0.4.0" 58 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 59 | 60 | base64id@2.0.0, base64id@~2.0.0: 61 | version "2.0.0" 62 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 63 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 64 | 65 | binary-extensions@^2.0.0: 66 | version "2.1.0" 67 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" 68 | 69 | body-parser@1.19.0: 70 | version "1.19.0" 71 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 72 | dependencies: 73 | bytes "3.1.0" 74 | content-type "~1.0.4" 75 | debug "2.6.9" 76 | depd "~1.1.2" 77 | http-errors "1.7.2" 78 | iconv-lite "0.4.24" 79 | on-finished "~2.3.0" 80 | qs "6.7.0" 81 | raw-body "2.4.0" 82 | type-is "~1.6.17" 83 | 84 | braces@~3.0.2: 85 | version "3.0.2" 86 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 87 | dependencies: 88 | fill-range "^7.0.1" 89 | 90 | bytes@3.1.0: 91 | version "3.1.0" 92 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 93 | 94 | chokidar@^3.4.0: 95 | version "3.4.1" 96 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" 97 | dependencies: 98 | anymatch "~3.1.1" 99 | braces "~3.0.2" 100 | glob-parent "~5.1.0" 101 | is-binary-path "~2.1.0" 102 | is-glob "~4.0.1" 103 | normalize-path "~3.0.0" 104 | readdirp "~3.4.0" 105 | optionalDependencies: 106 | fsevents "~2.1.2" 107 | 108 | combined-stream@^1.0.5: 109 | version "1.0.5" 110 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 111 | dependencies: 112 | delayed-stream "~1.0.0" 113 | 114 | commander@^5.1.0: 115 | version "5.1.0" 116 | resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" 117 | 118 | commander@~4.1.1: 119 | version "4.1.1" 120 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 121 | 122 | component-emitter@^1.2.0: 123 | version "1.2.1" 124 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 125 | 126 | content-disposition@0.5.3: 127 | version "0.5.3" 128 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 129 | dependencies: 130 | safe-buffer "5.1.2" 131 | 132 | content-type@~1.0.4: 133 | version "1.0.4" 134 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 135 | 136 | cookie-signature@1.0.6: 137 | version "1.0.6" 138 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 139 | 140 | cookie@0.4.0: 141 | version "0.4.0" 142 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 143 | 144 | cookie@~0.4.1: 145 | version "0.4.1" 146 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 147 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 148 | 149 | cookiejar@^2.1.0: 150 | version "2.1.1" 151 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" 152 | 153 | core-util-is@~1.0.0: 154 | version "1.0.2" 155 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 156 | 157 | cors@~2.8.5: 158 | version "2.8.5" 159 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 160 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 161 | dependencies: 162 | object-assign "^4" 163 | vary "^1" 164 | 165 | debug@2.6.9: 166 | version "2.6.9" 167 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 168 | dependencies: 169 | ms "2.0.0" 170 | 171 | debug@^3.1.0: 172 | version "3.1.0" 173 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 174 | dependencies: 175 | ms "2.0.0" 176 | 177 | debug@~4.3.1: 178 | version "4.3.1" 179 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 180 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 181 | dependencies: 182 | ms "2.1.2" 183 | 184 | debug@~4.3.2: 185 | version "4.3.4" 186 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 187 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 188 | dependencies: 189 | ms "2.1.2" 190 | 191 | delayed-stream@~1.0.0: 192 | version "1.0.0" 193 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 194 | 195 | depd@~1.1.2: 196 | version "1.1.2" 197 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 198 | 199 | destroy@~1.0.4: 200 | version "1.0.4" 201 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 202 | 203 | ee-first@1.1.1: 204 | version "1.1.1" 205 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 206 | 207 | encodeurl@~1.0.2: 208 | version "1.0.2" 209 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 210 | 211 | engine.io-parser@~5.0.3: 212 | version "5.0.4" 213 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" 214 | integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== 215 | 216 | engine.io@~6.2.1: 217 | version "6.2.1" 218 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f" 219 | integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA== 220 | dependencies: 221 | "@types/cookie" "^0.4.1" 222 | "@types/cors" "^2.8.12" 223 | "@types/node" ">=10.0.0" 224 | accepts "~1.3.4" 225 | base64id "2.0.0" 226 | cookie "~0.4.1" 227 | cors "~2.8.5" 228 | debug "~4.3.1" 229 | engine.io-parser "~5.0.3" 230 | ws "~8.2.3" 231 | 232 | escape-html@~1.0.3: 233 | version "1.0.3" 234 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 235 | 236 | esprima@^4.0.0: 237 | version "4.0.0" 238 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 239 | 240 | etag@~1.8.1: 241 | version "1.8.1" 242 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 243 | 244 | express@^4.17.1: 245 | version "4.17.1" 246 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 247 | dependencies: 248 | accepts "~1.3.7" 249 | array-flatten "1.1.1" 250 | body-parser "1.19.0" 251 | content-disposition "0.5.3" 252 | content-type "~1.0.4" 253 | cookie "0.4.0" 254 | cookie-signature "1.0.6" 255 | debug "2.6.9" 256 | depd "~1.1.2" 257 | encodeurl "~1.0.2" 258 | escape-html "~1.0.3" 259 | etag "~1.8.1" 260 | finalhandler "~1.1.2" 261 | fresh "0.5.2" 262 | merge-descriptors "1.0.1" 263 | methods "~1.1.2" 264 | on-finished "~2.3.0" 265 | parseurl "~1.3.3" 266 | path-to-regexp "0.1.7" 267 | proxy-addr "~2.0.5" 268 | qs "6.7.0" 269 | range-parser "~1.2.1" 270 | safe-buffer "5.1.2" 271 | send "0.17.1" 272 | serve-static "1.14.1" 273 | setprototypeof "1.1.1" 274 | statuses "~1.5.0" 275 | type-is "~1.6.18" 276 | utils-merge "1.0.1" 277 | vary "~1.1.2" 278 | 279 | extend@^3.0.0: 280 | version "3.0.2" 281 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 282 | 283 | fill-range@^7.0.1: 284 | version "7.0.1" 285 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 286 | dependencies: 287 | to-regex-range "^5.0.1" 288 | 289 | finalhandler@~1.1.2: 290 | version "1.1.2" 291 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 292 | dependencies: 293 | debug "2.6.9" 294 | encodeurl "~1.0.2" 295 | escape-html "~1.0.3" 296 | on-finished "~2.3.0" 297 | parseurl "~1.3.3" 298 | statuses "~1.5.0" 299 | unpipe "~1.0.0" 300 | 301 | form-data@^2.3.1: 302 | version "2.3.1" 303 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" 304 | dependencies: 305 | asynckit "^0.4.0" 306 | combined-stream "^1.0.5" 307 | mime-types "^2.1.12" 308 | 309 | formidable@^1.2.0: 310 | version "1.2.2" 311 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" 312 | 313 | forwarded@~0.1.2: 314 | version "0.1.2" 315 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 316 | 317 | fresh@0.5.2: 318 | version "0.5.2" 319 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 320 | 321 | fsevents@~2.1.2: 322 | version "2.1.3" 323 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 324 | 325 | glob-parent@~5.1.0: 326 | version "5.1.1" 327 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 328 | dependencies: 329 | is-glob "^4.0.1" 330 | 331 | graphlib@^2.1.8: 332 | version "2.1.8" 333 | resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" 334 | dependencies: 335 | lodash "^4.17.15" 336 | 337 | http-errors@1.7.2: 338 | version "1.7.2" 339 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 340 | dependencies: 341 | depd "~1.1.2" 342 | inherits "2.0.3" 343 | setprototypeof "1.1.1" 344 | statuses ">= 1.5.0 < 2" 345 | toidentifier "1.0.0" 346 | 347 | http-errors@~1.7.2: 348 | version "1.7.3" 349 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 350 | dependencies: 351 | depd "~1.1.2" 352 | inherits "2.0.4" 353 | setprototypeof "1.1.1" 354 | statuses ">= 1.5.0 < 2" 355 | toidentifier "1.0.0" 356 | 357 | iconv-lite@0.4.24: 358 | version "0.4.24" 359 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 360 | dependencies: 361 | safer-buffer ">= 2.1.2 < 3" 362 | 363 | inherits@2.0.1: 364 | version "2.0.1" 365 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 366 | 367 | inherits@2.0.3, inherits@~2.0.3: 368 | version "2.0.3" 369 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 370 | 371 | inherits@2.0.4: 372 | version "2.0.4" 373 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 374 | 375 | ipaddr.js@1.9.1: 376 | version "1.9.1" 377 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 378 | 379 | is-binary-path@~2.1.0: 380 | version "2.1.0" 381 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 382 | dependencies: 383 | binary-extensions "^2.0.0" 384 | 385 | is-docker@^2.0.0: 386 | version "2.0.0" 387 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" 388 | 389 | is-extglob@^2.1.1: 390 | version "2.1.1" 391 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 392 | 393 | is-glob@^4.0.1, is-glob@~4.0.1: 394 | version "4.0.1" 395 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 396 | dependencies: 397 | is-extglob "^2.1.1" 398 | 399 | is-number@^7.0.0: 400 | version "7.0.0" 401 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 402 | 403 | is-wsl@^2.1.1: 404 | version "2.2.0" 405 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 406 | dependencies: 407 | is-docker "^2.0.0" 408 | 409 | isarray@~1.0.0: 410 | version "1.0.0" 411 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 412 | 413 | js-yaml@^3.13.1, js-yaml@^3.14.0: 414 | version "3.14.0" 415 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 416 | dependencies: 417 | argparse "^1.0.7" 418 | esprima "^4.0.0" 419 | 420 | json-refs@^3.0.15: 421 | version "3.0.15" 422 | resolved "https://registry.yarnpkg.com/json-refs/-/json-refs-3.0.15.tgz#1089f4acf263a3152c790479485195cd6449e855" 423 | dependencies: 424 | commander "~4.1.1" 425 | graphlib "^2.1.8" 426 | js-yaml "^3.13.1" 427 | lodash "^4.17.15" 428 | native-promise-only "^0.8.1" 429 | path-loader "^1.0.10" 430 | slash "^3.0.0" 431 | uri-js "^4.2.2" 432 | 433 | lodash@^4.17.15: 434 | version "4.17.19" 435 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 436 | 437 | media-typer@0.3.0: 438 | version "0.3.0" 439 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 440 | 441 | merge-descriptors@1.0.1: 442 | version "1.0.1" 443 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 444 | 445 | methods@^1.1.1, methods@~1.1.2: 446 | version "1.1.2" 447 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 448 | 449 | mime-db@1.44.0: 450 | version "1.44.0" 451 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 452 | 453 | mime-db@~1.30.0: 454 | version "1.30.0" 455 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 456 | 457 | mime-types@^2.1.12, mime-types@~2.1.16: 458 | version "2.1.17" 459 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 460 | dependencies: 461 | mime-db "~1.30.0" 462 | 463 | mime-types@~2.1.24: 464 | version "2.1.27" 465 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 466 | dependencies: 467 | mime-db "1.44.0" 468 | 469 | mime@1.6.0: 470 | version "1.6.0" 471 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 472 | 473 | mime@^1.4.1: 474 | version "1.4.1" 475 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 476 | 477 | ms@2.0.0: 478 | version "2.0.0" 479 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 480 | 481 | ms@2.1.1: 482 | version "2.1.1" 483 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 484 | 485 | ms@2.1.2: 486 | version "2.1.2" 487 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 488 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 489 | 490 | native-promise-only@^0.8.1: 491 | version "0.8.1" 492 | resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" 493 | 494 | negotiator@0.6.1: 495 | version "0.6.1" 496 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 497 | 498 | negotiator@0.6.2: 499 | version "0.6.2" 500 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 501 | 502 | normalize-path@^3.0.0, normalize-path@~3.0.0: 503 | version "3.0.0" 504 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 505 | 506 | object-assign@^4: 507 | version "4.1.1" 508 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 509 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 510 | 511 | on-finished@~2.3.0: 512 | version "2.3.0" 513 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 514 | dependencies: 515 | ee-first "1.1.1" 516 | 517 | open@^7.0.4: 518 | version "7.0.4" 519 | resolved "https://registry.yarnpkg.com/open/-/open-7.0.4.tgz#c28a9d315e5c98340bf979fdcb2e58664aa10d83" 520 | dependencies: 521 | is-docker "^2.0.0" 522 | is-wsl "^2.1.1" 523 | 524 | parseurl@~1.3.3: 525 | version "1.3.3" 526 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 527 | 528 | path-loader@^1.0.10: 529 | version "1.0.10" 530 | resolved "https://registry.yarnpkg.com/path-loader/-/path-loader-1.0.10.tgz#dd3d1bd54cb6f2e6423af2ad334a41cc0bce4cf6" 531 | dependencies: 532 | native-promise-only "^0.8.1" 533 | superagent "^3.8.3" 534 | 535 | path-to-regexp@0.1.7: 536 | version "0.1.7" 537 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 538 | 539 | path@^0.12.7: 540 | version "0.12.7" 541 | resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" 542 | dependencies: 543 | process "^0.11.1" 544 | util "^0.10.3" 545 | 546 | picomatch@^2.0.4, picomatch@^2.2.1: 547 | version "2.2.2" 548 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 549 | 550 | process-nextick-args@~2.0.0: 551 | version "2.0.1" 552 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 553 | 554 | process@^0.11.1: 555 | version "0.11.10" 556 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 557 | 558 | proxy-addr@~2.0.5: 559 | version "2.0.6" 560 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" 561 | dependencies: 562 | forwarded "~0.1.2" 563 | ipaddr.js "1.9.1" 564 | 565 | punycode@^2.1.0: 566 | version "2.1.0" 567 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" 568 | 569 | qs@6.7.0: 570 | version "6.7.0" 571 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 572 | 573 | qs@^6.5.1: 574 | version "6.5.1" 575 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 576 | 577 | range-parser@~1.2.1: 578 | version "1.2.1" 579 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 580 | 581 | raw-body@2.4.0: 582 | version "2.4.0" 583 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 584 | dependencies: 585 | bytes "3.1.0" 586 | http-errors "1.7.2" 587 | iconv-lite "0.4.24" 588 | unpipe "1.0.0" 589 | 590 | readable-stream@^2.3.5: 591 | version "2.3.7" 592 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 593 | dependencies: 594 | core-util-is "~1.0.0" 595 | inherits "~2.0.3" 596 | isarray "~1.0.0" 597 | process-nextick-args "~2.0.0" 598 | safe-buffer "~5.1.1" 599 | string_decoder "~1.1.1" 600 | util-deprecate "~1.0.1" 601 | 602 | readdirp@~3.4.0: 603 | version "3.4.0" 604 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" 605 | dependencies: 606 | picomatch "^2.2.1" 607 | 608 | safe-buffer@5.1.2: 609 | version "5.1.2" 610 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 611 | 612 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 613 | version "5.1.1" 614 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 615 | 616 | "safer-buffer@>= 2.1.2 < 3": 617 | version "2.1.2" 618 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 619 | 620 | send@0.17.1: 621 | version "0.17.1" 622 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 623 | dependencies: 624 | debug "2.6.9" 625 | depd "~1.1.2" 626 | destroy "~1.0.4" 627 | encodeurl "~1.0.2" 628 | escape-html "~1.0.3" 629 | etag "~1.8.1" 630 | fresh "0.5.2" 631 | http-errors "~1.7.2" 632 | mime "1.6.0" 633 | ms "2.1.1" 634 | on-finished "~2.3.0" 635 | range-parser "~1.2.1" 636 | statuses "~1.5.0" 637 | 638 | serve-static@1.14.1: 639 | version "1.14.1" 640 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 641 | dependencies: 642 | encodeurl "~1.0.2" 643 | escape-html "~1.0.3" 644 | parseurl "~1.3.3" 645 | send "0.17.1" 646 | 647 | setprototypeof@1.1.1: 648 | version "1.1.1" 649 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 650 | 651 | slash@^3.0.0: 652 | version "3.0.0" 653 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 654 | 655 | socket.io-adapter@~2.4.0: 656 | version "2.4.0" 657 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" 658 | integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== 659 | 660 | socket.io-parser@~4.2.1: 661 | version "4.2.1" 662 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" 663 | integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== 664 | dependencies: 665 | "@socket.io/component-emitter" "~3.1.0" 666 | debug "~4.3.1" 667 | 668 | socket.io@^4.5.4: 669 | version "4.5.4" 670 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90" 671 | integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ== 672 | dependencies: 673 | accepts "~1.3.4" 674 | base64id "~2.0.0" 675 | debug "~4.3.2" 676 | engine.io "~6.2.1" 677 | socket.io-adapter "~2.4.0" 678 | socket.io-parser "~4.2.1" 679 | 680 | sprintf-js@~1.0.2: 681 | version "1.0.3" 682 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 683 | 684 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 685 | version "1.5.0" 686 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 687 | 688 | string_decoder@~1.1.1: 689 | version "1.1.1" 690 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 691 | dependencies: 692 | safe-buffer "~5.1.0" 693 | 694 | superagent@^3.8.3: 695 | version "3.8.3" 696 | resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" 697 | dependencies: 698 | component-emitter "^1.2.0" 699 | cookiejar "^2.1.0" 700 | debug "^3.1.0" 701 | extend "^3.0.0" 702 | form-data "^2.3.1" 703 | formidable "^1.2.0" 704 | methods "^1.1.1" 705 | mime "^1.4.1" 706 | qs "^6.5.1" 707 | readable-stream "^2.3.5" 708 | 709 | swagger-editor-dist@^3.11.1: 710 | version "3.11.5" 711 | resolved "https://registry.yarnpkg.com/swagger-editor-dist/-/swagger-editor-dist-3.11.5.tgz#4f590d50eb65640fea96bdd3286d9781ebbd8132" 712 | 713 | to-regex-range@^5.0.1: 714 | version "5.0.1" 715 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 716 | dependencies: 717 | is-number "^7.0.0" 718 | 719 | toidentifier@1.0.0: 720 | version "1.0.0" 721 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 722 | 723 | type-is@~1.6.17, type-is@~1.6.18: 724 | version "1.6.18" 725 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 726 | dependencies: 727 | media-typer "0.3.0" 728 | mime-types "~2.1.24" 729 | 730 | unpipe@1.0.0, unpipe@~1.0.0: 731 | version "1.0.0" 732 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 733 | 734 | uri-js@^4.2.2: 735 | version "4.2.2" 736 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 737 | dependencies: 738 | punycode "^2.1.0" 739 | 740 | util-deprecate@~1.0.1: 741 | version "1.0.2" 742 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 743 | 744 | util@^0.10.3: 745 | version "0.10.3" 746 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 747 | dependencies: 748 | inherits "2.0.1" 749 | 750 | utils-merge@1.0.1: 751 | version "1.0.1" 752 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 753 | 754 | vary@^1, vary@~1.1.2: 755 | version "1.1.2" 756 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 757 | 758 | ws@~8.2.3: 759 | version "8.2.3" 760 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" 761 | integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== 762 | --------------------------------------------------------------------------------