├── .github ├── README.md └── workflows │ ├── build.yml │ └── fmt.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── LICENSE ├── esbuild.js ├── package.json ├── public ├── logo.png ├── logo192.png ├── logo512.png ├── manifest.json └── popup.html ├── src ├── Popup │ └── App.tsx ├── background.ts ├── content.ts ├── injected.ts └── popup.tsx ├── tsconfig.json └── yarn.lock /.github/README.md: -------------------------------------------------------------------------------- 1 | # esbuild-react-chrome-extension 2 | 3 | This is a boilerplate for chrome extensions writted in React and bundled with esbuild. 4 | 5 | ## Build 6 | 7 | ```sh 8 | yarn build 9 | ``` 10 | 11 | ## Scripts 12 | 13 | All scripts are bundled into the `public/build` folder. 14 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build extension 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | name: Build extension 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | 13 | - uses: actions/setup-node@v1 14 | with: 15 | node-version: "14" 16 | 17 | - name: Install yarn 18 | run: npm i -g yarn 19 | 20 | - name: Install dependencies 21 | run: yarn 22 | 23 | - name: Build extension scripts 24 | run: yarn build 25 | -------------------------------------------------------------------------------- /.github/workflows/fmt.yml: -------------------------------------------------------------------------------- 1 | name: fmt 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | fmt: 7 | name: Check code formatting 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - uses: actions/setup-node@v1 13 | 14 | - name: Install yarn 15 | run: npm i -g yarn 16 | 17 | - name: Install dependencies 18 | run: yarn 19 | 20 | - name: Check fmt 21 | run: yarn fmt:check 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /build 3 | /.vscode 4 | .eslintcache 5 | *.env 6 | *.local 7 | *.log 8 | /public/build -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | public/build -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "none" 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Marton Lederer 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. -------------------------------------------------------------------------------- /esbuild.js: -------------------------------------------------------------------------------- 1 | const esbuild = require("esbuild"); 2 | 3 | esbuild 4 | .build({ 5 | entryPoints: [ 6 | "./src/background.ts", 7 | "./src/content.ts", 8 | "./src/popup.tsx", 9 | "./src/injected.ts" 10 | ], 11 | bundle: true, 12 | minify: true, 13 | sourcemap: process.env.NODE_ENV !== "production", 14 | target: ["chrome58", "firefox57"], 15 | outdir: "./public/build", 16 | define: { 17 | "process.env.NODE_ENV": `"${process.env.NODE_ENV}"` 18 | } 19 | }) 20 | .catch(() => process.exit(1)); 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "build": "NODE_ENV=\"production\" node esbuild.js", 4 | "fmt": "prettier --write .", 5 | "fmt:check": "prettier --check ." 6 | }, 7 | "gitHooks": { 8 | "pre-commit": "prettier --write . && git add -A" 9 | }, 10 | "dependencies": {}, 11 | "devDependencies": { 12 | "@babel/core": "^7.12.13", 13 | "@types/chrome": "^0.0.129", 14 | "@types/react": "^17.0.1", 15 | "@types/react-dom": "^17.0.0", 16 | "esbuild": "^0.8.46", 17 | "prettier": "^2.2.1", 18 | "react": "^17.0.1", 19 | "react-dom": "^17.0.1", 20 | "typescript": "^4.1.3", 21 | "yorkie": "^2.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martonlederer/esbuild-react-chrome-extension/0446266845b190c7815f6bf745f0e5bf6f951682/public/logo.png -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martonlederer/esbuild-react-chrome-extension/0446266845b190c7815f6bf745f0e5bf6f951682/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/martonlederer/esbuild-react-chrome-extension/0446266845b190c7815f6bf745f0e5bf6f951682/public/logo512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Esbuild-React-Extension", 4 | "version": "0.1.0", 5 | "author": "Marton Lederer", 6 | "description": "An example react-typescript extension with esbuild", 7 | "permissions": [], 8 | "background": { 9 | "scripts": ["build/background.js"] 10 | }, 11 | "icons": { 12 | "192": "logo192.png", 13 | "512": "logo512.png" 14 | }, 15 | "browser_action": { 16 | "default_icon": { 17 | "192": "logo192.png", 18 | "512": "logo512.png" 19 | }, 20 | "default_title": "Popup", 21 | "default_popup": "popup.html" 22 | }, 23 | "web_accessible_resources": ["build/injected.js"], 24 | "content_scripts": [ 25 | { 26 | "matches": ["file://*/*", "http://*/*", "https://*/*"], 27 | "js": ["build/content.js"], 28 | "run_at": "document_end" 29 | } 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /public/popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | React Extension Popup 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Popup/App.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function App() { 4 | return

React App Popup

; 5 | } 6 | -------------------------------------------------------------------------------- /src/background.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a background script 3 | * It is running in the background process of chrome 4 | * You can debug it by clicking the "background page" 5 | * button in the extension settings 6 | * 7 | * Read more about background scripts: 8 | * https://developer.chrome.com/docs/extensions/mv2/background_pages/ 9 | */ 10 | 11 | console.log("background script"); 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /src/content.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a content script 3 | * It is used to inject other scripts into 4 | * the opened windows 5 | * 6 | * Read more about content scripts: 7 | * https://developer.chrome.com/docs/extensions/mv2/content_scripts/ 8 | */ 9 | 10 | function addScriptToWindow(scriptLocation: string) { 11 | try { 12 | const container = document.head || document.documentElement, 13 | script = document.createElement("script"); 14 | 15 | script.setAttribute("async", "false"); 16 | script.setAttribute("type", "text/javascript"); 17 | script.setAttribute("src", scriptLocation); 18 | container.insertBefore(script, container.children[0]); 19 | container.removeChild(script); 20 | } catch (e) { 21 | console.error("Failed to inject script\n", e); 22 | } 23 | } 24 | 25 | console.log("content script"); 26 | 27 | // inject the "injected.ts" script 28 | addScriptToWindow(chrome.extension.getURL("/build/injected.js")); 29 | 30 | export {}; 31 | -------------------------------------------------------------------------------- /src/injected.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is an injectable script 3 | * It is added to the "web_accessible_resources" 4 | * field in manifest.json and can be injected by 5 | * the content script. 6 | * 7 | * It is useful for modifying the DOM of different 8 | * tabs easily 9 | */ 10 | 11 | console.log("Injected script"); 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /src/popup.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a popup view 3 | * This script is bundled and imported by 4 | * popup.html 5 | */ 6 | 7 | import React from "react"; 8 | import ReactDOM from "react-dom"; 9 | import App from "./Popup/App"; 10 | 11 | ReactDOM.render( 12 | 13 | 14 | , 15 | document.getElementById("root") 16 | ); 17 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "esModuleInterop": true, 8 | "allowSyntheticDefaultImports": true, 9 | "strict": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "noFallthroughCasesInSwitch": true, 12 | "module": "esnext", 13 | "moduleResolution": "node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react", 18 | "downlevelIteration": true 19 | }, 20 | "include": ["src"] 21 | } 22 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.12.13": 6 | version "7.12.13" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" 8 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== 9 | dependencies: 10 | "@babel/highlight" "^7.12.13" 11 | 12 | "@babel/core@^7.12.13": 13 | version "7.12.13" 14 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz#b73a87a3a3e7d142a66248bf6ad88b9ceb093425" 15 | integrity sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw== 16 | dependencies: 17 | "@babel/code-frame" "^7.12.13" 18 | "@babel/generator" "^7.12.13" 19 | "@babel/helper-module-transforms" "^7.12.13" 20 | "@babel/helpers" "^7.12.13" 21 | "@babel/parser" "^7.12.13" 22 | "@babel/template" "^7.12.13" 23 | "@babel/traverse" "^7.12.13" 24 | "@babel/types" "^7.12.13" 25 | convert-source-map "^1.7.0" 26 | debug "^4.1.0" 27 | gensync "^1.0.0-beta.1" 28 | json5 "^2.1.2" 29 | lodash "^4.17.19" 30 | semver "^5.4.1" 31 | source-map "^0.5.0" 32 | 33 | "@babel/generator@^7.12.13": 34 | version "7.12.15" 35 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f" 36 | integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== 37 | dependencies: 38 | "@babel/types" "^7.12.13" 39 | jsesc "^2.5.1" 40 | source-map "^0.5.0" 41 | 42 | "@babel/helper-function-name@^7.12.13": 43 | version "7.12.13" 44 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" 45 | integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== 46 | dependencies: 47 | "@babel/helper-get-function-arity" "^7.12.13" 48 | "@babel/template" "^7.12.13" 49 | "@babel/types" "^7.12.13" 50 | 51 | "@babel/helper-get-function-arity@^7.12.13": 52 | version "7.12.13" 53 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" 54 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== 55 | dependencies: 56 | "@babel/types" "^7.12.13" 57 | 58 | "@babel/helper-member-expression-to-functions@^7.12.13": 59 | version "7.12.13" 60 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz#c5715695b4f8bab32660dbdcdc2341dec7e3df40" 61 | integrity sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== 62 | dependencies: 63 | "@babel/types" "^7.12.13" 64 | 65 | "@babel/helper-module-imports@^7.12.13": 66 | version "7.12.13" 67 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" 68 | integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== 69 | dependencies: 70 | "@babel/types" "^7.12.13" 71 | 72 | "@babel/helper-module-transforms@^7.12.13": 73 | version "7.12.13" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz#01afb052dcad2044289b7b20beb3fa8bd0265bea" 75 | integrity sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA== 76 | dependencies: 77 | "@babel/helper-module-imports" "^7.12.13" 78 | "@babel/helper-replace-supers" "^7.12.13" 79 | "@babel/helper-simple-access" "^7.12.13" 80 | "@babel/helper-split-export-declaration" "^7.12.13" 81 | "@babel/helper-validator-identifier" "^7.12.11" 82 | "@babel/template" "^7.12.13" 83 | "@babel/traverse" "^7.12.13" 84 | "@babel/types" "^7.12.13" 85 | lodash "^4.17.19" 86 | 87 | "@babel/helper-optimise-call-expression@^7.12.13": 88 | version "7.12.13" 89 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" 90 | integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== 91 | dependencies: 92 | "@babel/types" "^7.12.13" 93 | 94 | "@babel/helper-replace-supers@^7.12.13": 95 | version "7.12.13" 96 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121" 97 | integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== 98 | dependencies: 99 | "@babel/helper-member-expression-to-functions" "^7.12.13" 100 | "@babel/helper-optimise-call-expression" "^7.12.13" 101 | "@babel/traverse" "^7.12.13" 102 | "@babel/types" "^7.12.13" 103 | 104 | "@babel/helper-simple-access@^7.12.13": 105 | version "7.12.13" 106 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" 107 | integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== 108 | dependencies: 109 | "@babel/types" "^7.12.13" 110 | 111 | "@babel/helper-split-export-declaration@^7.12.13": 112 | version "7.12.13" 113 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" 114 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== 115 | dependencies: 116 | "@babel/types" "^7.12.13" 117 | 118 | "@babel/helper-validator-identifier@^7.12.11": 119 | version "7.12.11" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 121 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 122 | 123 | "@babel/helpers@^7.12.13": 124 | version "7.12.13" 125 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz#3c75e993632e4dadc0274eae219c73eb7645ba47" 126 | integrity sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ== 127 | dependencies: 128 | "@babel/template" "^7.12.13" 129 | "@babel/traverse" "^7.12.13" 130 | "@babel/types" "^7.12.13" 131 | 132 | "@babel/highlight@^7.12.13": 133 | version "7.12.13" 134 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" 135 | integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== 136 | dependencies: 137 | "@babel/helper-validator-identifier" "^7.12.11" 138 | chalk "^2.0.0" 139 | js-tokens "^4.0.0" 140 | 141 | "@babel/parser@^7.12.13": 142 | version "7.12.15" 143 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf" 144 | integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== 145 | 146 | "@babel/template@^7.12.13": 147 | version "7.12.13" 148 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" 149 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== 150 | dependencies: 151 | "@babel/code-frame" "^7.12.13" 152 | "@babel/parser" "^7.12.13" 153 | "@babel/types" "^7.12.13" 154 | 155 | "@babel/traverse@^7.12.13": 156 | version "7.12.13" 157 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0" 158 | integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== 159 | dependencies: 160 | "@babel/code-frame" "^7.12.13" 161 | "@babel/generator" "^7.12.13" 162 | "@babel/helper-function-name" "^7.12.13" 163 | "@babel/helper-split-export-declaration" "^7.12.13" 164 | "@babel/parser" "^7.12.13" 165 | "@babel/types" "^7.12.13" 166 | debug "^4.1.0" 167 | globals "^11.1.0" 168 | lodash "^4.17.19" 169 | 170 | "@babel/types@^7.12.13": 171 | version "7.12.13" 172 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611" 173 | integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== 174 | dependencies: 175 | "@babel/helper-validator-identifier" "^7.12.11" 176 | lodash "^4.17.19" 177 | to-fast-properties "^2.0.0" 178 | 179 | "@types/chrome@^0.0.129": 180 | version "0.0.129" 181 | resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.129.tgz#0f11484239da26a0eb692049a269c90ab91d1860" 182 | integrity sha512-7SdqJ7YFu8wBI13SRbxWibHG7W3W3N2Cdn2hRHw24tWiLBZGC2OOfIKREQyga8AeT83AaVcTirWDVMrph0Gkkw== 183 | dependencies: 184 | "@types/filesystem" "*" 185 | "@types/har-format" "*" 186 | 187 | "@types/filesystem@*": 188 | version "0.0.29" 189 | resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748" 190 | integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== 191 | dependencies: 192 | "@types/filewriter" "*" 193 | 194 | "@types/filewriter@*": 195 | version "0.0.28" 196 | resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3" 197 | integrity sha1-wFTor02d11205jq8dviFFocU1LM= 198 | 199 | "@types/har-format@*": 200 | version "1.2.5" 201 | resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.5.tgz#4f6648814d0fdcb6a510e3364a9db439a753c4b1" 202 | integrity sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ== 203 | 204 | "@types/prop-types@*": 205 | version "15.7.3" 206 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" 207 | integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== 208 | 209 | "@types/react-dom@^17.0.0": 210 | version "17.0.0" 211 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.0.tgz#b3b691eb956c4b3401777ee67b900cb28415d95a" 212 | integrity sha512-lUqY7OlkF/RbNtD5nIq7ot8NquXrdFrjSOR6+w9a9RFQevGi1oZO1dcJbXMeONAPKtZ2UrZOEJ5UOCVsxbLk/g== 213 | dependencies: 214 | "@types/react" "*" 215 | 216 | "@types/react@*", "@types/react@^17.0.1": 217 | version "17.0.1" 218 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.1.tgz#eb1f1407dea8da3bc741879c1192aa703ab9975b" 219 | integrity sha512-w8t9f53B2ei4jeOqf/gxtc2Sswnc3LBK5s0DyJcg5xd10tMHXts2N31cKjWfH9IC/JvEPa/YF1U4YeP1t4R6HQ== 220 | dependencies: 221 | "@types/prop-types" "*" 222 | csstype "^3.0.2" 223 | 224 | ansi-styles@^3.2.1: 225 | version "3.2.1" 226 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 227 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 228 | dependencies: 229 | color-convert "^1.9.0" 230 | 231 | chalk@^2.0.0: 232 | version "2.4.2" 233 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 234 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 235 | dependencies: 236 | ansi-styles "^3.2.1" 237 | escape-string-regexp "^1.0.5" 238 | supports-color "^5.3.0" 239 | 240 | ci-info@^1.5.0: 241 | version "1.6.0" 242 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 243 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 244 | 245 | color-convert@^1.9.0: 246 | version "1.9.3" 247 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 248 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 249 | dependencies: 250 | color-name "1.1.3" 251 | 252 | color-name@1.1.3: 253 | version "1.1.3" 254 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 255 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 256 | 257 | convert-source-map@^1.7.0: 258 | version "1.7.0" 259 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 260 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 261 | dependencies: 262 | safe-buffer "~5.1.1" 263 | 264 | cross-spawn@^5.0.1: 265 | version "5.1.0" 266 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 267 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 268 | dependencies: 269 | lru-cache "^4.0.1" 270 | shebang-command "^1.2.0" 271 | which "^1.2.9" 272 | 273 | csstype@^3.0.2: 274 | version "3.0.6" 275 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" 276 | integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== 277 | 278 | debug@^4.1.0: 279 | version "4.3.1" 280 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 281 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 282 | dependencies: 283 | ms "2.1.2" 284 | 285 | esbuild@^0.8.46: 286 | version "0.8.46" 287 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.46.tgz#8fc7230ce3019b12e2553399f0c03875a729c26b" 288 | integrity sha512-xck9sXNCNmjDHCCfxTCyhKTiFuEBweh+IDAhMLOJI990v1Fzii6MyIkT1LbkvjgoVgPX2SK1kpi5eZVGNrl8yg== 289 | 290 | escape-string-regexp@^1.0.5: 291 | version "1.0.5" 292 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 293 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 294 | 295 | execa@^0.8.0: 296 | version "0.8.0" 297 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" 298 | integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= 299 | dependencies: 300 | cross-spawn "^5.0.1" 301 | get-stream "^3.0.0" 302 | is-stream "^1.1.0" 303 | npm-run-path "^2.0.0" 304 | p-finally "^1.0.0" 305 | signal-exit "^3.0.0" 306 | strip-eof "^1.0.0" 307 | 308 | gensync@^1.0.0-beta.1: 309 | version "1.0.0-beta.2" 310 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 311 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 312 | 313 | get-stream@^3.0.0: 314 | version "3.0.0" 315 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 316 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 317 | 318 | globals@^11.1.0: 319 | version "11.12.0" 320 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 321 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 322 | 323 | has-flag@^3.0.0: 324 | version "3.0.0" 325 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 326 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 327 | 328 | is-ci@^1.0.10: 329 | version "1.2.1" 330 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 331 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 332 | dependencies: 333 | ci-info "^1.5.0" 334 | 335 | is-stream@^1.1.0: 336 | version "1.1.0" 337 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 338 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 339 | 340 | isexe@^2.0.0: 341 | version "2.0.0" 342 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 343 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 344 | 345 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 346 | version "4.0.0" 347 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 348 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 349 | 350 | jsesc@^2.5.1: 351 | version "2.5.2" 352 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 353 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 354 | 355 | json5@^2.1.2: 356 | version "2.2.0" 357 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" 358 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 359 | dependencies: 360 | minimist "^1.2.5" 361 | 362 | lodash@^4.17.19: 363 | version "4.17.20" 364 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 365 | integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 366 | 367 | loose-envify@^1.1.0: 368 | version "1.4.0" 369 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 370 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 371 | dependencies: 372 | js-tokens "^3.0.0 || ^4.0.0" 373 | 374 | lru-cache@^4.0.1: 375 | version "4.1.5" 376 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 377 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 378 | dependencies: 379 | pseudomap "^1.0.2" 380 | yallist "^2.1.2" 381 | 382 | minimist@^1.2.5: 383 | version "1.2.5" 384 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 385 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 386 | 387 | ms@2.1.2: 388 | version "2.1.2" 389 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 390 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 391 | 392 | normalize-path@^1.0.0: 393 | version "1.0.0" 394 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" 395 | integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= 396 | 397 | npm-run-path@^2.0.0: 398 | version "2.0.2" 399 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 400 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 401 | dependencies: 402 | path-key "^2.0.0" 403 | 404 | object-assign@^4.1.1: 405 | version "4.1.1" 406 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 407 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 408 | 409 | p-finally@^1.0.0: 410 | version "1.0.0" 411 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 412 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 413 | 414 | path-key@^2.0.0: 415 | version "2.0.1" 416 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 417 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 418 | 419 | prettier@^2.2.1: 420 | version "2.2.1" 421 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" 422 | integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== 423 | 424 | pseudomap@^1.0.2: 425 | version "1.0.2" 426 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 427 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 428 | 429 | react-dom@^17.0.1: 430 | version "17.0.1" 431 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" 432 | integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== 433 | dependencies: 434 | loose-envify "^1.1.0" 435 | object-assign "^4.1.1" 436 | scheduler "^0.20.1" 437 | 438 | react@^17.0.1: 439 | version "17.0.1" 440 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" 441 | integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== 442 | dependencies: 443 | loose-envify "^1.1.0" 444 | object-assign "^4.1.1" 445 | 446 | safe-buffer@~5.1.1: 447 | version "5.1.2" 448 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 449 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 450 | 451 | scheduler@^0.20.1: 452 | version "0.20.1" 453 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" 454 | integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== 455 | dependencies: 456 | loose-envify "^1.1.0" 457 | object-assign "^4.1.1" 458 | 459 | semver@^5.4.1: 460 | version "5.7.1" 461 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 462 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 463 | 464 | shebang-command@^1.2.0: 465 | version "1.2.0" 466 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 467 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 468 | dependencies: 469 | shebang-regex "^1.0.0" 470 | 471 | shebang-regex@^1.0.0: 472 | version "1.0.0" 473 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 474 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 475 | 476 | signal-exit@^3.0.0: 477 | version "3.0.3" 478 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 479 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 480 | 481 | source-map@^0.5.0: 482 | version "0.5.7" 483 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 484 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 485 | 486 | strip-eof@^1.0.0: 487 | version "1.0.0" 488 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 489 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 490 | 491 | strip-indent@^2.0.0: 492 | version "2.0.0" 493 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 494 | integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= 495 | 496 | supports-color@^5.3.0: 497 | version "5.5.0" 498 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 499 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 500 | dependencies: 501 | has-flag "^3.0.0" 502 | 503 | to-fast-properties@^2.0.0: 504 | version "2.0.0" 505 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 506 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 507 | 508 | typescript@^4.1.3: 509 | version "4.1.3" 510 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" 511 | integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== 512 | 513 | which@^1.2.9: 514 | version "1.3.1" 515 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 516 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 517 | dependencies: 518 | isexe "^2.0.0" 519 | 520 | yallist@^2.1.2: 521 | version "2.1.2" 522 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 523 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 524 | 525 | yorkie@^2.0.0: 526 | version "2.0.0" 527 | resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" 528 | integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== 529 | dependencies: 530 | execa "^0.8.0" 531 | is-ci "^1.0.10" 532 | normalize-path "^1.0.0" 533 | strip-indent "^2.0.0" 534 | --------------------------------------------------------------------------------