├── .gitignore ├── assets └── gif │ └── demo.gif ├── .npmignore ├── postcss.config.js ├── .editorconfig ├── .eslintrc ├── .github └── workflows │ └── npm-publish.yml ├── vite.config.js ├── LICENSE ├── package.json ├── dev └── server.js ├── src ├── index.css └── index.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules/ 3 | .DS_Store 4 | dist 5 | -------------------------------------------------------------------------------- /assets/gif/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/editor-js/link/master/assets/gif/demo.gif -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | assets/ 3 | dev/ 4 | src/ 5 | .eslintrc 6 | vite.config.js 7 | postcss.config.js 8 | yarn.lock 9 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('postcss-nested-ancestors'), 4 | require('postcss-nested'), 5 | ], 6 | }; 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | indent_style = space 4 | end_of_line = lf 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | indent_size = 2 8 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": [ 4 | "codex" 5 | ], 6 | "globals": { 7 | "Range" : true, 8 | "HTMLDivElement": true, 9 | "HTMLElement": true, 10 | "KeyboardEvent": true, 11 | "PasteEvent": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.github/workflows/npm-publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish package to NPM 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | publish-and-notify: 10 | uses: codex-team/github-workflows/.github/workflows/npm-publish-and-notify-reusable.yml@main 11 | secrets: 12 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 13 | CODEX_BOT_NOTIFY_EDITORJS_PUBLIC_CHAT: ${{ secrets.CODEX_BOT_NOTIFY_EDITORJS_PUBLIC_CHAT }} 14 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js"; 3 | import * as pkg from "./package.json"; 4 | 5 | const NODE_ENV = process.argv.mode || "development"; 6 | const VERSION = pkg.version; 7 | 8 | export default { 9 | build: { 10 | copyPublicDir: false, 11 | lib: { 12 | entry: path.resolve(__dirname, "src", "index.js"), 13 | name: "LinkTool", 14 | fileName: "link", 15 | }, 16 | }, 17 | define: { 18 | NODE_ENV: JSON.stringify(NODE_ENV), 19 | VERSION: JSON.stringify(VERSION), 20 | }, 21 | 22 | plugins: [cssInjectedByJsPlugin()], 23 | }; 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 CodeX 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": "@editorjs/link", 3 | "version": "2.6.2", 4 | "keywords": [ 5 | "codex editor", 6 | "tool", 7 | "link", 8 | "editor.js", 9 | "editor" 10 | ], 11 | "description": "Link Tool for Editor.js", 12 | "license": "MIT", 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/editor-js/link.git" 16 | }, 17 | "files": [ 18 | "dist" 19 | ], 20 | "main": "./dist/link.umd.js", 21 | "module": "./dist/link.mjs", 22 | "exports": { 23 | ".": { 24 | "import": "./dist/link.mjs", 25 | "require": "./dist/link.umd.js" 26 | } 27 | }, 28 | "scripts": { 29 | "dev": "vite", 30 | "build": "vite build", 31 | "lint": "eslint src/", 32 | "lint:fix": "eslint src/ --fix" 33 | }, 34 | "author": "CodeX ", 35 | "devDependencies": { 36 | "@codexteam/ajax": "^4.1.0", 37 | "eslint": "^7.1.0", 38 | "eslint-config-codex": "^1.3.6", 39 | "eslint-loader": "^4.0.2", 40 | "open-graph": "^0.2.4", 41 | "postcss-nested": "^4.2.1", 42 | "postcss-nested-ancestors": "^2.0.0", 43 | "url-polyfill": "^1.1.9", 44 | "vite": "^4.5.0", 45 | "vite-plugin-css-injected-by-js": "^3.3.0" 46 | }, 47 | "bugs": { 48 | "url": "https://github.com/editor-js/link/issues" 49 | }, 50 | "homepage": "https://github.com/editor-js/link#readme", 51 | "dependencies": { 52 | "@babel/runtime": "^7.10.2", 53 | "@codexteam/icons": "^0.0.4" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /dev/server.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sample HTTP server for accept fetched links data 3 | * [!] Use it only for debugging purposes 4 | * 5 | * How to use [requires Node.js 10.0.0+ and npm install]: 6 | * 7 | * 1. $ node dev/server.js 8 | * 2. set 'endpoint' at the Link Tools 'config' in example.html 9 | * endpoint : 'http://localhost:8008/fetchUrl' 10 | * 11 | */ 12 | const http = require('http'); 13 | const og = require('open-graph'); 14 | 15 | class ServerExample { 16 | constructor({port, fieldName}) { 17 | this.fieldName = fieldName; 18 | this.server = http.createServer((req, res) => { 19 | this.onRequest(req, res); 20 | }).listen(port); 21 | 22 | this.server.on('listening', () => { 23 | console.log('Server is listening ' + port + '...'); 24 | }); 25 | 26 | this.server.on('error', (error) => { 27 | console.log('Failed to run server', error); 28 | }); 29 | } 30 | 31 | /** 32 | * Request handler 33 | * @param {http.IncomingMessage} req 34 | * @param {http.ServerResponse} res 35 | */ 36 | onRequest(req, res) { 37 | this.allowCors(res); 38 | 39 | const {method, url} = req; 40 | 41 | if (method.toLowerCase() !== 'get') { 42 | res.end(); 43 | return; 44 | } 45 | 46 | const link = decodeURIComponent(url.slice('/fetchUrl?url='.length)); 47 | 48 | /** 49 | * Get available open-graph meta-tags from page 50 | */ 51 | og(link, function(err, meta) { 52 | if (meta) { 53 | res.end(JSON.stringify({ 54 | success: 1, 55 | meta 56 | })); 57 | } else { 58 | res.end(JSON.stringify ({ 59 | success: 0, 60 | meta: {} 61 | })); 62 | console.log(err); 63 | } 64 | }); 65 | } 66 | 67 | /** 68 | * Allows CORS requests for debugging 69 | * @param response 70 | */ 71 | allowCors(response) { 72 | response.setHeader('Access-Control-Allow-Origin', '*'); 73 | response.setHeader('Access-Control-Allow-Credentials', 'true'); 74 | response.setHeader('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT'); 75 | response.setHeader('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers'); 76 | } 77 | } 78 | 79 | new ServerExample({ 80 | port: 8008, 81 | fieldName: 'link' 82 | }); 83 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | .link-tool { 2 | position: relative; 3 | 4 | &__input { 5 | padding-left: 38px; 6 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='%23707684' stroke-linecap='round' stroke-width='2' d='m7.7 12.6-.021.02a2.795 2.795 0 0 0-.044 4.005v0a2.795 2.795 0 0 0 3.936.006l1.455-1.438a3 3 0 0 0 .34-3.866l-.146-.207'/%3E%3Cpath stroke='%23707684' stroke-linecap='round' stroke-width='2' d='m16.22 11.12.136-.14c.933-.954.992-2.46.135-3.483v0a2.597 2.597 0 0 0-3.664-.32L11.39 8.386a3 3 0 0 0-.301 4.3l.031.034'/%3E%3C/svg%3E"); 7 | background-repeat: no-repeat; 8 | background-position: 10px; 9 | white-space: nowrap; 10 | text-overflow: ellipsis; 11 | overflow: hidden; 12 | 13 | &-holder { 14 | position: relative; 15 | 16 | &--error { 17 | ^^& { 18 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='rgb(224, 147, 147)' stroke-linecap='round' stroke-width='2' d='m7.7 12.6-.021.02a2.795 2.795 0 0 0-.044 4.005v0a2.795 2.795 0 0 0 3.936.006l1.455-1.438a3 3 0 0 0 .34-3.866l-.146-.207'/%3E%3Cpath stroke='rgb(224, 147, 147)' stroke-linecap='round' stroke-width='2' d='m16.22 11.12.136-.14c.933-.954.992-2.46.135-3.483v0a2.597 2.597 0 0 0-3.664-.32L11.39 8.386a3 3 0 0 0-.301 4.3l.031.034'/%3E%3C/svg%3E"); 19 | background-color: #fff3f6; 20 | border-color: #f3e0e0; 21 | color: #a95a5a; 22 | box-shadow: inset 0 1px 3px 0 rgba(146, 62, 62, .05); 23 | } 24 | } 25 | } 26 | 27 | &[contentEditable=true][data-placeholder]::before{ 28 | position: absolute; 29 | content: attr(data-placeholder); 30 | color: #707684; 31 | font-weight: normal; 32 | opacity: 0; 33 | } 34 | 35 | &[contentEditable=true][data-placeholder]:empty { 36 | 37 | &::before { 38 | opacity: 1; 39 | } 40 | 41 | &:focus::before { 42 | opacity: 0; 43 | } 44 | } 45 | } 46 | 47 | &__progress { 48 | position: absolute; 49 | box-shadow: inset 0 1px 3px 0 rgba(102, 85, 107, 0.04); 50 | height: 100%; 51 | width: 0; 52 | background-color: #f4f5f7; 53 | z-index: -1; 54 | 55 | &--loading { 56 | -webkit-animation: progress 500ms ease-in; 57 | -webkit-animation-fill-mode: forwards; 58 | } 59 | 60 | &--loaded { 61 | width: 100%; 62 | } 63 | } 64 | 65 | &__content { 66 | display: block; 67 | padding: 25px; 68 | border-radius: 2px; 69 | box-shadow: 0 0 0 2px #fff; 70 | color: initial !important; 71 | text-decoration: none !important; 72 | 73 | &::after { 74 | content: ""; 75 | clear: both; 76 | display: table; 77 | } 78 | 79 | &--rendered { 80 | background: #fff; 81 | border: 1px solid rgba(201, 201, 204, 0.48); 82 | box-shadow: 0 1px 3px rgba(0,0,0, .1); 83 | border-radius: 6px; 84 | will-change: filter; 85 | animation: link-in 450ms 1 cubic-bezier(0.215, 0.61, 0.355, 1); 86 | 87 | &:hover { 88 | box-shadow: 0 0 3px rgba(0,0,0, .16); 89 | } 90 | } 91 | } 92 | 93 | &__image { 94 | background-position: center center; 95 | background-repeat: no-repeat; 96 | background-size: cover; 97 | margin: 0 0 0 30px; 98 | width: 65px; 99 | height: 65px; 100 | border-radius: 3px; 101 | float: right; 102 | } 103 | 104 | &__title { 105 | font-size: 17px; 106 | font-weight: 600; 107 | line-height: 1.5em; 108 | margin: 0 0 10px 0; 109 | 110 | + ^&__anchor { 111 | margin-top: 25px; 112 | } 113 | } 114 | 115 | &__description { 116 | margin: 0 0 20px 0; 117 | font-size: 15px; 118 | line-height: 1.55em; 119 | display: -webkit-box; 120 | -webkit-line-clamp: 3; 121 | -webkit-box-orient: vertical; 122 | overflow: hidden; 123 | } 124 | 125 | &__anchor { 126 | display: block; 127 | font-size: 15px; 128 | line-height: 1em; 129 | color: #888 !important; 130 | border: 0 !important; 131 | padding: 0 !important; 132 | } 133 | } 134 | 135 | @keyframes link-in { 136 | from { 137 | filter: blur(5px); 138 | } 139 | 140 | to { 141 | filter: none; 142 | } 143 | } 144 | 145 | .codex-editor--narrow .link-tool__image { 146 | display: none; 147 | } 148 | 149 | @-webkit-keyframes progress { 150 | 0% { 151 | width: 0; 152 | } 153 | 100% { 154 | width: 85%; 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](https://badgen.net/badge/Editor.js/v2.0/blue) 2 | 3 | # Link Tool 4 | 5 | Link Block for the [Editor.js](https://codex.so/editor). 6 | 7 | ![](assets/gif/demo.gif) 8 | 9 | ## Features 10 | 11 | Allows adding link previews to your articles. 12 | 13 | **Note:** this Tool requires server-side implementation for link data fetching. See [backend response format](#server-format) for more details. 14 | 15 | ## Installation 16 | 17 | Get the package 18 | 19 | ```shell 20 | yarn add @editorjs/link 21 | ``` 22 | 23 | Include module at your application 24 | 25 | ```javascript 26 | import LinkTool from '@editorjs/link'; 27 | ``` 28 | 29 | Optionally, you can load this tool from CDN [JsDelivr CDN](https://cdn.jsdelivr.net/npm/@editorjs/link@latest) 30 | 31 | ## Usage 32 | 33 | Add a new Tool to the `tools` property of the Editor.js initial config. 34 | 35 | ```javascript 36 | const editor = EditorJS({ 37 | ... 38 | 39 | tools: { 40 | ... 41 | linkTool: { 42 | class: LinkTool, 43 | config: { 44 | endpoint: 'http://localhost:8008/fetchUrl', // Your backend endpoint for url data fetching, 45 | } 46 | } 47 | }, 48 | 49 | ... 50 | }); 51 | ``` 52 | 53 | ## Config Params 54 | 55 | Link Tool supports these configuration parameters: 56 | 57 | | Field | Type | Description | 58 | | ---------|-------------|------------------------------------------------| 59 | | endpoint | `string` | **Required:** the endpoint for link data fetching. | 60 | | headers | `object` | **Optional:** the headers used in the GET request. | 61 | 62 | ## Output data 63 | 64 | This Tool returns `data` with following format 65 | 66 | | Field | Type | Description | 67 | | -------------- | --------- | ------------------------------- | 68 | | link | `string` | Pasted link's url | 69 | | meta | `object` | Fetched link's data. Any data got from the backend. Currently, the plugin's design supports the 'title', 'image', and 'description' fields. | 70 | 71 | ```json 72 | { 73 | "type" : "linkTool", 74 | "data" : { 75 | "link" : "https://codex.so", 76 | "meta" : { 77 | "title" : "CodeX Team", 78 | "site_name" : "CodeX", 79 | "description" : "Club of web-development, design and marketing. We build team learning how to build full-valued projects on the world market.", 80 | "image" : { 81 | "url" : "https://codex.so/public/app/img/meta_img.png" 82 | } 83 | } 84 | } 85 | } 86 | ``` 87 | 88 | ## Backend response format 89 | 90 | You can implement a backend for link data fetching your own way. It is a specific and trivial task depending on your 91 | environment and stack. 92 | 93 | Backend response **should** cover following format: 94 | 95 | ```json5 96 | { 97 | "success" : 1, 98 | "link": "https://codex.so", // Optionally return a link to set the hyperlink URL 99 | "meta": { 100 | // ... any fields you want 101 | } 102 | } 103 | ``` 104 | 105 | **success** — uploading status. 1 for successful, 0 for failed 106 | 107 | **link** - Optional response parameter to override the URL provided 108 | 109 | **meta** — link fetched data. 110 | 111 | Currently, the plugin's design supports the 'title', 'image', and 'description' fields. They should have the following format in the response: 112 | 113 | ```json5 114 | { 115 | "success" : 1, 116 | "meta": { 117 | "title" : "CodeX Team", 118 | "description" : "Club of web-development, design and marketing. We build team learning how to build full-valued projects on the world market.", 119 | "image" : { 120 | "url" : "https://codex.so/public/app/img/meta_img.png" 121 | } 122 | } 123 | } 124 | ``` 125 | 126 | Also, it can contain any additional fields you want to store. 127 | 128 | # About CodeX 129 | 130 | 131 | 132 | CodeX is a team of digital specialists around the world interested in building high-quality open source products on a global market. We are [open](https://codex.so/join) for young people who want to constantly improve their skills and grow professionally with experiments in cutting-edge technologies. 133 | 134 | | 🌐 | Join 👋 | Twitter | Instagram | 135 | | -- | -- | -- | -- | 136 | | [codex.so](https://codex.so) | [codex.so/join](https://codex.so/join) |[@codex_team](http://twitter.com/codex_team) | [@codex_team](http://instagram.com/codex_team/) | 137 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @typedef {object} LinkToolData 3 | * @description Link Tool's input and output data format 4 | * @property {string} link — data url 5 | * @property {metaData} meta — fetched link data 6 | */ 7 | 8 | /** 9 | * @typedef {object} metaData 10 | * @description Fetched link meta data 11 | * @property {string} image - link's meta image 12 | * @property {string} title - link's meta title 13 | * @property {string} description - link's description 14 | */ 15 | 16 | /** 17 | * @typedef {object} LinkToolConfig 18 | * @property {string} endpoint - the endpoint for link data fetching 19 | * @property {object} headers - the headers used in the GET request 20 | */ 21 | 22 | import './index.css'; 23 | import 'url-polyfill'; 24 | import ajax from '@codexteam/ajax'; 25 | import { IconLink } from '@codexteam/icons'; 26 | 27 | /** 28 | * @typedef {object} UploadResponseFormat 29 | * @description This format expected from backend on link data fetching 30 | * @property {number} success - 1 for successful uploading, 0 for failure 31 | * @property {metaData} meta - Object with link data. 32 | * 33 | * Tool may have any data provided by backend, currently are supported by design: 34 | * title, description, image, url 35 | */ 36 | export default class LinkTool { 37 | /** 38 | * Notify core that read-only mode supported 39 | * 40 | * @returns {boolean} 41 | */ 42 | static get isReadOnlySupported() { 43 | return true; 44 | } 45 | 46 | /** 47 | * Get Tool toolbox settings 48 | * icon - Tool icon's SVG 49 | * title - title to show in toolbox 50 | * 51 | * @returns {{icon: string, title: string}} 52 | */ 53 | static get toolbox() { 54 | return { 55 | icon: IconLink, 56 | title: 'Link', 57 | }; 58 | } 59 | 60 | /** 61 | * Allow to press Enter inside the LinkTool input 62 | * 63 | * @returns {boolean} 64 | * @public 65 | */ 66 | static get enableLineBreaks() { 67 | return true; 68 | } 69 | 70 | /** 71 | * @param {object} options - Tool constructor options fot from Editor.js 72 | * @param {LinkToolData} options.data - previously saved data 73 | * @param {LinkToolConfig} options.config - user config for Tool 74 | * @param {object} options.api - Editor.js API 75 | * @param {boolean} options.readOnly - read-only mode flag 76 | */ 77 | constructor({ data, config, api, readOnly }) { 78 | this.api = api; 79 | this.readOnly = readOnly; 80 | 81 | /** 82 | * Tool's initial config 83 | */ 84 | this.config = { 85 | endpoint: config.endpoint || '', 86 | headers: config.headers || {}, 87 | }; 88 | 89 | this.nodes = { 90 | wrapper: null, 91 | container: null, 92 | progress: null, 93 | input: null, 94 | inputHolder: null, 95 | linkContent: null, 96 | linkImage: null, 97 | linkTitle: null, 98 | linkDescription: null, 99 | linkText: null, 100 | }; 101 | 102 | this._data = { 103 | link: '', 104 | meta: {}, 105 | }; 106 | 107 | this.data = data; 108 | } 109 | 110 | /** 111 | * Renders Block content 112 | * 113 | * @public 114 | * 115 | * @returns {HTMLDivElement} 116 | */ 117 | render() { 118 | this.nodes.wrapper = this.make('div', this.CSS.baseClass); 119 | this.nodes.container = this.make('div', this.CSS.container); 120 | 121 | this.nodes.inputHolder = this.makeInputHolder(); 122 | this.nodes.linkContent = this.prepareLinkPreview(); 123 | 124 | /** 125 | * If Tool already has data, render link preview, otherwise insert input 126 | */ 127 | if (Object.keys(this.data.meta).length) { 128 | this.nodes.container.appendChild(this.nodes.linkContent); 129 | this.showLinkPreview(this.data.meta); 130 | } else { 131 | this.nodes.container.appendChild(this.nodes.inputHolder); 132 | } 133 | 134 | this.nodes.wrapper.appendChild(this.nodes.container); 135 | 136 | return this.nodes.wrapper; 137 | } 138 | 139 | /** 140 | * Return Block data 141 | * 142 | * @public 143 | * 144 | * @returns {LinkToolData} 145 | */ 146 | save() { 147 | return this.data; 148 | } 149 | 150 | /** 151 | * Validate Block data 152 | * - check if given link is an empty string or not. 153 | * 154 | * @public 155 | * 156 | * @returns {boolean} false if saved data is incorrect, otherwise true 157 | */ 158 | validate() { 159 | return this.data.link.trim() !== ''; 160 | } 161 | 162 | /** 163 | * Stores all Tool's data 164 | * 165 | * @param {LinkToolData} data - data to store 166 | */ 167 | set data(data) { 168 | this._data = Object.assign({}, { 169 | link: data.link || this._data.link, 170 | meta: data.meta || this._data.meta, 171 | }); 172 | } 173 | 174 | /** 175 | * Return Tool data 176 | * 177 | * @returns {LinkToolData} 178 | */ 179 | get data() { 180 | return this._data; 181 | } 182 | 183 | /** 184 | * @returns {object} - Link Tool styles 185 | */ 186 | get CSS() { 187 | return { 188 | baseClass: this.api.styles.block, 189 | input: this.api.styles.input, 190 | 191 | /** 192 | * Tool's classes 193 | */ 194 | container: 'link-tool', 195 | inputEl: 'link-tool__input', 196 | inputHolder: 'link-tool__input-holder', 197 | inputError: 'link-tool__input-holder--error', 198 | linkContent: 'link-tool__content', 199 | linkContentRendered: 'link-tool__content--rendered', 200 | linkImage: 'link-tool__image', 201 | linkTitle: 'link-tool__title', 202 | linkDescription: 'link-tool__description', 203 | linkText: 'link-tool__anchor', 204 | progress: 'link-tool__progress', 205 | progressLoading: 'link-tool__progress--loading', 206 | progressLoaded: 'link-tool__progress--loaded', 207 | }; 208 | } 209 | 210 | /** 211 | * Prepare input holder 212 | * 213 | * @returns {HTMLElement} 214 | */ 215 | makeInputHolder() { 216 | const inputHolder = this.make('div', this.CSS.inputHolder); 217 | 218 | this.nodes.progress = this.make('label', this.CSS.progress); 219 | this.nodes.input = this.make('div', [this.CSS.input, this.CSS.inputEl], { 220 | contentEditable: !this.readOnly, 221 | }); 222 | 223 | this.nodes.input.dataset.placeholder = this.api.i18n.t('Link'); 224 | 225 | if (!this.readOnly) { 226 | this.nodes.input.addEventListener('paste', (event) => { 227 | this.startFetching(event); 228 | }); 229 | 230 | this.nodes.input.addEventListener('keydown', (event) => { 231 | const [ENTER, A] = [13, 65]; 232 | const cmdPressed = event.ctrlKey || event.metaKey; 233 | 234 | switch (event.keyCode) { 235 | case ENTER: 236 | event.preventDefault(); 237 | event.stopPropagation(); 238 | 239 | this.startFetching(event); 240 | break; 241 | case A: 242 | if (cmdPressed) { 243 | this.selectLinkUrl(event); 244 | } 245 | break; 246 | } 247 | }); 248 | } 249 | 250 | inputHolder.appendChild(this.nodes.progress); 251 | inputHolder.appendChild(this.nodes.input); 252 | 253 | return inputHolder; 254 | } 255 | 256 | /** 257 | * Activates link data fetching by url 258 | * 259 | * @param {PasteEvent|KeyboardEvent} event - fetching could be fired by a pase or keydown events 260 | */ 261 | startFetching(event) { 262 | let url = this.nodes.input.textContent; 263 | 264 | if (event.type === 'paste') { 265 | url = (event.clipboardData || window.clipboardData).getData('text'); 266 | } 267 | 268 | this.removeErrorStyle(); 269 | this.fetchLinkData(url); 270 | } 271 | 272 | /** 273 | * If previous link data fetching failed, remove error styles 274 | */ 275 | removeErrorStyle() { 276 | this.nodes.inputHolder.classList.remove(this.CSS.inputError); 277 | this.nodes.inputHolder.insertBefore(this.nodes.progress, this.nodes.input); 278 | } 279 | 280 | /** 281 | * Select LinkTool input content by CMD+A 282 | * 283 | * @param {KeyboardEvent} event - keydown 284 | */ 285 | selectLinkUrl(event) { 286 | event.preventDefault(); 287 | event.stopPropagation(); 288 | 289 | const selection = window.getSelection(); 290 | const range = new Range(); 291 | 292 | const currentNode = selection.anchorNode.parentNode; 293 | const currentItem = currentNode.closest(`.${this.CSS.inputHolder}`); 294 | const inputElement = currentItem.querySelector(`.${this.CSS.inputEl}`); 295 | 296 | range.selectNodeContents(inputElement); 297 | 298 | selection.removeAllRanges(); 299 | selection.addRange(range); 300 | } 301 | 302 | /** 303 | * Prepare link preview holder 304 | * 305 | * @returns {HTMLElement} 306 | */ 307 | prepareLinkPreview() { 308 | const holder = this.make('a', this.CSS.linkContent, { 309 | target: '_blank', 310 | rel: 'nofollow noindex noreferrer', 311 | }); 312 | 313 | this.nodes.linkImage = this.make('div', this.CSS.linkImage); 314 | this.nodes.linkTitle = this.make('div', this.CSS.linkTitle); 315 | this.nodes.linkDescription = this.make('p', this.CSS.linkDescription); 316 | this.nodes.linkText = this.make('span', this.CSS.linkText); 317 | 318 | return holder; 319 | } 320 | 321 | /** 322 | * Compose link preview from fetched data 323 | * 324 | * @param {metaData} meta - link meta data 325 | */ 326 | showLinkPreview({ image, title, description }) { 327 | this.nodes.container.appendChild(this.nodes.linkContent); 328 | 329 | if (image && image.url) { 330 | this.nodes.linkImage.style.backgroundImage = 'url(' + image.url + ')'; 331 | this.nodes.linkContent.appendChild(this.nodes.linkImage); 332 | } 333 | 334 | if (title) { 335 | this.nodes.linkTitle.textContent = title; 336 | this.nodes.linkContent.appendChild(this.nodes.linkTitle); 337 | } 338 | 339 | if (description) { 340 | this.nodes.linkDescription.textContent = description; 341 | this.nodes.linkContent.appendChild(this.nodes.linkDescription); 342 | } 343 | 344 | this.nodes.linkContent.classList.add(this.CSS.linkContentRendered); 345 | this.nodes.linkContent.setAttribute('href', this.data.link); 346 | this.nodes.linkContent.appendChild(this.nodes.linkText); 347 | 348 | try { 349 | this.nodes.linkText.textContent = (new URL(this.data.link)).hostname; 350 | } catch (e) { 351 | this.nodes.linkText.textContent = this.data.link; 352 | } 353 | } 354 | 355 | /** 356 | * Show loading progress bar 357 | */ 358 | showProgress() { 359 | this.nodes.progress.classList.add(this.CSS.progressLoading); 360 | } 361 | 362 | /** 363 | * Hide loading progress bar 364 | * 365 | * @returns {Promise} 366 | */ 367 | hideProgress() { 368 | return new Promise((resolve) => { 369 | this.nodes.progress.classList.remove(this.CSS.progressLoading); 370 | this.nodes.progress.classList.add(this.CSS.progressLoaded); 371 | 372 | setTimeout(resolve, 500); 373 | }); 374 | } 375 | 376 | /** 377 | * If data fetching failed, set input error style 378 | */ 379 | applyErrorStyle() { 380 | this.nodes.inputHolder.classList.add(this.CSS.inputError); 381 | this.nodes.progress.remove(); 382 | } 383 | 384 | /** 385 | * Sends to backend pasted url and receives link data 386 | * 387 | * @param {string} url - link source url 388 | */ 389 | async fetchLinkData(url) { 390 | this.showProgress(); 391 | this.data = { link: url }; 392 | 393 | try { 394 | const { body } = await (ajax.get({ 395 | url: this.config.endpoint, 396 | headers: this.config.headers, 397 | data: { 398 | url, 399 | }, 400 | })); 401 | 402 | this.onFetch(body); 403 | } catch (error) { 404 | this.fetchingFailed(this.api.i18n.t('Couldn\'t fetch the link data')); 405 | } 406 | } 407 | 408 | /** 409 | * Link data fetching callback 410 | * 411 | * @param {UploadResponseFormat} response - backend response 412 | */ 413 | onFetch(response) { 414 | if (!response || !response.success) { 415 | this.fetchingFailed(this.api.i18n.t('Couldn\'t get this link data, try the other one')); 416 | 417 | return; 418 | } 419 | 420 | const metaData = response.meta; 421 | 422 | const link = response.link || this.data.link; 423 | 424 | this.data = { 425 | meta: metaData, 426 | link, 427 | }; 428 | 429 | if (!metaData) { 430 | this.fetchingFailed(this.api.i18n.t('Wrong response format from the server')); 431 | 432 | return; 433 | } 434 | 435 | this.hideProgress().then(() => { 436 | this.nodes.inputHolder.remove(); 437 | this.showLinkPreview(metaData); 438 | }); 439 | } 440 | 441 | /** 442 | * Handle link fetching errors 443 | * 444 | * @private 445 | * 446 | * @param {string} errorMessage - message to explain user what he should do 447 | */ 448 | fetchingFailed(errorMessage) { 449 | this.api.notifier.show({ 450 | message: errorMessage, 451 | style: 'error', 452 | }); 453 | 454 | this.applyErrorStyle(); 455 | } 456 | 457 | /** 458 | * Helper method for elements creation 459 | * 460 | * @param {string} tagName - name of creating element 461 | * @param {string|string[]} [classNames] - list of CSS classes to add 462 | * @param {object} [attributes] - object with attributes to add 463 | * @returns {HTMLElement} 464 | */ 465 | make(tagName, classNames = null, attributes = {}) { 466 | const el = document.createElement(tagName); 467 | 468 | if (Array.isArray(classNames)) { 469 | el.classList.add(...classNames); 470 | } else if (classNames) { 471 | el.classList.add(classNames); 472 | } 473 | 474 | for (const attrName in attributes) { 475 | el[attrName] = attributes[attrName]; 476 | } 477 | 478 | return el; 479 | } 480 | } 481 | -------------------------------------------------------------------------------- /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.0.0": 6 | version "7.10.1" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" 8 | dependencies: 9 | "@babel/highlight" "^7.10.1" 10 | 11 | "@babel/helper-validator-identifier@^7.10.1": 12 | version "7.10.1" 13 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" 14 | 15 | "@babel/highlight@^7.10.1": 16 | version "7.10.1" 17 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" 18 | dependencies: 19 | "@babel/helper-validator-identifier" "^7.10.1" 20 | chalk "^2.0.0" 21 | js-tokens "^4.0.0" 22 | 23 | "@babel/runtime@^7.10.2": 24 | version "7.10.2" 25 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" 26 | dependencies: 27 | regenerator-runtime "^0.13.4" 28 | 29 | "@codexteam/ajax@^4.1.0": 30 | version "4.1.0" 31 | resolved "https://registry.yarnpkg.com/@codexteam/ajax/-/ajax-4.1.0.tgz#472703b7c1e0843eec1f047b849835e0554c34a5" 32 | 33 | "@codexteam/icons@^0.0.4": 34 | version "0.0.4" 35 | resolved "https://registry.yarnpkg.com/@codexteam/icons/-/icons-0.0.4.tgz#8b72dcd3f3a1b0d880bdceb2abebd74b46d3ae13" 36 | integrity sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q== 37 | 38 | "@esbuild/android-arm64@0.18.20": 39 | version "0.18.20" 40 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" 41 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== 42 | 43 | "@esbuild/android-arm@0.18.20": 44 | version "0.18.20" 45 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" 46 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== 47 | 48 | "@esbuild/android-x64@0.18.20": 49 | version "0.18.20" 50 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" 51 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== 52 | 53 | "@esbuild/darwin-arm64@0.18.20": 54 | version "0.18.20" 55 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" 56 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== 57 | 58 | "@esbuild/darwin-x64@0.18.20": 59 | version "0.18.20" 60 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" 61 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== 62 | 63 | "@esbuild/freebsd-arm64@0.18.20": 64 | version "0.18.20" 65 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" 66 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== 67 | 68 | "@esbuild/freebsd-x64@0.18.20": 69 | version "0.18.20" 70 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" 71 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== 72 | 73 | "@esbuild/linux-arm64@0.18.20": 74 | version "0.18.20" 75 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" 76 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== 77 | 78 | "@esbuild/linux-arm@0.18.20": 79 | version "0.18.20" 80 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" 81 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== 82 | 83 | "@esbuild/linux-ia32@0.18.20": 84 | version "0.18.20" 85 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" 86 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== 87 | 88 | "@esbuild/linux-loong64@0.18.20": 89 | version "0.18.20" 90 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" 91 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== 92 | 93 | "@esbuild/linux-mips64el@0.18.20": 94 | version "0.18.20" 95 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" 96 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== 97 | 98 | "@esbuild/linux-ppc64@0.18.20": 99 | version "0.18.20" 100 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" 101 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== 102 | 103 | "@esbuild/linux-riscv64@0.18.20": 104 | version "0.18.20" 105 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" 106 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== 107 | 108 | "@esbuild/linux-s390x@0.18.20": 109 | version "0.18.20" 110 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" 111 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== 112 | 113 | "@esbuild/linux-x64@0.18.20": 114 | version "0.18.20" 115 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" 116 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== 117 | 118 | "@esbuild/netbsd-x64@0.18.20": 119 | version "0.18.20" 120 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" 121 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== 122 | 123 | "@esbuild/openbsd-x64@0.18.20": 124 | version "0.18.20" 125 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" 126 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== 127 | 128 | "@esbuild/sunos-x64@0.18.20": 129 | version "0.18.20" 130 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" 131 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== 132 | 133 | "@esbuild/win32-arm64@0.18.20": 134 | version "0.18.20" 135 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" 136 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== 137 | 138 | "@esbuild/win32-ia32@0.18.20": 139 | version "0.18.20" 140 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" 141 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== 142 | 143 | "@esbuild/win32-x64@0.18.20": 144 | version "0.18.20" 145 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" 146 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== 147 | 148 | "@types/color-name@^1.1.1": 149 | version "1.1.1" 150 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 151 | 152 | "@types/eslint-visitor-keys@^1.0.0": 153 | version "1.0.0" 154 | resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" 155 | 156 | "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": 157 | version "7.0.4" 158 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" 159 | 160 | "@typescript-eslint/eslint-plugin@^2.12.0": 161 | version "2.34.0" 162 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" 163 | dependencies: 164 | "@typescript-eslint/experimental-utils" "2.34.0" 165 | functional-red-black-tree "^1.0.1" 166 | regexpp "^3.0.0" 167 | tsutils "^3.17.1" 168 | 169 | "@typescript-eslint/experimental-utils@2.34.0": 170 | version "2.34.0" 171 | resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" 172 | dependencies: 173 | "@types/json-schema" "^7.0.3" 174 | "@typescript-eslint/typescript-estree" "2.34.0" 175 | eslint-scope "^5.0.0" 176 | eslint-utils "^2.0.0" 177 | 178 | "@typescript-eslint/parser@^2.12.0": 179 | version "2.34.0" 180 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" 181 | dependencies: 182 | "@types/eslint-visitor-keys" "^1.0.0" 183 | "@typescript-eslint/experimental-utils" "2.34.0" 184 | "@typescript-eslint/typescript-estree" "2.34.0" 185 | eslint-visitor-keys "^1.1.0" 186 | 187 | "@typescript-eslint/typescript-estree@2.34.0": 188 | version "2.34.0" 189 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" 190 | dependencies: 191 | debug "^4.1.1" 192 | eslint-visitor-keys "^1.1.0" 193 | glob "^7.1.6" 194 | is-glob "^4.0.1" 195 | lodash "^4.17.15" 196 | semver "^7.3.2" 197 | tsutils "^3.17.1" 198 | 199 | acorn-jsx@^5.2.0: 200 | version "5.2.0" 201 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" 202 | 203 | acorn@^7.2.0: 204 | version "7.2.0" 205 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" 206 | 207 | ajv-keywords@^3.4.1: 208 | version "3.4.1" 209 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" 210 | 211 | ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: 212 | version "6.12.2" 213 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" 214 | dependencies: 215 | fast-deep-equal "^3.1.1" 216 | fast-json-stable-stringify "^2.0.0" 217 | json-schema-traverse "^0.4.1" 218 | uri-js "^4.2.2" 219 | 220 | ansi-escapes@^4.2.1: 221 | version "4.3.1" 222 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" 223 | dependencies: 224 | type-fest "^0.11.0" 225 | 226 | ansi-regex@^4.1.0: 227 | version "4.1.0" 228 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 229 | 230 | ansi-regex@^5.0.0: 231 | version "5.0.0" 232 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 233 | 234 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 235 | version "3.2.1" 236 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 237 | dependencies: 238 | color-convert "^1.9.0" 239 | 240 | ansi-styles@^4.1.0: 241 | version "4.2.1" 242 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 243 | dependencies: 244 | "@types/color-name" "^1.1.1" 245 | color-convert "^2.0.1" 246 | 247 | argparse@^1.0.7: 248 | version "1.0.10" 249 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 250 | dependencies: 251 | sprintf-js "~1.0.2" 252 | 253 | array-includes@^3.0.3: 254 | version "3.1.1" 255 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" 256 | dependencies: 257 | define-properties "^1.1.3" 258 | es-abstract "^1.17.0" 259 | is-string "^1.0.5" 260 | 261 | array.prototype.flat@^1.2.1: 262 | version "1.2.3" 263 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" 264 | dependencies: 265 | define-properties "^1.1.3" 266 | es-abstract "^1.17.0-next.1" 267 | 268 | asn1@~0.2.3: 269 | version "0.2.4" 270 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 271 | dependencies: 272 | safer-buffer "~2.1.0" 273 | 274 | assert-plus@1.0.0, assert-plus@^1.0.0: 275 | version "1.0.0" 276 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 277 | 278 | astral-regex@^1.0.0: 279 | version "1.0.0" 280 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 281 | 282 | asynckit@^0.4.0: 283 | version "0.4.0" 284 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 285 | 286 | aws-sign2@~0.7.0: 287 | version "0.7.0" 288 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 289 | 290 | aws4@^1.8.0: 291 | version "1.10.0" 292 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" 293 | 294 | balanced-match@^1.0.0: 295 | version "1.0.0" 296 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 297 | 298 | bcrypt-pbkdf@^1.0.0: 299 | version "1.0.2" 300 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 301 | dependencies: 302 | tweetnacl "^0.14.3" 303 | 304 | big.js@^5.2.2: 305 | version "5.2.2" 306 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 307 | 308 | boolbase@~1.0.0: 309 | version "1.0.0" 310 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 311 | 312 | brace-expansion@^1.1.7: 313 | version "1.1.11" 314 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 315 | dependencies: 316 | balanced-match "^1.0.0" 317 | concat-map "0.0.1" 318 | 319 | callsites@^3.0.0: 320 | version "3.1.0" 321 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 322 | 323 | caseless@~0.12.0: 324 | version "0.12.0" 325 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 326 | 327 | chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: 328 | version "2.4.2" 329 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 330 | dependencies: 331 | ansi-styles "^3.2.1" 332 | escape-string-regexp "^1.0.5" 333 | supports-color "^5.3.0" 334 | 335 | chalk@^3.0.0: 336 | version "3.0.0" 337 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 338 | dependencies: 339 | ansi-styles "^4.1.0" 340 | supports-color "^7.1.0" 341 | 342 | chalk@^4.0.0: 343 | version "4.0.0" 344 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" 345 | dependencies: 346 | ansi-styles "^4.1.0" 347 | supports-color "^7.1.0" 348 | 349 | chardet@^0.7.0: 350 | version "0.7.0" 351 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 352 | 353 | cheerio@^0.22.0: 354 | version "0.22.0" 355 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" 356 | dependencies: 357 | css-select "~1.2.0" 358 | dom-serializer "~0.1.0" 359 | entities "~1.1.1" 360 | htmlparser2 "^3.9.1" 361 | lodash.assignin "^4.0.9" 362 | lodash.bind "^4.1.4" 363 | lodash.defaults "^4.0.1" 364 | lodash.filter "^4.4.0" 365 | lodash.flatten "^4.2.0" 366 | lodash.foreach "^4.3.0" 367 | lodash.map "^4.4.0" 368 | lodash.merge "^4.4.0" 369 | lodash.pick "^4.2.1" 370 | lodash.reduce "^4.4.0" 371 | lodash.reject "^4.4.0" 372 | lodash.some "^4.4.0" 373 | 374 | cli-cursor@^3.1.0: 375 | version "3.1.0" 376 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 377 | dependencies: 378 | restore-cursor "^3.1.0" 379 | 380 | cli-width@^2.0.0: 381 | version "2.2.1" 382 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 383 | 384 | color-convert@^1.9.0: 385 | version "1.9.3" 386 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 387 | dependencies: 388 | color-name "1.1.3" 389 | 390 | color-convert@^2.0.1: 391 | version "2.0.1" 392 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 393 | dependencies: 394 | color-name "~1.1.4" 395 | 396 | color-name@1.1.3: 397 | version "1.1.3" 398 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 399 | 400 | color-name@~1.1.4: 401 | version "1.1.4" 402 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 403 | 404 | combined-stream@^1.0.6, combined-stream@~1.0.6: 405 | version "1.0.8" 406 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 407 | dependencies: 408 | delayed-stream "~1.0.0" 409 | 410 | comment-parser@^0.7.2: 411 | version "0.7.5" 412 | resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.5.tgz#06db157a3b34addf8502393743e41897e2c73059" 413 | 414 | commondir@^1.0.1: 415 | version "1.0.1" 416 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 417 | 418 | concat-map@0.0.1: 419 | version "0.0.1" 420 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 421 | 422 | contains-path@^0.1.0: 423 | version "0.1.0" 424 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 425 | 426 | core-util-is@1.0.2: 427 | version "1.0.2" 428 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 429 | 430 | cross-spawn@^7.0.2: 431 | version "7.0.3" 432 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 433 | dependencies: 434 | path-key "^3.1.0" 435 | shebang-command "^2.0.0" 436 | which "^2.0.1" 437 | 438 | css-select@~1.2.0: 439 | version "1.2.0" 440 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 441 | dependencies: 442 | boolbase "~1.0.0" 443 | css-what "2.1" 444 | domutils "1.5.1" 445 | nth-check "~1.0.1" 446 | 447 | css-what@2.1: 448 | version "2.1.3" 449 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" 450 | 451 | cssesc@^3.0.0: 452 | version "3.0.0" 453 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 454 | 455 | dashdash@^1.12.0: 456 | version "1.14.1" 457 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 458 | dependencies: 459 | assert-plus "^1.0.0" 460 | 461 | debug@^2.6.9: 462 | version "2.6.9" 463 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 464 | dependencies: 465 | ms "2.0.0" 466 | 467 | debug@^4.0.1, debug@^4.1.1: 468 | version "4.1.1" 469 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 470 | dependencies: 471 | ms "^2.1.1" 472 | 473 | deep-is@^0.1.3: 474 | version "0.1.3" 475 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 476 | 477 | define-properties@^1.1.2, define-properties@^1.1.3: 478 | version "1.1.3" 479 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 480 | dependencies: 481 | object-keys "^1.0.12" 482 | 483 | delayed-stream@~1.0.0: 484 | version "1.0.0" 485 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 486 | 487 | doctrine@1.5.0: 488 | version "1.5.0" 489 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 490 | dependencies: 491 | esutils "^2.0.2" 492 | isarray "^1.0.0" 493 | 494 | doctrine@^3.0.0: 495 | version "3.0.0" 496 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 497 | dependencies: 498 | esutils "^2.0.2" 499 | 500 | dom-serializer@0: 501 | version "0.2.2" 502 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" 503 | dependencies: 504 | domelementtype "^2.0.1" 505 | entities "^2.0.0" 506 | 507 | dom-serializer@~0.1.0: 508 | version "0.1.1" 509 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" 510 | dependencies: 511 | domelementtype "^1.3.0" 512 | entities "^1.1.1" 513 | 514 | domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: 515 | version "1.3.1" 516 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" 517 | 518 | domelementtype@^2.0.1: 519 | version "2.0.1" 520 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" 521 | 522 | domhandler@^2.3.0: 523 | version "2.4.2" 524 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" 525 | dependencies: 526 | domelementtype "1" 527 | 528 | domutils@1.5.1: 529 | version "1.5.1" 530 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 531 | dependencies: 532 | dom-serializer "0" 533 | domelementtype "1" 534 | 535 | domutils@^1.5.1: 536 | version "1.7.0" 537 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" 538 | dependencies: 539 | dom-serializer "0" 540 | domelementtype "1" 541 | 542 | ecc-jsbn@~0.1.1: 543 | version "0.1.2" 544 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 545 | dependencies: 546 | jsbn "~0.1.0" 547 | safer-buffer "^2.1.0" 548 | 549 | emoji-regex@^7.0.1: 550 | version "7.0.3" 551 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 552 | 553 | emoji-regex@^8.0.0: 554 | version "8.0.0" 555 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 556 | 557 | emojis-list@^3.0.0: 558 | version "3.0.0" 559 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" 560 | 561 | entities@^1.1.1, entities@~1.1.1: 562 | version "1.1.2" 563 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" 564 | 565 | entities@^2.0.0: 566 | version "2.0.3" 567 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" 568 | 569 | error-ex@^1.2.0: 570 | version "1.3.2" 571 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 572 | dependencies: 573 | is-arrayish "^0.2.1" 574 | 575 | es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: 576 | version "1.17.5" 577 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" 578 | dependencies: 579 | es-to-primitive "^1.2.1" 580 | function-bind "^1.1.1" 581 | has "^1.0.3" 582 | has-symbols "^1.0.1" 583 | is-callable "^1.1.5" 584 | is-regex "^1.0.5" 585 | object-inspect "^1.7.0" 586 | object-keys "^1.1.1" 587 | object.assign "^4.1.0" 588 | string.prototype.trimleft "^2.1.1" 589 | string.prototype.trimright "^2.1.1" 590 | 591 | es-to-primitive@^1.2.1: 592 | version "1.2.1" 593 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 594 | dependencies: 595 | is-callable "^1.1.4" 596 | is-date-object "^1.0.1" 597 | is-symbol "^1.0.2" 598 | 599 | esbuild@^0.18.10: 600 | version "0.18.20" 601 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" 602 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== 603 | optionalDependencies: 604 | "@esbuild/android-arm" "0.18.20" 605 | "@esbuild/android-arm64" "0.18.20" 606 | "@esbuild/android-x64" "0.18.20" 607 | "@esbuild/darwin-arm64" "0.18.20" 608 | "@esbuild/darwin-x64" "0.18.20" 609 | "@esbuild/freebsd-arm64" "0.18.20" 610 | "@esbuild/freebsd-x64" "0.18.20" 611 | "@esbuild/linux-arm" "0.18.20" 612 | "@esbuild/linux-arm64" "0.18.20" 613 | "@esbuild/linux-ia32" "0.18.20" 614 | "@esbuild/linux-loong64" "0.18.20" 615 | "@esbuild/linux-mips64el" "0.18.20" 616 | "@esbuild/linux-ppc64" "0.18.20" 617 | "@esbuild/linux-riscv64" "0.18.20" 618 | "@esbuild/linux-s390x" "0.18.20" 619 | "@esbuild/linux-x64" "0.18.20" 620 | "@esbuild/netbsd-x64" "0.18.20" 621 | "@esbuild/openbsd-x64" "0.18.20" 622 | "@esbuild/sunos-x64" "0.18.20" 623 | "@esbuild/win32-arm64" "0.18.20" 624 | "@esbuild/win32-ia32" "0.18.20" 625 | "@esbuild/win32-x64" "0.18.20" 626 | 627 | escape-string-regexp@^1.0.5: 628 | version "1.0.5" 629 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 630 | 631 | eslint-config-codex@^1.3.6: 632 | version "1.3.6" 633 | resolved "https://registry.yarnpkg.com/eslint-config-codex/-/eslint-config-codex-1.3.6.tgz#5f24e28326405091afeae17172dc414c1c973e83" 634 | dependencies: 635 | "@typescript-eslint/eslint-plugin" "^2.12.0" 636 | "@typescript-eslint/parser" "^2.12.0" 637 | eslint-config-standard "14.1.0" 638 | eslint-plugin-import "2.19.1" 639 | eslint-plugin-jsdoc "^22.1.0" 640 | eslint-plugin-node "10.0.0" 641 | eslint-plugin-promise "4.2.1" 642 | eslint-plugin-standard "4.0.1" 643 | typescript "^3.7.3" 644 | typescript-eslint "^0.0.1-alpha.0" 645 | 646 | eslint-config-standard@14.1.0: 647 | version "14.1.0" 648 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz#b23da2b76fe5a2eba668374f246454e7058f15d4" 649 | 650 | eslint-import-resolver-node@^0.3.2: 651 | version "0.3.3" 652 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" 653 | dependencies: 654 | debug "^2.6.9" 655 | resolve "^1.13.1" 656 | 657 | eslint-loader@^4.0.2: 658 | version "4.0.2" 659 | resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" 660 | dependencies: 661 | find-cache-dir "^3.3.1" 662 | fs-extra "^8.1.0" 663 | loader-utils "^2.0.0" 664 | object-hash "^2.0.3" 665 | schema-utils "^2.6.5" 666 | 667 | eslint-module-utils@^2.4.1: 668 | version "2.6.0" 669 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" 670 | dependencies: 671 | debug "^2.6.9" 672 | pkg-dir "^2.0.0" 673 | 674 | eslint-plugin-es@^2.0.0: 675 | version "2.0.0" 676 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" 677 | dependencies: 678 | eslint-utils "^1.4.2" 679 | regexpp "^3.0.0" 680 | 681 | eslint-plugin-import@2.19.1: 682 | version "2.19.1" 683 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" 684 | dependencies: 685 | array-includes "^3.0.3" 686 | array.prototype.flat "^1.2.1" 687 | contains-path "^0.1.0" 688 | debug "^2.6.9" 689 | doctrine "1.5.0" 690 | eslint-import-resolver-node "^0.3.2" 691 | eslint-module-utils "^2.4.1" 692 | has "^1.0.3" 693 | minimatch "^3.0.4" 694 | object.values "^1.1.0" 695 | read-pkg-up "^2.0.0" 696 | resolve "^1.12.0" 697 | 698 | eslint-plugin-jsdoc@^22.1.0: 699 | version "22.2.0" 700 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-22.2.0.tgz#b89159e01ed8eeee4f6512101e96cac6a2999461" 701 | dependencies: 702 | comment-parser "^0.7.2" 703 | debug "^4.1.1" 704 | jsdoctypeparser "^6.1.0" 705 | lodash "^4.17.15" 706 | regextras "^0.7.0" 707 | semver "^6.3.0" 708 | spdx-expression-parse "^3.0.0" 709 | 710 | eslint-plugin-node@10.0.0: 711 | version "10.0.0" 712 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6" 713 | dependencies: 714 | eslint-plugin-es "^2.0.0" 715 | eslint-utils "^1.4.2" 716 | ignore "^5.1.1" 717 | minimatch "^3.0.4" 718 | resolve "^1.10.1" 719 | semver "^6.1.0" 720 | 721 | eslint-plugin-promise@4.2.1: 722 | version "4.2.1" 723 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" 724 | 725 | eslint-plugin-standard@4.0.1: 726 | version "4.0.1" 727 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" 728 | 729 | eslint-scope@^5.0.0: 730 | version "5.1.0" 731 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" 732 | dependencies: 733 | esrecurse "^4.1.0" 734 | estraverse "^4.1.1" 735 | 736 | eslint-utils@^1.4.2: 737 | version "1.4.3" 738 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 739 | dependencies: 740 | eslint-visitor-keys "^1.1.0" 741 | 742 | eslint-utils@^2.0.0: 743 | version "2.0.0" 744 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" 745 | dependencies: 746 | eslint-visitor-keys "^1.1.0" 747 | 748 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.2.0: 749 | version "1.2.0" 750 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" 751 | 752 | eslint@^7.1.0: 753 | version "7.1.0" 754 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.1.0.tgz#d9a1df25e5b7859b0a3d86bb05f0940ab676a851" 755 | dependencies: 756 | "@babel/code-frame" "^7.0.0" 757 | ajv "^6.10.0" 758 | chalk "^4.0.0" 759 | cross-spawn "^7.0.2" 760 | debug "^4.0.1" 761 | doctrine "^3.0.0" 762 | eslint-scope "^5.0.0" 763 | eslint-utils "^2.0.0" 764 | eslint-visitor-keys "^1.1.0" 765 | espree "^7.0.0" 766 | esquery "^1.2.0" 767 | esutils "^2.0.2" 768 | file-entry-cache "^5.0.1" 769 | functional-red-black-tree "^1.0.1" 770 | glob-parent "^5.0.0" 771 | globals "^12.1.0" 772 | ignore "^4.0.6" 773 | import-fresh "^3.0.0" 774 | imurmurhash "^0.1.4" 775 | inquirer "^7.0.0" 776 | is-glob "^4.0.0" 777 | js-yaml "^3.13.1" 778 | json-stable-stringify-without-jsonify "^1.0.1" 779 | levn "^0.4.1" 780 | lodash "^4.17.14" 781 | minimatch "^3.0.4" 782 | natural-compare "^1.4.0" 783 | optionator "^0.9.1" 784 | progress "^2.0.0" 785 | regexpp "^3.1.0" 786 | semver "^7.2.1" 787 | strip-ansi "^6.0.0" 788 | strip-json-comments "^3.1.0" 789 | table "^5.2.3" 790 | text-table "^0.2.0" 791 | v8-compile-cache "^2.0.3" 792 | 793 | espree@^7.0.0: 794 | version "7.1.0" 795 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c" 796 | dependencies: 797 | acorn "^7.2.0" 798 | acorn-jsx "^5.2.0" 799 | eslint-visitor-keys "^1.2.0" 800 | 801 | esprima@^4.0.0: 802 | version "4.0.1" 803 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 804 | 805 | esquery@^1.2.0: 806 | version "1.3.1" 807 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" 808 | dependencies: 809 | estraverse "^5.1.0" 810 | 811 | esrecurse@^4.1.0: 812 | version "4.2.1" 813 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 814 | dependencies: 815 | estraverse "^4.1.0" 816 | 817 | estraverse@^4.1.0, estraverse@^4.1.1: 818 | version "4.3.0" 819 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 820 | 821 | estraverse@^5.1.0: 822 | version "5.1.0" 823 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" 824 | 825 | esutils@^2.0.2: 826 | version "2.0.3" 827 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 828 | 829 | extend@~3.0.2: 830 | version "3.0.2" 831 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 832 | 833 | external-editor@^3.0.3: 834 | version "3.1.0" 835 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 836 | dependencies: 837 | chardet "^0.7.0" 838 | iconv-lite "^0.4.24" 839 | tmp "^0.0.33" 840 | 841 | extsprintf@1.3.0: 842 | version "1.3.0" 843 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 844 | 845 | extsprintf@^1.2.0: 846 | version "1.4.0" 847 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 848 | 849 | fast-deep-equal@^3.1.1: 850 | version "3.1.1" 851 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" 852 | 853 | fast-json-stable-stringify@^2.0.0: 854 | version "2.1.0" 855 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 856 | 857 | fast-levenshtein@^2.0.6: 858 | version "2.0.6" 859 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 860 | 861 | figures@^3.0.0: 862 | version "3.2.0" 863 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 864 | dependencies: 865 | escape-string-regexp "^1.0.5" 866 | 867 | file-entry-cache@^5.0.1: 868 | version "5.0.1" 869 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 870 | dependencies: 871 | flat-cache "^2.0.1" 872 | 873 | find-cache-dir@^3.3.1: 874 | version "3.3.1" 875 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" 876 | dependencies: 877 | commondir "^1.0.1" 878 | make-dir "^3.0.2" 879 | pkg-dir "^4.1.0" 880 | 881 | find-up@^2.0.0, find-up@^2.1.0: 882 | version "2.1.0" 883 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 884 | dependencies: 885 | locate-path "^2.0.0" 886 | 887 | find-up@^4.0.0: 888 | version "4.1.0" 889 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 890 | dependencies: 891 | locate-path "^5.0.0" 892 | path-exists "^4.0.0" 893 | 894 | flat-cache@^2.0.1: 895 | version "2.0.1" 896 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 897 | dependencies: 898 | flatted "^2.0.0" 899 | rimraf "2.6.3" 900 | write "1.0.3" 901 | 902 | flatted@^2.0.0: 903 | version "2.0.2" 904 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 905 | 906 | forever-agent@~0.6.1: 907 | version "0.6.1" 908 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 909 | 910 | form-data@~2.3.2: 911 | version "2.3.3" 912 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 913 | dependencies: 914 | asynckit "^0.4.0" 915 | combined-stream "^1.0.6" 916 | mime-types "^2.1.12" 917 | 918 | fs-extra@^8.1.0: 919 | version "8.1.0" 920 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 921 | dependencies: 922 | graceful-fs "^4.2.0" 923 | jsonfile "^4.0.0" 924 | universalify "^0.1.0" 925 | 926 | fs.realpath@^1.0.0: 927 | version "1.0.0" 928 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 929 | 930 | fsevents@~2.3.2: 931 | version "2.3.3" 932 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 933 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 934 | 935 | function-bind@^1.1.1: 936 | version "1.1.1" 937 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 938 | 939 | functional-red-black-tree@^1.0.1: 940 | version "1.0.1" 941 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 942 | 943 | getpass@^0.1.1: 944 | version "0.1.7" 945 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 946 | dependencies: 947 | assert-plus "^1.0.0" 948 | 949 | glob-parent@^5.0.0: 950 | version "5.1.1" 951 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 952 | dependencies: 953 | is-glob "^4.0.1" 954 | 955 | glob@^7.1.3, glob@^7.1.6: 956 | version "7.1.6" 957 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 958 | dependencies: 959 | fs.realpath "^1.0.0" 960 | inflight "^1.0.4" 961 | inherits "2" 962 | minimatch "^3.0.4" 963 | once "^1.3.0" 964 | path-is-absolute "^1.0.0" 965 | 966 | globals@^12.1.0: 967 | version "12.4.0" 968 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 969 | dependencies: 970 | type-fest "^0.8.1" 971 | 972 | graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: 973 | version "4.2.4" 974 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 975 | 976 | har-schema@^2.0.0: 977 | version "2.0.0" 978 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 979 | 980 | har-validator@~5.1.3: 981 | version "5.1.3" 982 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" 983 | dependencies: 984 | ajv "^6.5.5" 985 | har-schema "^2.0.0" 986 | 987 | has-flag@^3.0.0: 988 | version "3.0.0" 989 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 990 | 991 | has-flag@^4.0.0: 992 | version "4.0.0" 993 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 994 | 995 | has-symbols@^1.0.0, has-symbols@^1.0.1: 996 | version "1.0.1" 997 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 998 | 999 | has@^1.0.3: 1000 | version "1.0.3" 1001 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1002 | dependencies: 1003 | function-bind "^1.1.1" 1004 | 1005 | hosted-git-info@^2.1.4: 1006 | version "2.8.9" 1007 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 1008 | 1009 | htmlparser2@^3.9.1: 1010 | version "3.10.1" 1011 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" 1012 | dependencies: 1013 | domelementtype "^1.3.1" 1014 | domhandler "^2.3.0" 1015 | domutils "^1.5.1" 1016 | entities "^1.1.1" 1017 | inherits "^2.0.1" 1018 | readable-stream "^3.1.1" 1019 | 1020 | http-signature@~1.2.0: 1021 | version "1.2.0" 1022 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 1023 | dependencies: 1024 | assert-plus "^1.0.0" 1025 | jsprim "^1.2.2" 1026 | sshpk "^1.7.0" 1027 | 1028 | iconv-lite@^0.4.24: 1029 | version "0.4.24" 1030 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1031 | dependencies: 1032 | safer-buffer ">= 2.1.2 < 3" 1033 | 1034 | ignore@^4.0.6: 1035 | version "4.0.6" 1036 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1037 | 1038 | ignore@^5.1.1: 1039 | version "5.1.8" 1040 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 1041 | 1042 | import-fresh@^3.0.0: 1043 | version "3.2.1" 1044 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 1045 | dependencies: 1046 | parent-module "^1.0.0" 1047 | resolve-from "^4.0.0" 1048 | 1049 | imurmurhash@^0.1.4: 1050 | version "0.1.4" 1051 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1052 | 1053 | indexes-of@^1.0.1: 1054 | version "1.0.1" 1055 | resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" 1056 | 1057 | inflight@^1.0.4: 1058 | version "1.0.6" 1059 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1060 | dependencies: 1061 | once "^1.3.0" 1062 | wrappy "1" 1063 | 1064 | inherits@2, inherits@^2.0.1, inherits@^2.0.3: 1065 | version "2.0.4" 1066 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1067 | 1068 | inquirer@^7.0.0: 1069 | version "7.1.0" 1070 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" 1071 | dependencies: 1072 | ansi-escapes "^4.2.1" 1073 | chalk "^3.0.0" 1074 | cli-cursor "^3.1.0" 1075 | cli-width "^2.0.0" 1076 | external-editor "^3.0.3" 1077 | figures "^3.0.0" 1078 | lodash "^4.17.15" 1079 | mute-stream "0.0.8" 1080 | run-async "^2.4.0" 1081 | rxjs "^6.5.3" 1082 | string-width "^4.1.0" 1083 | strip-ansi "^6.0.0" 1084 | through "^2.3.6" 1085 | 1086 | is-arrayish@^0.2.1: 1087 | version "0.2.1" 1088 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1089 | 1090 | is-callable@^1.1.4, is-callable@^1.1.5: 1091 | version "1.2.0" 1092 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" 1093 | 1094 | is-date-object@^1.0.1: 1095 | version "1.0.2" 1096 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 1097 | 1098 | is-extglob@^2.1.1: 1099 | version "2.1.1" 1100 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1101 | 1102 | is-fullwidth-code-point@^2.0.0: 1103 | version "2.0.0" 1104 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1105 | 1106 | is-fullwidth-code-point@^3.0.0: 1107 | version "3.0.0" 1108 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1109 | 1110 | is-glob@^4.0.0, is-glob@^4.0.1: 1111 | version "4.0.1" 1112 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1113 | dependencies: 1114 | is-extglob "^2.1.1" 1115 | 1116 | is-regex@^1.0.5: 1117 | version "1.1.0" 1118 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" 1119 | dependencies: 1120 | has-symbols "^1.0.1" 1121 | 1122 | is-string@^1.0.5: 1123 | version "1.0.5" 1124 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" 1125 | 1126 | is-symbol@^1.0.2: 1127 | version "1.0.3" 1128 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 1129 | dependencies: 1130 | has-symbols "^1.0.1" 1131 | 1132 | is-typedarray@~1.0.0: 1133 | version "1.0.0" 1134 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1135 | 1136 | isarray@^1.0.0: 1137 | version "1.0.0" 1138 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1139 | 1140 | isexe@^2.0.0: 1141 | version "2.0.0" 1142 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1143 | 1144 | isstream@~0.1.2: 1145 | version "0.1.2" 1146 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1147 | 1148 | js-tokens@^4.0.0: 1149 | version "4.0.0" 1150 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1151 | 1152 | js-yaml@^3.13.1: 1153 | version "3.14.0" 1154 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 1155 | dependencies: 1156 | argparse "^1.0.7" 1157 | esprima "^4.0.0" 1158 | 1159 | jsbn@~0.1.0: 1160 | version "0.1.1" 1161 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1162 | 1163 | jsdoctypeparser@^6.1.0: 1164 | version "6.1.0" 1165 | resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz#acfb936c26300d98f1405cb03e20b06748e512a8" 1166 | 1167 | json-schema-traverse@^0.4.1: 1168 | version "0.4.1" 1169 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1170 | 1171 | json-schema@0.2.3: 1172 | version "0.2.3" 1173 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1174 | 1175 | json-stable-stringify-without-jsonify@^1.0.1: 1176 | version "1.0.1" 1177 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1178 | 1179 | json-stringify-safe@~5.0.1: 1180 | version "5.0.1" 1181 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1182 | 1183 | json5@^2.1.2: 1184 | version "2.1.3" 1185 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" 1186 | dependencies: 1187 | minimist "^1.2.5" 1188 | 1189 | jsonfile@^4.0.0: 1190 | version "4.0.0" 1191 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1192 | optionalDependencies: 1193 | graceful-fs "^4.1.6" 1194 | 1195 | jsprim@^1.2.2: 1196 | version "1.4.1" 1197 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1198 | dependencies: 1199 | assert-plus "1.0.0" 1200 | extsprintf "1.3.0" 1201 | json-schema "0.2.3" 1202 | verror "1.10.0" 1203 | 1204 | levn@^0.4.1: 1205 | version "0.4.1" 1206 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1207 | dependencies: 1208 | prelude-ls "^1.2.1" 1209 | type-check "~0.4.0" 1210 | 1211 | load-json-file@^2.0.0: 1212 | version "2.0.0" 1213 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1214 | dependencies: 1215 | graceful-fs "^4.1.2" 1216 | parse-json "^2.2.0" 1217 | pify "^2.0.0" 1218 | strip-bom "^3.0.0" 1219 | 1220 | loader-utils@^2.0.0: 1221 | version "2.0.0" 1222 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" 1223 | dependencies: 1224 | big.js "^5.2.2" 1225 | emojis-list "^3.0.0" 1226 | json5 "^2.1.2" 1227 | 1228 | locate-path@^2.0.0: 1229 | version "2.0.0" 1230 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1231 | dependencies: 1232 | p-locate "^2.0.0" 1233 | path-exists "^3.0.0" 1234 | 1235 | locate-path@^5.0.0: 1236 | version "5.0.0" 1237 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1238 | dependencies: 1239 | p-locate "^4.1.0" 1240 | 1241 | lodash.assignin@^4.0.9: 1242 | version "4.2.0" 1243 | resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" 1244 | 1245 | lodash.bind@^4.1.4: 1246 | version "4.2.1" 1247 | resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" 1248 | 1249 | lodash.defaults@^4.0.1: 1250 | version "4.2.0" 1251 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" 1252 | 1253 | lodash.filter@^4.4.0: 1254 | version "4.6.0" 1255 | resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" 1256 | 1257 | lodash.flatten@^4.2.0: 1258 | version "4.4.0" 1259 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 1260 | 1261 | lodash.foreach@^4.3.0: 1262 | version "4.5.0" 1263 | resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" 1264 | 1265 | lodash.map@^4.4.0: 1266 | version "4.6.0" 1267 | resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" 1268 | 1269 | lodash.merge@^4.4.0: 1270 | version "4.6.2" 1271 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1272 | 1273 | lodash.pick@^4.2.1: 1274 | version "4.4.0" 1275 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 1276 | 1277 | lodash.reduce@^4.4.0: 1278 | version "4.6.0" 1279 | resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" 1280 | 1281 | lodash.reject@^4.4.0: 1282 | version "4.6.0" 1283 | resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" 1284 | 1285 | lodash.some@^4.4.0: 1286 | version "4.6.0" 1287 | resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" 1288 | 1289 | lodash@^4.17.14, lodash@^4.17.15: 1290 | version "4.17.21" 1291 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1292 | 1293 | make-dir@^3.0.2: 1294 | version "3.1.0" 1295 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1296 | dependencies: 1297 | semver "^6.0.0" 1298 | 1299 | mime-db@1.44.0: 1300 | version "1.44.0" 1301 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 1302 | 1303 | mime-types@^2.1.12, mime-types@~2.1.19: 1304 | version "2.1.27" 1305 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 1306 | dependencies: 1307 | mime-db "1.44.0" 1308 | 1309 | mimic-fn@^2.1.0: 1310 | version "2.1.0" 1311 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1312 | 1313 | minimatch@^3.0.4: 1314 | version "3.0.4" 1315 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1316 | dependencies: 1317 | brace-expansion "^1.1.7" 1318 | 1319 | minimist@^1.2.5: 1320 | version "1.2.5" 1321 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1322 | 1323 | mkdirp@^0.5.1: 1324 | version "0.5.5" 1325 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1326 | dependencies: 1327 | minimist "^1.2.5" 1328 | 1329 | ms@2.0.0: 1330 | version "2.0.0" 1331 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1332 | 1333 | ms@^2.1.1: 1334 | version "2.1.2" 1335 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1336 | 1337 | mute-stream@0.0.8: 1338 | version "0.0.8" 1339 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 1340 | 1341 | nanoid@^3.3.6: 1342 | version "3.3.7" 1343 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" 1344 | integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== 1345 | 1346 | natural-compare@^1.4.0: 1347 | version "1.4.0" 1348 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1349 | 1350 | normalize-package-data@^2.3.2: 1351 | version "2.5.0" 1352 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1353 | dependencies: 1354 | hosted-git-info "^2.1.4" 1355 | resolve "^1.10.0" 1356 | semver "2 || 3 || 4 || 5" 1357 | validate-npm-package-license "^3.0.1" 1358 | 1359 | nth-check@~1.0.1: 1360 | version "1.0.2" 1361 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" 1362 | dependencies: 1363 | boolbase "~1.0.0" 1364 | 1365 | oauth-sign@~0.9.0: 1366 | version "0.9.0" 1367 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 1368 | 1369 | object-hash@^2.0.3: 1370 | version "2.0.3" 1371 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea" 1372 | 1373 | object-inspect@^1.7.0: 1374 | version "1.7.0" 1375 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" 1376 | 1377 | object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: 1378 | version "1.1.1" 1379 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1380 | 1381 | object.assign@^4.1.0: 1382 | version "4.1.0" 1383 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1384 | dependencies: 1385 | define-properties "^1.1.2" 1386 | function-bind "^1.1.1" 1387 | has-symbols "^1.0.0" 1388 | object-keys "^1.0.11" 1389 | 1390 | object.values@^1.1.0: 1391 | version "1.1.1" 1392 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" 1393 | dependencies: 1394 | define-properties "^1.1.3" 1395 | es-abstract "^1.17.0-next.1" 1396 | function-bind "^1.1.1" 1397 | has "^1.0.3" 1398 | 1399 | once@^1.3.0: 1400 | version "1.4.0" 1401 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1402 | dependencies: 1403 | wrappy "1" 1404 | 1405 | onetime@^5.1.0: 1406 | version "5.1.0" 1407 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" 1408 | dependencies: 1409 | mimic-fn "^2.1.0" 1410 | 1411 | open-graph@^0.2.4: 1412 | version "0.2.6" 1413 | resolved "https://registry.yarnpkg.com/open-graph/-/open-graph-0.2.6.tgz#d473d8e4826bb8d4614516bdf0edbc3eed63e8c2" 1414 | dependencies: 1415 | cheerio "^0.22.0" 1416 | request "^2.73.0" 1417 | 1418 | optionator@^0.9.1: 1419 | version "0.9.1" 1420 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1421 | dependencies: 1422 | deep-is "^0.1.3" 1423 | fast-levenshtein "^2.0.6" 1424 | levn "^0.4.1" 1425 | prelude-ls "^1.2.1" 1426 | type-check "^0.4.0" 1427 | word-wrap "^1.2.3" 1428 | 1429 | os-tmpdir@~1.0.2: 1430 | version "1.0.2" 1431 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1432 | 1433 | p-limit@^1.1.0: 1434 | version "1.3.0" 1435 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1436 | dependencies: 1437 | p-try "^1.0.0" 1438 | 1439 | p-limit@^2.2.0: 1440 | version "2.3.0" 1441 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1442 | dependencies: 1443 | p-try "^2.0.0" 1444 | 1445 | p-locate@^2.0.0: 1446 | version "2.0.0" 1447 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1448 | dependencies: 1449 | p-limit "^1.1.0" 1450 | 1451 | p-locate@^4.1.0: 1452 | version "4.1.0" 1453 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1454 | dependencies: 1455 | p-limit "^2.2.0" 1456 | 1457 | p-try@^1.0.0: 1458 | version "1.0.0" 1459 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1460 | 1461 | p-try@^2.0.0: 1462 | version "2.2.0" 1463 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1464 | 1465 | parent-module@^1.0.0: 1466 | version "1.0.1" 1467 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1468 | dependencies: 1469 | callsites "^3.0.0" 1470 | 1471 | parse-json@^2.2.0: 1472 | version "2.2.0" 1473 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1474 | dependencies: 1475 | error-ex "^1.2.0" 1476 | 1477 | path-exists@^3.0.0: 1478 | version "3.0.0" 1479 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1480 | 1481 | path-exists@^4.0.0: 1482 | version "4.0.0" 1483 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1484 | 1485 | path-is-absolute@^1.0.0: 1486 | version "1.0.1" 1487 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1488 | 1489 | path-key@^3.1.0: 1490 | version "3.1.1" 1491 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1492 | 1493 | path-parse@^1.0.6: 1494 | version "1.0.7" 1495 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1496 | 1497 | path-type@^2.0.0: 1498 | version "2.0.0" 1499 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1500 | dependencies: 1501 | pify "^2.0.0" 1502 | 1503 | performance-now@^2.1.0: 1504 | version "2.1.0" 1505 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1506 | 1507 | picocolors@^1.0.0: 1508 | version "1.0.0" 1509 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1510 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1511 | 1512 | pify@^2.0.0: 1513 | version "2.3.0" 1514 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1515 | 1516 | pkg-dir@^2.0.0: 1517 | version "2.0.0" 1518 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1519 | dependencies: 1520 | find-up "^2.1.0" 1521 | 1522 | pkg-dir@^4.1.0: 1523 | version "4.2.0" 1524 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1525 | dependencies: 1526 | find-up "^4.0.0" 1527 | 1528 | postcss-nested-ancestors@^2.0.0: 1529 | version "2.0.0" 1530 | resolved "https://registry.yarnpkg.com/postcss-nested-ancestors/-/postcss-nested-ancestors-2.0.0.tgz#957ef27fb9e37cb082786d95b5e310d4b47470fe" 1531 | dependencies: 1532 | escape-string-regexp "^1.0.5" 1533 | postcss "^6.0.0" 1534 | postcss-resolve-nested-selector "^0.1.1" 1535 | 1536 | postcss-nested@^4.2.1: 1537 | version "4.2.1" 1538 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.1.tgz#4bc2e5b35e3b1e481ff81e23b700da7f82a8b248" 1539 | dependencies: 1540 | postcss "^7.0.21" 1541 | postcss-selector-parser "^6.0.2" 1542 | 1543 | postcss-resolve-nested-selector@^0.1.1: 1544 | version "0.1.1" 1545 | resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" 1546 | 1547 | postcss-selector-parser@^6.0.2: 1548 | version "6.0.2" 1549 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" 1550 | dependencies: 1551 | cssesc "^3.0.0" 1552 | indexes-of "^1.0.1" 1553 | uniq "^1.0.1" 1554 | 1555 | postcss@^6.0.0: 1556 | version "6.0.23" 1557 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" 1558 | dependencies: 1559 | chalk "^2.4.1" 1560 | source-map "^0.6.1" 1561 | supports-color "^5.4.0" 1562 | 1563 | postcss@^7.0.21: 1564 | version "7.0.32" 1565 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" 1566 | dependencies: 1567 | chalk "^2.4.2" 1568 | source-map "^0.6.1" 1569 | supports-color "^6.1.0" 1570 | 1571 | postcss@^8.4.27: 1572 | version "8.4.31" 1573 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" 1574 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== 1575 | dependencies: 1576 | nanoid "^3.3.6" 1577 | picocolors "^1.0.0" 1578 | source-map-js "^1.0.2" 1579 | 1580 | prelude-ls@^1.2.1: 1581 | version "1.2.1" 1582 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1583 | 1584 | progress@^2.0.0: 1585 | version "2.0.3" 1586 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1587 | 1588 | psl@^1.1.28: 1589 | version "1.8.0" 1590 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 1591 | 1592 | punycode@^2.1.0, punycode@^2.1.1: 1593 | version "2.1.1" 1594 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1595 | 1596 | qs@~6.5.2: 1597 | version "6.5.2" 1598 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1599 | 1600 | read-pkg-up@^2.0.0: 1601 | version "2.0.0" 1602 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1603 | dependencies: 1604 | find-up "^2.0.0" 1605 | read-pkg "^2.0.0" 1606 | 1607 | read-pkg@^2.0.0: 1608 | version "2.0.0" 1609 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1610 | dependencies: 1611 | load-json-file "^2.0.0" 1612 | normalize-package-data "^2.3.2" 1613 | path-type "^2.0.0" 1614 | 1615 | readable-stream@^3.1.1: 1616 | version "3.6.0" 1617 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 1618 | dependencies: 1619 | inherits "^2.0.3" 1620 | string_decoder "^1.1.1" 1621 | util-deprecate "^1.0.1" 1622 | 1623 | regenerator-runtime@^0.13.4: 1624 | version "0.13.5" 1625 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" 1626 | 1627 | regexpp@^3.0.0, regexpp@^3.1.0: 1628 | version "3.1.0" 1629 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 1630 | 1631 | regextras@^0.7.0: 1632 | version "0.7.1" 1633 | resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2" 1634 | 1635 | request@^2.73.0: 1636 | version "2.88.2" 1637 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" 1638 | dependencies: 1639 | aws-sign2 "~0.7.0" 1640 | aws4 "^1.8.0" 1641 | caseless "~0.12.0" 1642 | combined-stream "~1.0.6" 1643 | extend "~3.0.2" 1644 | forever-agent "~0.6.1" 1645 | form-data "~2.3.2" 1646 | har-validator "~5.1.3" 1647 | http-signature "~1.2.0" 1648 | is-typedarray "~1.0.0" 1649 | isstream "~0.1.2" 1650 | json-stringify-safe "~5.0.1" 1651 | mime-types "~2.1.19" 1652 | oauth-sign "~0.9.0" 1653 | performance-now "^2.1.0" 1654 | qs "~6.5.2" 1655 | safe-buffer "^5.1.2" 1656 | tough-cookie "~2.5.0" 1657 | tunnel-agent "^0.6.0" 1658 | uuid "^3.3.2" 1659 | 1660 | resolve-from@^4.0.0: 1661 | version "4.0.0" 1662 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1663 | 1664 | resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1: 1665 | version "1.17.0" 1666 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 1667 | dependencies: 1668 | path-parse "^1.0.6" 1669 | 1670 | restore-cursor@^3.1.0: 1671 | version "3.1.0" 1672 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1673 | dependencies: 1674 | onetime "^5.1.0" 1675 | signal-exit "^3.0.2" 1676 | 1677 | rimraf@2.6.3: 1678 | version "2.6.3" 1679 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1680 | dependencies: 1681 | glob "^7.1.3" 1682 | 1683 | rollup@^3.27.1: 1684 | version "3.29.4" 1685 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" 1686 | integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== 1687 | optionalDependencies: 1688 | fsevents "~2.3.2" 1689 | 1690 | run-async@^2.4.0: 1691 | version "2.4.1" 1692 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 1693 | 1694 | rxjs@^6.5.3: 1695 | version "6.5.5" 1696 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" 1697 | dependencies: 1698 | tslib "^1.9.0" 1699 | 1700 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: 1701 | version "5.2.1" 1702 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1703 | 1704 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 1705 | version "2.1.2" 1706 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1707 | 1708 | schema-utils@^2.6.5: 1709 | version "2.7.0" 1710 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" 1711 | dependencies: 1712 | "@types/json-schema" "^7.0.4" 1713 | ajv "^6.12.2" 1714 | ajv-keywords "^3.4.1" 1715 | 1716 | "semver@2 || 3 || 4 || 5": 1717 | version "5.7.1" 1718 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1719 | 1720 | semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: 1721 | version "6.3.0" 1722 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1723 | 1724 | semver@^7.2.1, semver@^7.3.2: 1725 | version "7.3.2" 1726 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" 1727 | 1728 | shebang-command@^2.0.0: 1729 | version "2.0.0" 1730 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1731 | dependencies: 1732 | shebang-regex "^3.0.0" 1733 | 1734 | shebang-regex@^3.0.0: 1735 | version "3.0.0" 1736 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1737 | 1738 | signal-exit@^3.0.2: 1739 | version "3.0.3" 1740 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1741 | 1742 | slice-ansi@^2.1.0: 1743 | version "2.1.0" 1744 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1745 | dependencies: 1746 | ansi-styles "^3.2.0" 1747 | astral-regex "^1.0.0" 1748 | is-fullwidth-code-point "^2.0.0" 1749 | 1750 | source-map-js@^1.0.2: 1751 | version "1.0.2" 1752 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1753 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1754 | 1755 | source-map@^0.6.1: 1756 | version "0.6.1" 1757 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1758 | 1759 | spdx-correct@^3.0.0: 1760 | version "3.1.1" 1761 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1762 | dependencies: 1763 | spdx-expression-parse "^3.0.0" 1764 | spdx-license-ids "^3.0.0" 1765 | 1766 | spdx-exceptions@^2.1.0: 1767 | version "2.3.0" 1768 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1769 | 1770 | spdx-expression-parse@^3.0.0: 1771 | version "3.0.1" 1772 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1773 | dependencies: 1774 | spdx-exceptions "^2.1.0" 1775 | spdx-license-ids "^3.0.0" 1776 | 1777 | spdx-license-ids@^3.0.0: 1778 | version "3.0.5" 1779 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 1780 | 1781 | sprintf-js@~1.0.2: 1782 | version "1.0.3" 1783 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1784 | 1785 | sshpk@^1.7.0: 1786 | version "1.16.1" 1787 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 1788 | dependencies: 1789 | asn1 "~0.2.3" 1790 | assert-plus "^1.0.0" 1791 | bcrypt-pbkdf "^1.0.0" 1792 | dashdash "^1.12.0" 1793 | ecc-jsbn "~0.1.1" 1794 | getpass "^0.1.1" 1795 | jsbn "~0.1.0" 1796 | safer-buffer "^2.0.2" 1797 | tweetnacl "~0.14.0" 1798 | 1799 | string-width@^3.0.0: 1800 | version "3.1.0" 1801 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1802 | dependencies: 1803 | emoji-regex "^7.0.1" 1804 | is-fullwidth-code-point "^2.0.0" 1805 | strip-ansi "^5.1.0" 1806 | 1807 | string-width@^4.1.0: 1808 | version "4.2.0" 1809 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1810 | dependencies: 1811 | emoji-regex "^8.0.0" 1812 | is-fullwidth-code-point "^3.0.0" 1813 | strip-ansi "^6.0.0" 1814 | 1815 | string.prototype.trimend@^1.0.0: 1816 | version "1.0.1" 1817 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" 1818 | dependencies: 1819 | define-properties "^1.1.3" 1820 | es-abstract "^1.17.5" 1821 | 1822 | string.prototype.trimleft@^2.1.1: 1823 | version "2.1.2" 1824 | resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" 1825 | dependencies: 1826 | define-properties "^1.1.3" 1827 | es-abstract "^1.17.5" 1828 | string.prototype.trimstart "^1.0.0" 1829 | 1830 | string.prototype.trimright@^2.1.1: 1831 | version "2.1.2" 1832 | resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" 1833 | dependencies: 1834 | define-properties "^1.1.3" 1835 | es-abstract "^1.17.5" 1836 | string.prototype.trimend "^1.0.0" 1837 | 1838 | string.prototype.trimstart@^1.0.0: 1839 | version "1.0.1" 1840 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" 1841 | dependencies: 1842 | define-properties "^1.1.3" 1843 | es-abstract "^1.17.5" 1844 | 1845 | string_decoder@^1.1.1: 1846 | version "1.3.0" 1847 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1848 | dependencies: 1849 | safe-buffer "~5.2.0" 1850 | 1851 | strip-ansi@^5.1.0: 1852 | version "5.2.0" 1853 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1854 | dependencies: 1855 | ansi-regex "^4.1.0" 1856 | 1857 | strip-ansi@^6.0.0: 1858 | version "6.0.0" 1859 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1860 | dependencies: 1861 | ansi-regex "^5.0.0" 1862 | 1863 | strip-bom@^3.0.0: 1864 | version "3.0.0" 1865 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1866 | 1867 | strip-json-comments@^3.1.0: 1868 | version "3.1.0" 1869 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" 1870 | 1871 | supports-color@^5.3.0, supports-color@^5.4.0: 1872 | version "5.5.0" 1873 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1874 | dependencies: 1875 | has-flag "^3.0.0" 1876 | 1877 | supports-color@^6.1.0: 1878 | version "6.1.0" 1879 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" 1880 | dependencies: 1881 | has-flag "^3.0.0" 1882 | 1883 | supports-color@^7.1.0: 1884 | version "7.1.0" 1885 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1886 | dependencies: 1887 | has-flag "^4.0.0" 1888 | 1889 | table@^5.2.3: 1890 | version "5.4.6" 1891 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1892 | dependencies: 1893 | ajv "^6.10.2" 1894 | lodash "^4.17.14" 1895 | slice-ansi "^2.1.0" 1896 | string-width "^3.0.0" 1897 | 1898 | text-table@^0.2.0: 1899 | version "0.2.0" 1900 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1901 | 1902 | through@^2.3.6: 1903 | version "2.3.8" 1904 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1905 | 1906 | tmp@^0.0.33: 1907 | version "0.0.33" 1908 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1909 | dependencies: 1910 | os-tmpdir "~1.0.2" 1911 | 1912 | tough-cookie@~2.5.0: 1913 | version "2.5.0" 1914 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" 1915 | dependencies: 1916 | psl "^1.1.28" 1917 | punycode "^2.1.1" 1918 | 1919 | tslib@^1.8.1, tslib@^1.9.0: 1920 | version "1.13.0" 1921 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" 1922 | 1923 | tsutils@^3.17.1: 1924 | version "3.17.1" 1925 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" 1926 | dependencies: 1927 | tslib "^1.8.1" 1928 | 1929 | tunnel-agent@^0.6.0: 1930 | version "0.6.0" 1931 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1932 | dependencies: 1933 | safe-buffer "^5.0.1" 1934 | 1935 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1936 | version "0.14.5" 1937 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1938 | 1939 | type-check@^0.4.0, type-check@~0.4.0: 1940 | version "0.4.0" 1941 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1942 | dependencies: 1943 | prelude-ls "^1.2.1" 1944 | 1945 | type-fest@^0.11.0: 1946 | version "0.11.0" 1947 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" 1948 | 1949 | type-fest@^0.8.1: 1950 | version "0.8.1" 1951 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1952 | 1953 | typescript-eslint@^0.0.1-alpha.0: 1954 | version "0.0.1-alpha.0" 1955 | resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-0.0.1-alpha.0.tgz#285d68a4e96588295cd436278801bcb6a6b916c1" 1956 | 1957 | typescript@^3.7.3: 1958 | version "3.9.5" 1959 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" 1960 | 1961 | uniq@^1.0.1: 1962 | version "1.0.1" 1963 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 1964 | 1965 | universalify@^0.1.0: 1966 | version "0.1.2" 1967 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1968 | 1969 | uri-js@^4.2.2: 1970 | version "4.2.2" 1971 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1972 | dependencies: 1973 | punycode "^2.1.0" 1974 | 1975 | url-polyfill@^1.1.9: 1976 | version "1.1.9" 1977 | resolved "https://registry.yarnpkg.com/url-polyfill/-/url-polyfill-1.1.9.tgz#2c8d4224889a5c942800f708f5585368085603d9" 1978 | 1979 | util-deprecate@^1.0.1: 1980 | version "1.0.2" 1981 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1982 | 1983 | uuid@^3.3.2: 1984 | version "3.4.0" 1985 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 1986 | 1987 | v8-compile-cache@^2.0.3: 1988 | version "2.1.1" 1989 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" 1990 | 1991 | validate-npm-package-license@^3.0.1: 1992 | version "3.0.4" 1993 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1994 | dependencies: 1995 | spdx-correct "^3.0.0" 1996 | spdx-expression-parse "^3.0.0" 1997 | 1998 | verror@1.10.0: 1999 | version "1.10.0" 2000 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 2001 | dependencies: 2002 | assert-plus "^1.0.0" 2003 | core-util-is "1.0.2" 2004 | extsprintf "^1.2.0" 2005 | 2006 | vite-plugin-css-injected-by-js@^3.3.0: 2007 | version "3.3.0" 2008 | resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.3.0.tgz#c19480a9e42a95c5bced976a9dde1446f9bd91ff" 2009 | integrity sha512-xG+jyHNCmUqi/TXp6q88wTJGeAOrNLSyUUTp4qEQ9QZLGcHWQQsCsSSKa59rPMQr8sOzfzmWDd8enGqfH/dBew== 2010 | 2011 | vite@^4.5.0: 2012 | version "4.5.0" 2013 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" 2014 | integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== 2015 | dependencies: 2016 | esbuild "^0.18.10" 2017 | postcss "^8.4.27" 2018 | rollup "^3.27.1" 2019 | optionalDependencies: 2020 | fsevents "~2.3.2" 2021 | 2022 | which@^2.0.1: 2023 | version "2.0.2" 2024 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2025 | dependencies: 2026 | isexe "^2.0.0" 2027 | 2028 | word-wrap@^1.2.3: 2029 | version "1.2.3" 2030 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2031 | 2032 | wrappy@1: 2033 | version "1.0.2" 2034 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2035 | 2036 | write@1.0.3: 2037 | version "1.0.3" 2038 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 2039 | dependencies: 2040 | mkdirp "^0.5.1" 2041 | --------------------------------------------------------------------------------