├── .nvmrc ├── workers-site ├── .gitignore ├── package.json ├── index.js └── package-lock.json ├── assets └── screenshot.png ├── wrangler.toml ├── demo ├── product.json └── index.html ├── tsconfig.json ├── .github └── workflows │ └── deploy.yml ├── workbench.ts ├── LICENSE ├── package.json ├── azure-pipelines.yml ├── README.md ├── prepare-demo.js ├── .gitignore └── yarn.lock /.nvmrc: -------------------------------------------------------------------------------- 1 | v12.19.0 2 | -------------------------------------------------------------------------------- /workers-site/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | worker 3 | -------------------------------------------------------------------------------- /assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glenstack/vscode-workers/HEAD/assets/screenshot.png -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "vscode" 2 | type = "webpack" 3 | account_id = "41d154df19739a540756d193a9715370" 4 | workers_dev = true 5 | 6 | [site] 7 | bucket = "./demo" 8 | entry-point = "workers-site" 9 | -------------------------------------------------------------------------------- /demo/product.json: -------------------------------------------------------------------------------- 1 | { 2 | "productConfiguration": { 3 | "nameShort": "VSCode Workers", 4 | "nameLong": "VSCode on Cloudflare Workers", 5 | "applicationName": "vscode-workers", 6 | "dataFolderName": ".vscode-workers", 7 | "version": "1.2.3" 8 | }, 9 | "folderUri": { 10 | "scheme": "memfs", 11 | "path": "/sample-folder" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /workers-site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "worker", 4 | "version": "1.0.0", 5 | "description": "A template for kick starting a Cloudflare Workers project", 6 | "main": "index.js", 7 | "author": "Ashley Lewis ", 8 | "license": "MIT", 9 | "dependencies": { 10 | "@cloudflare/kv-asset-handler": "~0.0.11" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "amd", 4 | "moduleResolution": "node", 5 | "experimentalDecorators": true, 6 | "noImplicitReturns": true, 7 | "noUnusedLocals": true, 8 | "allowUnreachableCode": false, 9 | "strict": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "baseUrl": ".", 12 | "paths": { 13 | "vs/*": [ 14 | "./vscode/src/vs/*" 15 | ] 16 | }, 17 | "lib": [ 18 | "ES2015" 19 | ] 20 | }, 21 | "include": ["workbench.ts"] 22 | } -------------------------------------------------------------------------------- /workers-site/index.js: -------------------------------------------------------------------------------- 1 | import { getAssetFromKV } from "@cloudflare/kv-asset-handler"; 2 | 3 | addEventListener("fetch", (event) => { 4 | try { 5 | event.respondWith(handleEvent(event)); 6 | } catch (e) { 7 | event.respondWith(new Response("Internal Error", { status: 500 })); 8 | } 9 | }); 10 | 11 | async function handleEvent(event) { 12 | try { 13 | const response = await getAssetFromKV(event); 14 | response.headers.set("access-control-allow-origin", "*"); 15 | return response; 16 | } catch (e) { 17 | return new Response(null, { 18 | status: 404, 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | on: 3 | push: 4 | branches: 5 | - main 6 | 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | name: Deploy 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v2 14 | - name: Read .nvmrc 15 | run: echo "##[set-output name=NVMRC;]$(cat .nvmrc)" 16 | id: nvm 17 | - name: Setup Node 18 | uses: actions/setup-node@v1 19 | with: 20 | node-version: ${{ steps.nvm.outputs.NVMRC }} 21 | - name: Install 22 | run: yarn 23 | - name: Build 24 | run: yarn build 25 | - name: Prepare Demo 26 | run: yarn prepare-demo 27 | - name: Deploy 28 | run: yarn deploy 29 | env: 30 | CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} 31 | -------------------------------------------------------------------------------- /workbench.ts: -------------------------------------------------------------------------------- 1 | import { create, IWorkbenchConstructionOptions, IWorkspaceProvider } from 'vs/workbench/workbench.web.api'; 2 | import { URI, UriComponents} from 'vs/base/common/uri'; 3 | 4 | (async function () { 5 | // create workbench 6 | const result = await fetch('product.json'); 7 | let config: IWorkbenchConstructionOptions & { folderUri?: UriComponents, workspaceUri?: UriComponents } = await result.json(); 8 | 9 | 10 | if (Array.isArray(config.staticExtensions)) { 11 | config.staticExtensions.forEach(extension => { 12 | extension.extensionLocation = URI.revive(extension.extensionLocation); 13 | }); 14 | } 15 | 16 | let workspace; 17 | if (config.folderUri) { 18 | workspace = { folderUri: URI.revive(config.folderUri) }; 19 | } else if (config.workspaceUri) { 20 | workspace = { workspaceUri: URI.revive(config.workspaceUri) }; 21 | } else { 22 | workspace = undefined; 23 | } 24 | 25 | if(workspace){ 26 | const workspaceProvider: IWorkspaceProvider = { workspace, open: async () => {} } 27 | config = { ...config, workspaceProvider }; 28 | } 29 | 30 | create(document.body, config); 31 | })(); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Glenstack 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vscode-workers", 3 | "version": "1.50.1", 4 | "description": "Visual Studio Code running on Cloudflare Workers", 5 | "files": [ 6 | "dist/*" 7 | ], 8 | "scripts": { 9 | "build": "node build.js", 10 | "prepare-demo": "node prepare-demo.js", 11 | "demo": "http-server ./demo --cors", 12 | "deploy": "npx wrangler publish" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "https://github.com/glenstack/vscode-workers" 17 | }, 18 | "author": { 19 | "name": "Greg Brimble", 20 | "email": "greg@glenstack.com", 21 | "url": "https://glenstack.com/" 22 | }, 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/glenstack/vscode-workers/issues" 26 | }, 27 | "homepage": "https://vscode.glenstack.workers.dev/", 28 | "devDependencies": { 29 | "@cloudflare/wrangler": "^1.11.0", 30 | "fs-extra": "^9.0.1", 31 | "glob": "^7.1.6", 32 | "http-server": "^0.12.3", 33 | "minify": "^6.0.1", 34 | "prettier": "^2.1.2", 35 | "rimraf": "^3.0.2", 36 | "semver-umd": "^5.5.7", 37 | "vscode-oniguruma": "^1.4.0", 38 | "vscode-textmate": "^5.2.0" 39 | }, 40 | "dependencies": {} 41 | } 42 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # Node.js 2 | # Build a general Node.js project with npm. 3 | # Add steps that analyze code, save build artifacts, deploy, and more: 4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript 5 | 6 | trigger: 7 | - master 8 | 9 | pool: 10 | vmImage: 'ubuntu-latest' 11 | 12 | steps: 13 | - task: NodeTool@0 14 | inputs: 15 | versionSpec: '10.x' 16 | displayName: 'Install Node.js' 17 | 18 | - task: UsePythonVersion@0 19 | inputs: 20 | versionSpec: '2.x' 21 | addToPath: true 22 | architecture: 'x64' 23 | 24 | - script: | 25 | sudo apt-get install pkg-config g++ libx11-dev libxkbfile-dev libsecret-1-dev 26 | yarn 27 | yarn build 28 | displayName: 'npm install and build' 29 | 30 | - task: Npm@1 31 | displayName: 'Publish' 32 | inputs: 33 | command: 'publish' 34 | publishEndpoint: 'NPM' 35 | 36 | # - task: GitHubRelease@1 37 | # inputs: 38 | # gitHubConnection: 'Github' 39 | # repositoryName: '$(Build.Repository.Name)' 40 | # action: 'create' 41 | # target: '$(Build.SourceVersion)' 42 | # tagSource: 'gitTag' 43 | # tagPattern: '$(Build.SourceVersion)' 44 | # title: '$(Build.SourceVersion)' 45 | # releaseNotesSource: 'inline' 46 | # assets: 'dist/*' 47 | # isDraft: true 48 | # addChangeLog: false -------------------------------------------------------------------------------- /workers-site/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "worker", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@cloudflare/kv-asset-handler": { 8 | "version": "0.0.11", 9 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.0.11.tgz", 10 | "integrity": "sha512-D2kGr8NF2Er//Mx0c4+8FtOHuLrnwOlpC48TbtyxRSegG/Js15OKoqxxlG9BMUj3V/YSqtN8bUU6pjaRlsoSqg==", 11 | "requires": { 12 | "@cloudflare/workers-types": "^2.0.0", 13 | "@types/mime": "^2.0.2", 14 | "mime": "^2.4.6" 15 | } 16 | }, 17 | "@cloudflare/workers-types": { 18 | "version": "2.0.0", 19 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-2.0.0.tgz", 20 | "integrity": "sha512-SFUPQzR5aV2TBLP4Re+xNX5KfAGArcRGA44OLulBDnfblEf3J+6kFvdJAQwFhFpqru3wImwT1cX0wahk6EeWTw==" 21 | }, 22 | "@types/mime": { 23 | "version": "2.0.2", 24 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz", 25 | "integrity": "sha512-4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==" 26 | }, 27 | "mime": { 28 | "version": "2.4.6", 29 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", 30 | "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VSCode Workers 2 | 3 | A fork of [@Felx-B](https://github.com/Felx-B)'s excellent [build pipeline](https://github.com/Felx-B/vscode-web) for creating a web-ready compilation of [Visual Studio Code](https://github.com/microsoft/vscode), similar to the [Visual Studio Code for Web Playground](https://vscode-web-test-playground.azurewebsites.net/). 4 | 5 | [![Screenshot of Visual Studio Code running on Cloudflare Workers](./assets/screenshot.png)](https://vscode.glenstack.workers.dev/) 6 | 7 | This version does a couple of minor manipulations to the compiled files, and deploys everything to [Cloudflare Workers](https://workers.cloudflare.com/). 8 | 9 | ## Getting Started 10 | 11 | This project is deployed at [https://vscode.glenstack.workers.dev/](https://vscode.glenstack.workers.dev/). Although currently quite useless (the files are simply stored in memory), we have plans to create or adapt extensions to allow editing of [files on GitHub](https://github.com/glenstack/vscode-workers/issues/1) and/or of [local files using the new File System Access API](https://github.com/glenstack/vscode-workers/issues/2). 12 | 13 | Any other suggestions are welcome. 14 | 15 | ## Building from source 16 | 17 | To build from source, you need the same [prerequisites as VSCode](https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites). 18 | 19 | 1. `git clone git@github.com:glenstack/vscode-workers.git` 20 | 21 | 1. `cd vscode-workers` 22 | 23 | 1. `yarn` 24 | 25 | 1. `yarn build` 26 | 27 | 1. `yarn prepare-build` 28 | 29 | 1. `yarn demo` 30 | -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VSCode Workers 6 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /prepare-demo.js: -------------------------------------------------------------------------------- 1 | var fs = require("fs"); 2 | const fse = require("fs-extra"); 3 | const child_process = require("child_process"); 4 | const rimraf = require("rimraf"); 5 | const minify = require("minify"); 6 | 7 | if (fs.existsSync("./demo/dist")) { 8 | fs.rmdirSync("./demo/dist", { recursive: true }); 9 | } 10 | 11 | if (fs.existsSync("./demo/lib")) { 12 | fs.rmdirSync("./demo/lib", { recursive: true }); 13 | } 14 | 15 | fse.copySync("./dist", "./demo/dist"); 16 | fse.copySync("./node_modules/semver-umd", "./demo/lib/semver-umd"); 17 | fse.copySync("./node_modules/vscode-oniguruma", "./demo/lib/vscode-oniguruma"); 18 | fse.copySync("./node_modules/vscode-textmate", "./demo/lib/vscode-textmate"); 19 | 20 | if (fs.existsSync("./demo/dist/extensions/vscode-web-playground")) { 21 | fs.rmdirSync("./demo/dist/extensions/vscode-web-playground", { 22 | recursive: true, 23 | }); 24 | } 25 | child_process.execSync( 26 | "git clone https://github.com/microsoft/vscode-web-playground.git demo/dist/extensions/vscode-web-playground", 27 | { stdio: "inherit" } 28 | ); 29 | process.chdir("demo/dist/extensions/vscode-web-playground"); 30 | child_process.execSync("yarn", { stdio: "inherit" }); 31 | child_process.execSync("yarn compile", { stdio: "inherit" }); 32 | 33 | process.chdir("../../../.."); 34 | 35 | // if (fs.existsSync("./demo/dist/extensions.js")) { 36 | // fs.unlinkSync("./demo/dist/extensions.js"); 37 | // } 38 | 39 | const packageJSON = fs.readFileSync( 40 | "./demo/dist/extensions/vscode-web-playground/package.json" 41 | ); 42 | const extensions = [ 43 | { 44 | packageJSON: JSON.parse(packageJSON), 45 | extensionPath: "vscode-web-playground", 46 | }, 47 | ]; 48 | 49 | const content = `var playground=${JSON.stringify(extensions)}`; 50 | 51 | fs.writeFileSync("./demo/playground.js", content); 52 | 53 | rimraf.sync("./demo/dist/extensions/**/*.js.map"); 54 | 55 | const largeFiles = [ 56 | "./demo/dist/extensions/html-language-features/server/dist/browser/htmlServerMain.js", 57 | ]; 58 | 59 | largeFiles.map((largeFile) => { 60 | minify(largeFile) 61 | .then((content) => fs.writeFileSync(largeFile, content)) 62 | .catch(console.error); 63 | }); 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | vscode 107 | dist 108 | demo/lib 109 | demo/playground.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cloudflare/wrangler@^1.11.0": 6 | version "1.11.0" 7 | resolved "https://registry.yarnpkg.com/@cloudflare/wrangler/-/wrangler-1.11.0.tgz#a7c1fcb5d2f0c4949d88fd0edd3166c9a3bed658" 8 | integrity sha512-FMF2Dslv2yCVc1W3zkNQaplfK0cUfE5sIL8wRT39A1yrm9pJpib99An8SMl03uar/Db9TuEFEsKqkFLuxw528w== 9 | dependencies: 10 | binary-install "0.0.1" 11 | 12 | async@^2.6.2: 13 | version "2.6.3" 14 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" 15 | integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== 16 | dependencies: 17 | lodash "^4.17.14" 18 | 19 | at-least-node@^1.0.0: 20 | version "1.0.0" 21 | resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 22 | integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 23 | 24 | axios@^0.19.0: 25 | version "0.19.2" 26 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" 27 | integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== 28 | dependencies: 29 | follow-redirects "1.5.10" 30 | 31 | balanced-match@^1.0.0: 32 | version "1.0.0" 33 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 34 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 35 | 36 | basic-auth@^1.0.3: 37 | version "1.1.0" 38 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" 39 | integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= 40 | 41 | binary-install@0.0.1: 42 | version "0.0.1" 43 | resolved "https://registry.yarnpkg.com/binary-install/-/binary-install-0.0.1.tgz#bcb08ff8f5adcf9e4b4cb33af89b530f5ae6649b" 44 | integrity sha512-axr6lqB4ec/pkEOb/JMnZpfcroWv1zT48pVz1oQHG7XmGkS77vmdxmP1btuH79lWQdy9e2MVw/uW0D8siopkRg== 45 | dependencies: 46 | axios "^0.19.0" 47 | env-paths "^2.2.0" 48 | mkdirp "^0.5.1" 49 | rimraf "^3.0.0" 50 | tar "^5.0.5" 51 | universal-url "^2.0.0" 52 | 53 | brace-expansion@^1.1.7: 54 | version "1.1.11" 55 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 56 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 57 | dependencies: 58 | balanced-match "^1.0.0" 59 | concat-map "0.0.1" 60 | 61 | buffer-from@^1.0.0: 62 | version "1.1.1" 63 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 64 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 65 | 66 | camel-case@^4.1.1: 67 | version "4.1.1" 68 | resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" 69 | integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== 70 | dependencies: 71 | pascal-case "^3.1.1" 72 | tslib "^1.10.0" 73 | 74 | chownr@^1.1.3: 75 | version "1.1.4" 76 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 77 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 78 | 79 | clean-css@^4.1.6, clean-css@^4.2.3: 80 | version "4.2.3" 81 | resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" 82 | integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== 83 | dependencies: 84 | source-map "~0.6.0" 85 | 86 | colors@^1.4.0: 87 | version "1.4.0" 88 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" 89 | integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== 90 | 91 | commander@^2.20.0: 92 | version "2.20.3" 93 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 94 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 95 | 96 | commander@^4.1.1: 97 | version "4.1.1" 98 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 99 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 100 | 101 | concat-map@0.0.1: 102 | version "0.0.1" 103 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 104 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 105 | 106 | corser@^2.0.1: 107 | version "2.0.1" 108 | resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" 109 | integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= 110 | 111 | css-b64-images@~0.2.5: 112 | version "0.2.5" 113 | resolved "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz#42005d83204b2b4a5d93b6b1a5644133b5927a02" 114 | integrity sha1-QgBdgyBLK0pdk7axpWRBM7WSegI= 115 | 116 | debug@=3.1.0: 117 | version "3.1.0" 118 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 119 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 120 | dependencies: 121 | ms "2.0.0" 122 | 123 | debug@^3.1.1: 124 | version "3.2.6" 125 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 126 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 127 | dependencies: 128 | ms "^2.1.1" 129 | 130 | debug@^4.1.0: 131 | version "4.2.0" 132 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" 133 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== 134 | dependencies: 135 | ms "2.1.2" 136 | 137 | dot-case@^3.0.3: 138 | version "3.0.3" 139 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" 140 | integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== 141 | dependencies: 142 | no-case "^3.0.3" 143 | tslib "^1.10.0" 144 | 145 | ecstatic@^3.3.2: 146 | version "3.3.2" 147 | resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" 148 | integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== 149 | dependencies: 150 | he "^1.1.1" 151 | mime "^1.6.0" 152 | minimist "^1.1.0" 153 | url-join "^2.0.5" 154 | 155 | env-paths@^2.2.0: 156 | version "2.2.0" 157 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" 158 | integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== 159 | 160 | eventemitter3@^4.0.0: 161 | version "4.0.7" 162 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 163 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 164 | 165 | follow-redirects@1.5.10: 166 | version "1.5.10" 167 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" 168 | integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== 169 | dependencies: 170 | debug "=3.1.0" 171 | 172 | follow-redirects@^1.0.0: 173 | version "1.13.0" 174 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" 175 | integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== 176 | 177 | fs-extra@^9.0.1: 178 | version "9.0.1" 179 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" 180 | integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== 181 | dependencies: 182 | at-least-node "^1.0.0" 183 | graceful-fs "^4.2.0" 184 | jsonfile "^6.0.1" 185 | universalify "^1.0.0" 186 | 187 | fs-minipass@^2.0.0: 188 | version "2.1.0" 189 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" 190 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 191 | dependencies: 192 | minipass "^3.0.0" 193 | 194 | fs.realpath@^1.0.0: 195 | version "1.0.0" 196 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 197 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 198 | 199 | glob@^7.1.3, glob@^7.1.6: 200 | version "7.1.6" 201 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 202 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 203 | dependencies: 204 | fs.realpath "^1.0.0" 205 | inflight "^1.0.4" 206 | inherits "2" 207 | minimatch "^3.0.4" 208 | once "^1.3.0" 209 | path-is-absolute "^1.0.0" 210 | 211 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 212 | version "4.2.4" 213 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 214 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 215 | 216 | hasurl@^1.0.0: 217 | version "1.0.0" 218 | resolved "https://registry.yarnpkg.com/hasurl/-/hasurl-1.0.0.tgz#e4c619097ae1e8fc906bee904ce47e94f5e1ea37" 219 | integrity sha512-43ypUd3DbwyCT01UYpA99AEZxZ4aKtRxWGBHEIbjcOsUghd9YUON0C+JF6isNjaiwC/UF5neaUudy6JS9jZPZQ== 220 | 221 | he@^1.1.1, he@^1.2.0: 222 | version "1.2.0" 223 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 224 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 225 | 226 | html-minifier-terser@^5.1.1: 227 | version "5.1.1" 228 | resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" 229 | integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== 230 | dependencies: 231 | camel-case "^4.1.1" 232 | clean-css "^4.2.3" 233 | commander "^4.1.1" 234 | he "^1.2.0" 235 | param-case "^3.0.3" 236 | relateurl "^0.2.7" 237 | terser "^4.6.3" 238 | 239 | http-proxy@^1.18.0: 240 | version "1.18.1" 241 | resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" 242 | integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== 243 | dependencies: 244 | eventemitter3 "^4.0.0" 245 | follow-redirects "^1.0.0" 246 | requires-port "^1.0.0" 247 | 248 | http-server@^0.12.3: 249 | version "0.12.3" 250 | resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" 251 | integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== 252 | dependencies: 253 | basic-auth "^1.0.3" 254 | colors "^1.4.0" 255 | corser "^2.0.1" 256 | ecstatic "^3.3.2" 257 | http-proxy "^1.18.0" 258 | minimist "^1.2.5" 259 | opener "^1.5.1" 260 | portfinder "^1.0.25" 261 | secure-compare "3.0.1" 262 | union "~0.5.0" 263 | 264 | inflight@^1.0.4: 265 | version "1.0.6" 266 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 267 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 268 | dependencies: 269 | once "^1.3.0" 270 | wrappy "1" 271 | 272 | inherits@2: 273 | version "2.0.4" 274 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 275 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 276 | 277 | jsonfile@^6.0.1: 278 | version "6.0.1" 279 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" 280 | integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== 281 | dependencies: 282 | universalify "^1.0.0" 283 | optionalDependencies: 284 | graceful-fs "^4.1.6" 285 | 286 | lodash.sortby@^4.7.0: 287 | version "4.7.0" 288 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 289 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 290 | 291 | lodash@^4.17.14: 292 | version "4.17.20" 293 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 294 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 295 | 296 | lower-case@^2.0.1: 297 | version "2.0.1" 298 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" 299 | integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== 300 | dependencies: 301 | tslib "^1.10.0" 302 | 303 | mime@^1.6.0: 304 | version "1.6.0" 305 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 306 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 307 | 308 | minify@^6.0.1: 309 | version "6.0.1" 310 | resolved "https://registry.yarnpkg.com/minify/-/minify-6.0.1.tgz#d53413fc2e67b47642269087bc912da60ab6492e" 311 | integrity sha512-JMG5VruvghXZ1VnPCffnpESUzrhNPTT/uNogew9CmPdd3zmohSEt8/HhPxpR7CiXnBYWExW2gGoagZxTy9rnLg== 312 | dependencies: 313 | clean-css "^4.1.6" 314 | css-b64-images "~0.2.5" 315 | debug "^4.1.0" 316 | html-minifier-terser "^5.1.1" 317 | terser "^5.3.2" 318 | try-to-catch "^3.0.0" 319 | 320 | minimatch@^3.0.4: 321 | version "3.0.4" 322 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 323 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 324 | dependencies: 325 | brace-expansion "^1.1.7" 326 | 327 | minimist@^1.1.0, minimist@^1.2.5: 328 | version "1.2.5" 329 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 330 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 331 | 332 | minipass@^3.0.0: 333 | version "3.1.3" 334 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" 335 | integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== 336 | dependencies: 337 | yallist "^4.0.0" 338 | 339 | minizlib@^2.1.0: 340 | version "2.1.2" 341 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" 342 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 343 | dependencies: 344 | minipass "^3.0.0" 345 | yallist "^4.0.0" 346 | 347 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5: 348 | version "0.5.5" 349 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 350 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 351 | dependencies: 352 | minimist "^1.2.5" 353 | 354 | ms@2.0.0: 355 | version "2.0.0" 356 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 357 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 358 | 359 | ms@2.1.2, ms@^2.1.1: 360 | version "2.1.2" 361 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 362 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 363 | 364 | no-case@^3.0.3: 365 | version "3.0.3" 366 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" 367 | integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== 368 | dependencies: 369 | lower-case "^2.0.1" 370 | tslib "^1.10.0" 371 | 372 | once@^1.3.0: 373 | version "1.4.0" 374 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 375 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 376 | dependencies: 377 | wrappy "1" 378 | 379 | opener@^1.5.1: 380 | version "1.5.2" 381 | resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" 382 | integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== 383 | 384 | param-case@^3.0.3: 385 | version "3.0.3" 386 | resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" 387 | integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== 388 | dependencies: 389 | dot-case "^3.0.3" 390 | tslib "^1.10.0" 391 | 392 | pascal-case@^3.1.1: 393 | version "3.1.1" 394 | resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" 395 | integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== 396 | dependencies: 397 | no-case "^3.0.3" 398 | tslib "^1.10.0" 399 | 400 | path-is-absolute@^1.0.0: 401 | version "1.0.1" 402 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 403 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 404 | 405 | portfinder@^1.0.25: 406 | version "1.0.28" 407 | resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" 408 | integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== 409 | dependencies: 410 | async "^2.6.2" 411 | debug "^3.1.1" 412 | mkdirp "^0.5.5" 413 | 414 | prettier@^2.1.2: 415 | version "2.1.2" 416 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" 417 | integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== 418 | 419 | punycode@^2.1.0: 420 | version "2.1.1" 421 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 422 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 423 | 424 | qs@^6.4.0: 425 | version "6.9.4" 426 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" 427 | integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== 428 | 429 | relateurl@^0.2.7: 430 | version "0.2.7" 431 | resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" 432 | integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= 433 | 434 | requires-port@^1.0.0: 435 | version "1.0.0" 436 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 437 | integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= 438 | 439 | rimraf@^3.0.0, rimraf@^3.0.2: 440 | version "3.0.2" 441 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 442 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 443 | dependencies: 444 | glob "^7.1.3" 445 | 446 | secure-compare@3.0.1: 447 | version "3.0.1" 448 | resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" 449 | integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= 450 | 451 | semver-umd@^5.5.7: 452 | version "5.5.7" 453 | resolved "https://registry.yarnpkg.com/semver-umd/-/semver-umd-5.5.7.tgz#966beb5e96c7da6fbf09c3da14c2872d6836c528" 454 | integrity sha512-XgjPNlD0J6aIc8xoTN6GQGwWc2Xg0kq8NzrqMVuKG/4Arl6ab1F8+Am5Y/XKKCR+FceFr2yN/Uv5ZJBhRyRqKg== 455 | 456 | source-map-support@~0.5.12, source-map-support@~0.5.19: 457 | version "0.5.19" 458 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 459 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 460 | dependencies: 461 | buffer-from "^1.0.0" 462 | source-map "^0.6.0" 463 | 464 | source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: 465 | version "0.6.1" 466 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 467 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 468 | 469 | source-map@~0.7.2: 470 | version "0.7.3" 471 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 472 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 473 | 474 | tar@^5.0.5: 475 | version "5.0.5" 476 | resolved "https://registry.yarnpkg.com/tar/-/tar-5.0.5.tgz#03fcdb7105bc8ea3ce6c86642b9c942495b04f93" 477 | integrity sha512-MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ== 478 | dependencies: 479 | chownr "^1.1.3" 480 | fs-minipass "^2.0.0" 481 | minipass "^3.0.0" 482 | minizlib "^2.1.0" 483 | mkdirp "^0.5.0" 484 | yallist "^4.0.0" 485 | 486 | terser@^4.6.3: 487 | version "4.8.0" 488 | resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" 489 | integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== 490 | dependencies: 491 | commander "^2.20.0" 492 | source-map "~0.6.1" 493 | source-map-support "~0.5.12" 494 | 495 | terser@^5.3.2: 496 | version "5.3.8" 497 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" 498 | integrity sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ== 499 | dependencies: 500 | commander "^2.20.0" 501 | source-map "~0.7.2" 502 | source-map-support "~0.5.19" 503 | 504 | tr46@^1.0.1: 505 | version "1.0.1" 506 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 507 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= 508 | dependencies: 509 | punycode "^2.1.0" 510 | 511 | try-to-catch@^3.0.0: 512 | version "3.0.0" 513 | resolved "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-3.0.0.tgz#a1903b44d13d5124c54d14a461d22ec1f52ea14b" 514 | integrity sha512-eIm6ZXwR35jVF8By/HdbbkcaCDTBI5PpCPkejRKrYp0jyf/DbCCcRhHD7/O9jtFI3ewsqo9WctFEiJTS6i+CQA== 515 | 516 | tslib@^1.10.0: 517 | version "1.14.1" 518 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 519 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 520 | 521 | union@~0.5.0: 522 | version "0.5.0" 523 | resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" 524 | integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== 525 | dependencies: 526 | qs "^6.4.0" 527 | 528 | universal-url@^2.0.0: 529 | version "2.0.0" 530 | resolved "https://registry.yarnpkg.com/universal-url/-/universal-url-2.0.0.tgz#35e7fc2c3374804905cee67ea289ed3a47669809" 531 | integrity sha512-3DLtXdm/G1LQMCnPj+Aw7uDoleQttNHp2g5FnNQKR6cP6taNWS1b/Ehjjx4PVyvejKi3TJyu8iBraKM4q3JQPg== 532 | dependencies: 533 | hasurl "^1.0.0" 534 | whatwg-url "^7.0.0" 535 | 536 | universalify@^1.0.0: 537 | version "1.0.0" 538 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" 539 | integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== 540 | 541 | url-join@^2.0.5: 542 | version "2.0.5" 543 | resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" 544 | integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= 545 | 546 | vscode-oniguruma@^1.4.0: 547 | version "1.4.0" 548 | resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.4.0.tgz#3795fd1ef9633a4a33f208bce92c008e64a6fc8f" 549 | integrity sha512-VvTl/jIAADEqWWpEYRsOI1sXiYOTDA8KYNgK60+Mb3T+an9zPz3Cqc6RVJeYgOx/P5G+4M4jygB3X5xLLfYD0g== 550 | 551 | vscode-textmate@^5.2.0: 552 | version "5.2.0" 553 | resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" 554 | integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== 555 | 556 | webidl-conversions@^4.0.2: 557 | version "4.0.2" 558 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 559 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 560 | 561 | whatwg-url@^7.0.0: 562 | version "7.1.0" 563 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" 564 | integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== 565 | dependencies: 566 | lodash.sortby "^4.7.0" 567 | tr46 "^1.0.1" 568 | webidl-conversions "^4.0.2" 569 | 570 | wrappy@1: 571 | version "1.0.2" 572 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 573 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 574 | 575 | yallist@^4.0.0: 576 | version "4.0.0" 577 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 578 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 579 | --------------------------------------------------------------------------------