├── .gitignore ├── .github └── FUNDING.yml ├── .babelrc ├── src ├── iframeManager.js ├── codeManager.js ├── codeBlock.js ├── editorManager.js └── index.js ├── dist ├── iframe.js ├── tutorialMarkdown.umd.js └── tutorialMarkdown.umd.js.map ├── rollup.config.js ├── package.json ├── .eslintrc.json ├── readme.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [tholman] 2 | custom: ['https://www.buymeacoffee.com/tholman'] 3 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { 4 | "targets": { 5 | "browsers": ["last 2 versions"] 6 | }, 7 | "modules": false 8 | }]] 9 | } -------------------------------------------------------------------------------- /src/iframeManager.js: -------------------------------------------------------------------------------- 1 | class IframeManager { 2 | 3 | constructor(options) { 4 | this.iframe = options.iframe 5 | } 6 | 7 | sendCode(code) { 8 | this.iframe.contentWindow.postMessage(code, '*') 9 | } 10 | } 11 | 12 | export default IframeManager -------------------------------------------------------------------------------- /dist/iframe.js: -------------------------------------------------------------------------------- 1 | window.addEventListener('message', receiveMessage, false) 2 | 3 | function receiveMessage(event) { 4 | 5 | var scripts = document.getElementById('injected') 6 | if( scripts ) { 7 | scripts.parentNode.removeChild(scripts) 8 | } 9 | 10 | var script = document.createElement('script') 11 | script.id = 'injected' 12 | script.innerHTML = event.data 13 | document.body.appendChild(script) 14 | } -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel' 2 | import { eslint } from 'rollup-plugin-eslint' 3 | 4 | const config = { 5 | input: 'src/index.js', 6 | plugins: [ 7 | eslint({ exclude: [] }), 8 | babel({ 9 | exclude: 'node_modules/**', 10 | }) 11 | ] 12 | } 13 | 14 | export default [{ 15 | ...config, 16 | output: { 17 | format: 'umd', 18 | name: 'TutorialMarkdown', 19 | file: 'dist/tutorialMarkdown.umd.js', 20 | sourcemap: true 21 | } 22 | }] -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tutorial-markdown", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "repository": "https://github.com/tholman/tutorial-markdown.git", 6 | "author": "Tim Holman ", 7 | "license": "MIT", 8 | "scripts": { 9 | "build": "NODE_ENV=production rollup -c", 10 | "watch": "rollup -c --watch" 11 | }, 12 | "devDependencies": { 13 | "@babel/core": "^7.6.0", 14 | "@babel/preset-env": "^7.6.0", 15 | "rollup": "^1.21.3", 16 | "rollup-plugin-babel": "^4.3.3", 17 | "rollup-plugin-eslint": "^7.0.0" 18 | }, 19 | "dependencies": {} 20 | } 21 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "parserOptions": { 8 | "sourceType": "module", 9 | "ecmaVersion": 2018 10 | }, 11 | "rules": { 12 | "indent": [ 13 | "error", 14 | 2 15 | ], 16 | "linebreak-style": [ 17 | "error", 18 | "unix" 19 | ], 20 | "quotes": [ 21 | "error", 22 | "single" 23 | ], 24 | "semi": [ 25 | "error", 26 | "never" 27 | ] 28 | } 29 | } -------------------------------------------------------------------------------- /src/codeManager.js: -------------------------------------------------------------------------------- 1 | import CodeBlock from './codeBlock' 2 | 3 | class CodeManager { 4 | 5 | constructor(options) { 6 | this.codeBlocks = [] 7 | const { blockSelector, codeSelector } = options.selectors 8 | 9 | this.blockSelector = options.blockSelector 10 | 11 | let blockElements = document.querySelectorAll(blockSelector) 12 | for (let i = 0; i < blockElements.length; i++) { 13 | this.codeBlocks.push(new CodeBlock(blockElements[i], codeSelector, options.tabSize)) 14 | } 15 | } 16 | 17 | getStep() { 18 | for (let i = this.codeBlocks.length - 1; i >= 0; i--) { 19 | if (this.codeBlocks[i].shouldBeActive()) { 20 | return i 21 | } 22 | } 23 | return -1 24 | } 25 | 26 | getBlockByStep(step) { 27 | return this.codeBlocks[step] 28 | } 29 | } 30 | 31 | export default CodeManager -------------------------------------------------------------------------------- /src/codeBlock.js: -------------------------------------------------------------------------------- 1 | class CodeBlock { 2 | constructor(element, codeSelector, tabSize) { 3 | this.element = element 4 | this.from = parseInt(element.getAttribute('data-from')) 5 | this.to = element.getAttribute('data-to') 6 | this.indent = parseInt(element.getAttribute('data-indent')) || 0 7 | 8 | let code = null 9 | if( codeSelector ) { 10 | code = element.querySelector(codeSelector).innerText 11 | } else { 12 | code = element.innerText 13 | } 14 | 15 | this.code = this.prepareCode(code, tabSize) 16 | 17 | 18 | this.lines = this.code.split('\n').length 19 | 20 | // Set "TO" value to from + lines it isn't set 21 | this.to = this.to ? parseInt(this.to) : this.from + this.lines 22 | } 23 | 24 | prepareCode(code, tabSize) { 25 | let parsedCode = code.split('\n') 26 | 27 | // Add indentation 28 | parsedCode = parsedCode.map( 29 | string => { 30 | if( string !== ''){ 31 | return ' '.repeat(tabSize * this.indent) + string 32 | } else { 33 | return string 34 | } 35 | } 36 | ) 37 | 38 | parsedCode = parsedCode.join('\n') 39 | 40 | // If the last item isn't a new line, add it 41 | if( parsedCode[parsedCode.length-1] !== '\n' ) { 42 | parsedCode += '\n' 43 | } 44 | 45 | return parsedCode 46 | } 47 | 48 | shouldBeActive() { 49 | const rect = this.element.getBoundingClientRect() 50 | 51 | // 1/3 of rect is at 1/2 of window 52 | return (rect.top + rect.height/3) < (window.innerHeight / 2) 53 | } 54 | } 55 | 56 | export default CodeBlock -------------------------------------------------------------------------------- /src/editorManager.js: -------------------------------------------------------------------------------- 1 | 2 | class EditorManager { 3 | 4 | constructor(options) { 5 | this.hasTyped = false 6 | this.lastExecuted = null 7 | 8 | const {editor} = options 9 | this.editor = editor.editor 10 | this.api = editor.api 11 | 12 | this.editor.onKeyDown(() => { 13 | this.hasTyped = true 14 | }) 15 | } 16 | 17 | executeBlock(block) { 18 | 19 | if(this.hasTyped) { 20 | this.hasTyped = false 21 | this.replaceWith(this.lastExecuted) 22 | } 23 | 24 | // If we are trying to append beyond the current line count, add the lines 25 | const lineCount = this.editor.getModel().getLineCount() 26 | if(lineCount < block.from) { 27 | const linesNeeded = block.from - lineCount 28 | const range = new this.api.Range(block.from, 1, block.from + linesNeeded, 1) 29 | const newLines = '\n'.repeat(linesNeeded) 30 | const operation = { 31 | identifier: { major: 1, minor: 1 }, 32 | range: range, 33 | text: newLines, 34 | forceMoveMarkers: true 35 | } 36 | 37 | this.editor.executeEdits(newLines, [operation]) 38 | } 39 | 40 | const range = new this.api.Range(block.from, 1, block.to, 1) 41 | const operation = { 42 | identifier: { major: 1, minor: 1 }, 43 | range: range, 44 | text: block.code, 45 | forceMoveMarkers: true 46 | } 47 | 48 | this.editor.executeEdits(block.code, [operation]) 49 | this.editor.revealLines( 50 | block.from, 51 | block.from + block.lines 52 | ) 53 | 54 | // Save last state (to undo any manually typed code) 55 | this.lastExecuted = this.getCode() 56 | } 57 | 58 | replaceWith(code) { 59 | const range = new this.api.Range(0, 1, 9999, 1) 60 | const operation = { 61 | identifier: { major: 1, minor: 1 }, 62 | range: range, 63 | text: code, 64 | forceMoveMarkers: true 65 | } 66 | this.editor.executeEdits(code, [operation]) 67 | } 68 | 69 | getCode() { 70 | return this.editor.getValue() 71 | } 72 | } 73 | 74 | export default EditorManager -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import CodeManager from './codeManager' 2 | import EditorManager from './editorManager' 3 | import IframeManager from './iframeManager' 4 | 5 | class TutorialMarkdown { 6 | 7 | constructor(options) { 8 | 9 | const {editor} = options 10 | this.scheduled = false 11 | this.currentStep = -1 12 | 13 | this.editorManager = new EditorManager({editor}) 14 | this.iframeManager = new IframeManager({iframe: options.iframe}) 15 | 16 | this.codeManager = new CodeManager({ 17 | selectors: options.markdownSelector, 18 | tabSize: editor.editor.getModel()._options.tabSize 19 | }) 20 | 21 | // Saving the post executed state, so when we step backwards we can 22 | // reapply previous set information 23 | this.savedSteps = [this.editorManager.getCode()] 24 | 25 | this.throttleScroll = this.throttleScroll.bind(this) 26 | this.sendCode = this.sendCode.bind(this) 27 | this.create() 28 | } 29 | 30 | throttleScroll() { 31 | if (!this.scheduled) { 32 | this.scheduled = true 33 | window.requestAnimationFrame(() => { 34 | this.scheduled = false 35 | this.onScroll() 36 | }) 37 | } 38 | } 39 | 40 | onScroll() { 41 | const step = this.codeManager.getStep() 42 | if(step > this.currentStep) { 43 | 44 | for( let i = this.currentStep + 1; i <= step; i++ ) { 45 | this.stepForward(i) 46 | } 47 | 48 | } else if (step < this.currentStep) { 49 | this.stepBackward(step) 50 | } 51 | 52 | this.currentStep = step 53 | } 54 | 55 | stepForward(step) { 56 | const block = this.codeManager.getBlockByStep(step) 57 | this.editorManager.executeBlock(block) 58 | 59 | const currentCode = this.editorManager.getCode() 60 | 61 | if(!this.savedSteps[step + 1]) { 62 | this.savedSteps.push(currentCode) 63 | } 64 | 65 | this.iframeManager.sendCode(currentCode) 66 | 67 | return step 68 | } 69 | 70 | stepBackward(step) { 71 | this.editorManager.replaceWith(this.savedSteps[step + 1]) 72 | const currentCode = this.editorManager.getCode() 73 | this.iframeManager.sendCode(currentCode) 74 | } 75 | 76 | create() { 77 | window.addEventListener('scroll', this.throttleScroll) 78 | } 79 | 80 | destroy() { 81 | window.removeEventListener('scroll', this.throttleScroll) 82 | } 83 | 84 | sendCode() { 85 | const currentCode = this.editorManager.getCode() 86 | this.iframeManager.sendCode(currentCode) 87 | } 88 | } 89 | 90 | export default TutorialMarkdown -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Tutorial Markdown 2 | 3 | Tutorial markdown is a small js library, which allows (with some data attributes) for a tutorial to type, and execute its code as you scroll through the document. You can see an example of it working on [generative artistry](https://generativeartistry.com). 4 | 5 | Currently the system is geared towards showing visual javascript work on things like the canvas, so there will probably be some things pop up when trying to do other things, but please, report an issue for anything like that and we can grow the library together. 6 | 7 | ## The How 8 | 9 | To run an interactive tutorial there are several parts that you will need to set up to act together, without all of them in place, we don't get to see any magic. These are: 10 | 11 | ### 1. Correct code marking 12 | 13 | When you are marking your code blocks, you'll need to use the correct `data-` attributes. These are what will be parsed into instructions for the editor to display, and the iframe to run. You'll also need a consistent class name that marks all blocks. 14 | 15 | There are only a few data attributes that tutorial markdown runs off 16 | 17 | 1. `data-from` (mandatory) is the line number where you intend your new code to be injected from. 18 | 1. `data-to` (optional) if you set a data-to all code between the from and to line will be replaced with your new code 19 | 1. `data-indent` (optional) indents your code to the level, so you don't need to indent code blocks needlessly in the markdown. 20 | 21 | You can see examples of these in the [generative artistry posts](https://raw.githubusercontent.com/tholman/generative-artistry/master/content/tutorials/tiled-lines.md) ... for example, in the previous link, there is the line `
...
`, inside this div is the code I want to send to the editor and iframe. The `data-from` says, start from line 10, and the `data-to` says, replace all code between line 10 and 11 with the contents. 22 | 23 | ### 2. The `editor` and `iframe` on the page 24 | 25 | Currently tutorial markdown only supports windows [monaco editor](https://github.com/Microsoft/monaco-editor) ... although its been built to have others in mind, the support isn't implemented just yet. You will need to initialize a new "editor" and have the variable on hand. 26 | 27 | The "iframe" is an iframe on your page, set up by you with the html you want to run your tutorial. In this iframe, you'll need some code that handles tutorialMarkdown sending messages to it. This can be found in [dist](https://github.com/tholman/tutorial-markdown/blob/master/dist/iframe.js) ... In the examples on [generativeArtistry](https://github.com/tholman/generative-artistry/blob/master/themes/generative-artistry/static/utils/injectable-iframe.html) you can see this set up with a canvas. 28 | 29 | The Iframe needs to have the `iframe.js` script included in dist, within the file, this lets it recieve the code and add it during each step. 30 | 31 | ### 3. Correct tutorial markdown initiation and variables 32 | 33 | Once you have included the tutorial markdown js file (available in /dist) you'll need to initialize it, here's an example. 34 | 35 | ``` 36 | new TutorialMarkdown({ 37 | editor: { 38 | editor: value, 39 | api: value 40 | }, 41 | iframe: value, 42 | markdownSelector: { 43 | blockSelector: value 44 | codeSelector: value 45 | } 46 | }) 47 | ``` 48 | 49 | The `values` here are as follows. 50 | 51 | - `editor` is the Monaco code editor you have created on page 52 | - `api` is the global variable created by adding the monaco script, allows tutorial markdown to access some of its functions 53 | - `iframe` is the iframe in which tutorial markdown will send the code to run 54 | - `blockSelector` is the selector (classname or id) which holds the blocks of code you want to be run by the system 55 | - `codeSelector` is an optional variable which allows you to select the element that contains the code, within the `blockSelector` element... this is because these blocks often contain line numbers and other non relavent code. 56 | 57 | All together these will make tutorial markdown work. 58 | 59 | ## The Other Things 60 | 61 | In order to keep things simpler, there are certain pieces that tutorial markdown is not running, for example, how your page is styled. In the example you can see the editor and iframe set up in a way that keeps them on the page (with position sticky) you will need to do the same. 62 | 63 | The iframe itself needs to be styled and set up by you. In the examples this includes adding a canvas, and styling it to take up the full frame. 64 | 65 | There is an additional function you may call on your TutorialMarkdown instance, named `sendCode` calling this will re-send whatever is in the editor to the iframe. This can be seen in [generative artistry](https://generativeartistry.com), clicking the small arrow means that people can edit their own code, and send the result. Anything sent will be forgotten when another code block is sent to the editor. 66 | -------------------------------------------------------------------------------- /dist/tutorialMarkdown.umd.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (global = global || self, global.TutorialMarkdown = factory()); 5 | }(this, function () { 'use strict'; 6 | 7 | function _classCallCheck(instance, Constructor) { 8 | if (!(instance instanceof Constructor)) { 9 | throw new TypeError("Cannot call a class as a function"); 10 | } 11 | } 12 | 13 | function _defineProperties(target, props) { 14 | for (var i = 0; i < props.length; i++) { 15 | var descriptor = props[i]; 16 | descriptor.enumerable = descriptor.enumerable || false; 17 | descriptor.configurable = true; 18 | if ("value" in descriptor) descriptor.writable = true; 19 | Object.defineProperty(target, descriptor.key, descriptor); 20 | } 21 | } 22 | 23 | function _createClass(Constructor, protoProps, staticProps) { 24 | if (protoProps) _defineProperties(Constructor.prototype, protoProps); 25 | if (staticProps) _defineProperties(Constructor, staticProps); 26 | return Constructor; 27 | } 28 | 29 | var CodeBlock = 30 | /*#__PURE__*/ 31 | function () { 32 | function CodeBlock(element, codeSelector, tabSize) { 33 | _classCallCheck(this, CodeBlock); 34 | 35 | this.element = element; 36 | this.from = parseInt(element.getAttribute('data-from')); 37 | this.to = element.getAttribute('data-to'); 38 | this.indent = parseInt(element.getAttribute('data-indent')) || 0; 39 | var code = null; 40 | 41 | if (codeSelector) { 42 | code = element.querySelector(codeSelector).innerText; 43 | } else { 44 | code = element.innerText; 45 | } 46 | 47 | this.code = this.prepareCode(code, tabSize); 48 | this.lines = this.code.split('\n').length; // Set "TO" value to from + lines it isn't set 49 | 50 | this.to = this.to ? parseInt(this.to) : this.from + this.lines; 51 | } 52 | 53 | _createClass(CodeBlock, [{ 54 | key: "prepareCode", 55 | value: function prepareCode(code, tabSize) { 56 | var _this = this; 57 | 58 | var parsedCode = code.split('\n'); // Add indentation 59 | 60 | parsedCode = parsedCode.map(function (string) { 61 | if (string !== '') { 62 | return ' '.repeat(tabSize * _this.indent) + string; 63 | } else { 64 | return string; 65 | } 66 | }); 67 | parsedCode = parsedCode.join('\n'); // If the last item isn't a new line, add it 68 | 69 | if (parsedCode[parsedCode.length - 1] !== '\n') { 70 | parsedCode += '\n'; 71 | } 72 | 73 | return parsedCode; 74 | } 75 | }, { 76 | key: "shouldBeActive", 77 | value: function shouldBeActive() { 78 | var rect = this.element.getBoundingClientRect(); // 1/3 of rect is at 1/2 of window 79 | 80 | return rect.top + rect.height / 3 < window.innerHeight / 2; 81 | } 82 | }]); 83 | 84 | return CodeBlock; 85 | }(); 86 | 87 | var CodeManager = 88 | /*#__PURE__*/ 89 | function () { 90 | function CodeManager(options) { 91 | _classCallCheck(this, CodeManager); 92 | 93 | this.codeBlocks = []; 94 | var _options$selectors = options.selectors, 95 | blockSelector = _options$selectors.blockSelector, 96 | codeSelector = _options$selectors.codeSelector; 97 | this.blockSelector = options.blockSelector; 98 | var blockElements = document.querySelectorAll(blockSelector); 99 | 100 | for (var i = 0; i < blockElements.length; i++) { 101 | this.codeBlocks.push(new CodeBlock(blockElements[i], codeSelector, options.tabSize)); 102 | } 103 | } 104 | 105 | _createClass(CodeManager, [{ 106 | key: "getStep", 107 | value: function getStep() { 108 | for (var i = this.codeBlocks.length - 1; i >= 0; i--) { 109 | if (this.codeBlocks[i].shouldBeActive()) { 110 | return i; 111 | } 112 | } 113 | 114 | return -1; 115 | } 116 | }, { 117 | key: "getBlockByStep", 118 | value: function getBlockByStep(step) { 119 | return this.codeBlocks[step]; 120 | } 121 | }]); 122 | 123 | return CodeManager; 124 | }(); 125 | 126 | var EditorManager = 127 | /*#__PURE__*/ 128 | function () { 129 | function EditorManager(options) { 130 | var _this = this; 131 | 132 | _classCallCheck(this, EditorManager); 133 | 134 | this.hasTyped = false; 135 | this.lastExecuted = null; 136 | var editor = options.editor; 137 | this.editor = editor.editor; 138 | this.api = editor.api; 139 | this.editor.onKeyDown(function () { 140 | _this.hasTyped = true; 141 | }); 142 | } 143 | 144 | _createClass(EditorManager, [{ 145 | key: "executeBlock", 146 | value: function executeBlock(block) { 147 | if (this.hasTyped) { 148 | this.hasTyped = false; 149 | this.replaceWith(this.lastExecuted); 150 | } // If we are trying to append beyond the current line count, add the lines 151 | 152 | 153 | var lineCount = this.editor.getModel().getLineCount(); 154 | 155 | if (lineCount < block.from) { 156 | var linesNeeded = block.from - lineCount; 157 | 158 | var _range = new this.api.Range(block.from, 1, block.from + linesNeeded, 1); 159 | 160 | var newLines = '\n'.repeat(linesNeeded); 161 | var _operation = { 162 | identifier: { 163 | major: 1, 164 | minor: 1 165 | }, 166 | range: _range, 167 | text: newLines, 168 | forceMoveMarkers: true 169 | }; 170 | this.editor.executeEdits(newLines, [_operation]); 171 | } 172 | 173 | var range = new this.api.Range(block.from, 1, block.to, 1); 174 | var operation = { 175 | identifier: { 176 | major: 1, 177 | minor: 1 178 | }, 179 | range: range, 180 | text: block.code, 181 | forceMoveMarkers: true 182 | }; 183 | this.editor.executeEdits(block.code, [operation]); 184 | this.editor.revealLines(block.from, block.from + block.lines); // Save last state (to undo any manually typed code) 185 | 186 | this.lastExecuted = this.getCode(); 187 | } 188 | }, { 189 | key: "replaceWith", 190 | value: function replaceWith(code) { 191 | var range = new this.api.Range(0, 1, 9999, 1); 192 | var operation = { 193 | identifier: { 194 | major: 1, 195 | minor: 1 196 | }, 197 | range: range, 198 | text: code, 199 | forceMoveMarkers: true 200 | }; 201 | this.editor.executeEdits(code, [operation]); 202 | } 203 | }, { 204 | key: "getCode", 205 | value: function getCode() { 206 | return this.editor.getValue(); 207 | } 208 | }]); 209 | 210 | return EditorManager; 211 | }(); 212 | 213 | var IframeManager = 214 | /*#__PURE__*/ 215 | function () { 216 | function IframeManager(options) { 217 | _classCallCheck(this, IframeManager); 218 | 219 | this.iframe = options.iframe; 220 | } 221 | 222 | _createClass(IframeManager, [{ 223 | key: "sendCode", 224 | value: function sendCode(code) { 225 | this.iframe.contentWindow.postMessage(code, '*'); 226 | } 227 | }]); 228 | 229 | return IframeManager; 230 | }(); 231 | 232 | var TutorialMarkdown = 233 | /*#__PURE__*/ 234 | function () { 235 | function TutorialMarkdown(options) { 236 | _classCallCheck(this, TutorialMarkdown); 237 | 238 | var editor = options.editor; 239 | this.scheduled = false; 240 | this.currentStep = -1; 241 | this.editorManager = new EditorManager({ 242 | editor: editor 243 | }); 244 | this.iframeManager = new IframeManager({ 245 | iframe: options.iframe 246 | }); 247 | this.codeManager = new CodeManager({ 248 | selectors: options.markdownSelector, 249 | tabSize: editor.editor.getModel()._options.tabSize 250 | }); // Saving the post executed state, so when we step backwards we can 251 | // reapply previous set information 252 | 253 | this.savedSteps = [this.editorManager.getCode()]; 254 | this.throttleScroll = this.throttleScroll.bind(this); 255 | this.sendCode = this.sendCode.bind(this); 256 | this.create(); 257 | } 258 | 259 | _createClass(TutorialMarkdown, [{ 260 | key: "throttleScroll", 261 | value: function throttleScroll() { 262 | var _this = this; 263 | 264 | if (!this.scheduled) { 265 | this.scheduled = true; 266 | window.requestAnimationFrame(function () { 267 | _this.scheduled = false; 268 | 269 | _this.onScroll(); 270 | }); 271 | } 272 | } 273 | }, { 274 | key: "onScroll", 275 | value: function onScroll() { 276 | var step = this.codeManager.getStep(); 277 | 278 | if (step > this.currentStep) { 279 | for (var i = this.currentStep + 1; i <= step; i++) { 280 | this.stepForward(i); 281 | } 282 | } else if (step < this.currentStep) { 283 | this.stepBackward(step); 284 | } 285 | 286 | this.currentStep = step; 287 | } 288 | }, { 289 | key: "stepForward", 290 | value: function stepForward(step) { 291 | var block = this.codeManager.getBlockByStep(step); 292 | this.editorManager.executeBlock(block); 293 | var currentCode = this.editorManager.getCode(); 294 | 295 | if (!this.savedSteps[step + 1]) { 296 | this.savedSteps.push(currentCode); 297 | } 298 | 299 | this.iframeManager.sendCode(currentCode); 300 | return step; 301 | } 302 | }, { 303 | key: "stepBackward", 304 | value: function stepBackward(step) { 305 | this.editorManager.replaceWith(this.savedSteps[step + 1]); 306 | var currentCode = this.editorManager.getCode(); 307 | this.iframeManager.sendCode(currentCode); 308 | } 309 | }, { 310 | key: "create", 311 | value: function create() { 312 | window.addEventListener('scroll', this.throttleScroll); 313 | } 314 | }, { 315 | key: "destroy", 316 | value: function destroy() { 317 | window.removeEventListener('scroll', this.throttleScroll); 318 | } 319 | }, { 320 | key: "sendCode", 321 | value: function sendCode() { 322 | var currentCode = this.editorManager.getCode(); 323 | this.iframeManager.sendCode(currentCode); 324 | } 325 | }]); 326 | 327 | return TutorialMarkdown; 328 | }(); 329 | 330 | return TutorialMarkdown; 331 | 332 | })); 333 | //# sourceMappingURL=tutorialMarkdown.umd.js.map 334 | -------------------------------------------------------------------------------- /dist/tutorialMarkdown.umd.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"tutorialMarkdown.umd.js","sources":["../src/codeBlock.js","../src/codeManager.js","../src/editorManager.js","../src/iframeManager.js","../src/index.js"],"sourcesContent":["class CodeBlock {\n constructor(element, codeSelector, tabSize) {\n this.element = element\n this.from = parseInt(element.getAttribute('data-from'))\n this.to = element.getAttribute('data-to')\n this.indent = parseInt(element.getAttribute('data-indent')) || 0\n\n let code = null\n if( codeSelector ) {\n code = element.querySelector(codeSelector).innerText\n } else {\n code = element.innerText\n }\n\n this.code = this.prepareCode(code, tabSize)\n\n\n this.lines = this.code.split('\\n').length\n\n // Set \"TO\" value to from + lines it isn't set\n this.to = this.to ? parseInt(this.to) : this.from + this.lines \n }\n\n prepareCode(code, tabSize) {\n let parsedCode = code.split('\\n')\n \n // Add indentation\n parsedCode = parsedCode.map(\n string => {\n if( string !== ''){\n return ' '.repeat(tabSize * this.indent) + string\n } else {\n return string\n }\n }\n )\n\n parsedCode = parsedCode.join('\\n')\n\n // If the last item isn't a new line, add it\n if( parsedCode[parsedCode.length-1] !== '\\n' ) {\n parsedCode += '\\n'\n }\n\n return parsedCode\n }\n\n shouldBeActive() {\n const rect = this.element.getBoundingClientRect()\n\n // 1/3 of rect is at 1/2 of window\n return (rect.top + rect.height/3) < (window.innerHeight / 2)\n }\n}\n\nexport default CodeBlock","import CodeBlock from './codeBlock'\n\nclass CodeManager {\n\n constructor(options) {\n this.codeBlocks = []\n const { blockSelector, codeSelector } = options.selectors\n\n this.blockSelector = options.blockSelector\n\n let blockElements = document.querySelectorAll(blockSelector)\n for (let i = 0; i < blockElements.length; i++) {\n this.codeBlocks.push(new CodeBlock(blockElements[i], codeSelector, options.tabSize))\n }\n }\n\n getStep() {\n for (let i = this.codeBlocks.length - 1; i >= 0; i--) {\n if (this.codeBlocks[i].shouldBeActive()) {\n return i\n }\n }\n return -1\n }\n\n getBlockByStep(step) {\n return this.codeBlocks[step]\n }\n}\n\nexport default CodeManager","\nclass EditorManager {\n\n constructor(options) {\n this.hasTyped = false\n this.lastExecuted = null\n\n const {editor} = options\n this.editor = editor.editor\n this.api = editor.api\n\n this.editor.onKeyDown(() => {\n this.hasTyped = true\n })\n }\n\n executeBlock(block) {\n\n if(this.hasTyped) {\n this.hasTyped = false\n this.replaceWith(this.lastExecuted)\n }\n\n // If we are trying to append beyond the current line count, add the lines\n const lineCount = this.editor.getModel().getLineCount()\n if(lineCount < block.from) {\n const linesNeeded = block.from - lineCount\n const range = new this.api.Range(block.from, 1, block.from + linesNeeded, 1)\n const newLines = '\\n'.repeat(linesNeeded)\n const operation = {\n identifier: { major: 1, minor: 1 },\n range: range,\n text: newLines,\n forceMoveMarkers: true\n }\n\n this.editor.executeEdits(newLines, [operation])\n }\n\n const range = new this.api.Range(block.from, 1, block.to, 1)\n const operation = {\n identifier: { major: 1, minor: 1 },\n range: range,\n text: block.code,\n forceMoveMarkers: true\n }\n \n this.editor.executeEdits(block.code, [operation])\n this.editor.revealLines(\n block.from,\n block.from + block.lines\n )\n\n // Save last state (to undo any manually typed code)\n this.lastExecuted = this.getCode()\n }\n\n replaceWith(code) {\n const range = new this.api.Range(0, 1, 9999, 1)\n const operation = {\n identifier: { major: 1, minor: 1 },\n range: range,\n text: code,\n forceMoveMarkers: true\n }\n this.editor.executeEdits(code, [operation])\n }\n\n getCode() {\n return this.editor.getValue()\n }\n}\n\nexport default EditorManager","class IframeManager {\n\n constructor(options) {\n this.iframe = options.iframe\n }\n\n sendCode(code) {\n this.iframe.contentWindow.postMessage(code, '*')\n }\n}\n\nexport default IframeManager","import CodeManager from './codeManager'\nimport EditorManager from './editorManager'\nimport IframeManager from './iframeManager'\n\nclass TutorialMarkdown {\n\n constructor(options) {\n\n const {editor} = options\n this.scheduled = false\n this.currentStep = -1\n\n this.editorManager = new EditorManager({editor})\n this.iframeManager = new IframeManager({iframe: options.iframe})\n\n this.codeManager = new CodeManager({\n selectors: options.markdownSelector,\n tabSize: editor.editor.getModel()._options.tabSize\n })\n\n // Saving the post executed state, so when we step backwards we can\n // reapply previous set information\n this.savedSteps = [this.editorManager.getCode()]\n\n this.throttleScroll = this.throttleScroll.bind(this)\n this.sendCode = this.sendCode.bind(this)\n this.create()\n }\n\n throttleScroll() {\n if (!this.scheduled) {\n this.scheduled = true\n window.requestAnimationFrame(() => {\n this.scheduled = false\n this.onScroll()\n })\n }\n }\n\n onScroll() {\n const step = this.codeManager.getStep()\n if(step > this.currentStep) {\n\n for( let i = this.currentStep + 1; i <= step; i++ ) {\n this.stepForward(i)\n }\n \n } else if (step < this.currentStep) {\n this.stepBackward(step)\n }\n\n this.currentStep = step\n }\n\n stepForward(step) {\n const block = this.codeManager.getBlockByStep(step)\n this.editorManager.executeBlock(block)\n\n const currentCode = this.editorManager.getCode()\n\n if(!this.savedSteps[step + 1]) {\n this.savedSteps.push(currentCode)\n }\n\n this.iframeManager.sendCode(currentCode)\n\n return step\n }\n\n stepBackward(step) {\n this.editorManager.replaceWith(this.savedSteps[step + 1])\n const currentCode = this.editorManager.getCode()\n this.iframeManager.sendCode(currentCode)\n }\n\n create() {\n window.addEventListener('scroll', this.throttleScroll)\n }\n\n destroy() {\n window.removeEventListener('scroll', this.throttleScroll)\n }\n\n sendCode() {\n const currentCode = this.editorManager.getCode()\n this.iframeManager.sendCode(currentCode)\n }\n}\n\nexport default TutorialMarkdown"],"names":["CodeBlock","element","codeSelector","tabSize","from","parseInt","getAttribute","to","indent","code","querySelector","innerText","prepareCode","lines","split","length","parsedCode","map","string","repeat","join","rect","getBoundingClientRect","top","height","window","innerHeight","CodeManager","options","codeBlocks","selectors","blockSelector","blockElements","document","querySelectorAll","i","push","shouldBeActive","step","EditorManager","hasTyped","lastExecuted","editor","api","onKeyDown","block","replaceWith","lineCount","getModel","getLineCount","linesNeeded","range","Range","newLines","operation","identifier","major","minor","text","forceMoveMarkers","executeEdits","revealLines","getCode","getValue","IframeManager","iframe","contentWindow","postMessage","TutorialMarkdown","scheduled","currentStep","editorManager","iframeManager","codeManager","markdownSelector","_options","savedSteps","throttleScroll","bind","sendCode","create","requestAnimationFrame","onScroll","getStep","stepForward","stepBackward","getBlockByStep","executeBlock","currentCode","addEventListener","removeEventListener"],"mappings":"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"} -------------------------------------------------------------------------------- /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", "@babel/code-frame@^7.5.5": 6 | version "7.5.5" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" 8 | integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/core@^7.6.0": 13 | version "7.6.0" 14 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48" 15 | integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw== 16 | dependencies: 17 | "@babel/code-frame" "^7.5.5" 18 | "@babel/generator" "^7.6.0" 19 | "@babel/helpers" "^7.6.0" 20 | "@babel/parser" "^7.6.0" 21 | "@babel/template" "^7.6.0" 22 | "@babel/traverse" "^7.6.0" 23 | "@babel/types" "^7.6.0" 24 | convert-source-map "^1.1.0" 25 | debug "^4.1.0" 26 | json5 "^2.1.0" 27 | lodash "^4.17.13" 28 | resolve "^1.3.2" 29 | semver "^5.4.1" 30 | source-map "^0.5.0" 31 | 32 | "@babel/generator@^7.6.0": 33 | version "7.6.0" 34 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" 35 | integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== 36 | dependencies: 37 | "@babel/types" "^7.6.0" 38 | jsesc "^2.5.1" 39 | lodash "^4.17.13" 40 | source-map "^0.5.0" 41 | trim-right "^1.0.1" 42 | 43 | "@babel/helper-annotate-as-pure@^7.0.0": 44 | version "7.0.0" 45 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" 46 | integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== 47 | dependencies: 48 | "@babel/types" "^7.0.0" 49 | 50 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": 51 | version "7.1.0" 52 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" 53 | integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== 54 | dependencies: 55 | "@babel/helper-explode-assignable-expression" "^7.1.0" 56 | "@babel/types" "^7.0.0" 57 | 58 | "@babel/helper-call-delegate@^7.4.4": 59 | version "7.4.4" 60 | resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" 61 | integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== 62 | dependencies: 63 | "@babel/helper-hoist-variables" "^7.4.4" 64 | "@babel/traverse" "^7.4.4" 65 | "@babel/types" "^7.4.4" 66 | 67 | "@babel/helper-define-map@^7.5.5": 68 | version "7.5.5" 69 | resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" 70 | integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== 71 | dependencies: 72 | "@babel/helper-function-name" "^7.1.0" 73 | "@babel/types" "^7.5.5" 74 | lodash "^4.17.13" 75 | 76 | "@babel/helper-explode-assignable-expression@^7.1.0": 77 | version "7.1.0" 78 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" 79 | integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== 80 | dependencies: 81 | "@babel/traverse" "^7.1.0" 82 | "@babel/types" "^7.0.0" 83 | 84 | "@babel/helper-function-name@^7.1.0": 85 | version "7.1.0" 86 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" 87 | integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== 88 | dependencies: 89 | "@babel/helper-get-function-arity" "^7.0.0" 90 | "@babel/template" "^7.1.0" 91 | "@babel/types" "^7.0.0" 92 | 93 | "@babel/helper-get-function-arity@^7.0.0": 94 | version "7.0.0" 95 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" 96 | integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== 97 | dependencies: 98 | "@babel/types" "^7.0.0" 99 | 100 | "@babel/helper-hoist-variables@^7.4.4": 101 | version "7.4.4" 102 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" 103 | integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== 104 | dependencies: 105 | "@babel/types" "^7.4.4" 106 | 107 | "@babel/helper-member-expression-to-functions@^7.5.5": 108 | version "7.5.5" 109 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" 110 | integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== 111 | dependencies: 112 | "@babel/types" "^7.5.5" 113 | 114 | "@babel/helper-module-imports@^7.0.0": 115 | version "7.0.0" 116 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" 117 | integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== 118 | dependencies: 119 | "@babel/types" "^7.0.0" 120 | 121 | "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": 122 | version "7.5.5" 123 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" 124 | integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== 125 | dependencies: 126 | "@babel/helper-module-imports" "^7.0.0" 127 | "@babel/helper-simple-access" "^7.1.0" 128 | "@babel/helper-split-export-declaration" "^7.4.4" 129 | "@babel/template" "^7.4.4" 130 | "@babel/types" "^7.5.5" 131 | lodash "^4.17.13" 132 | 133 | "@babel/helper-optimise-call-expression@^7.0.0": 134 | version "7.0.0" 135 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" 136 | integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== 137 | dependencies: 138 | "@babel/types" "^7.0.0" 139 | 140 | "@babel/helper-plugin-utils@^7.0.0": 141 | version "7.0.0" 142 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" 143 | integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== 144 | 145 | "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": 146 | version "7.5.5" 147 | resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" 148 | integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== 149 | dependencies: 150 | lodash "^4.17.13" 151 | 152 | "@babel/helper-remap-async-to-generator@^7.1.0": 153 | version "7.1.0" 154 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" 155 | integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== 156 | dependencies: 157 | "@babel/helper-annotate-as-pure" "^7.0.0" 158 | "@babel/helper-wrap-function" "^7.1.0" 159 | "@babel/template" "^7.1.0" 160 | "@babel/traverse" "^7.1.0" 161 | "@babel/types" "^7.0.0" 162 | 163 | "@babel/helper-replace-supers@^7.5.5": 164 | version "7.5.5" 165 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" 166 | integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== 167 | dependencies: 168 | "@babel/helper-member-expression-to-functions" "^7.5.5" 169 | "@babel/helper-optimise-call-expression" "^7.0.0" 170 | "@babel/traverse" "^7.5.5" 171 | "@babel/types" "^7.5.5" 172 | 173 | "@babel/helper-simple-access@^7.1.0": 174 | version "7.1.0" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" 176 | integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== 177 | dependencies: 178 | "@babel/template" "^7.1.0" 179 | "@babel/types" "^7.0.0" 180 | 181 | "@babel/helper-split-export-declaration@^7.4.4": 182 | version "7.4.4" 183 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" 184 | integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== 185 | dependencies: 186 | "@babel/types" "^7.4.4" 187 | 188 | "@babel/helper-wrap-function@^7.1.0": 189 | version "7.2.0" 190 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" 191 | integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== 192 | dependencies: 193 | "@babel/helper-function-name" "^7.1.0" 194 | "@babel/template" "^7.1.0" 195 | "@babel/traverse" "^7.1.0" 196 | "@babel/types" "^7.2.0" 197 | 198 | "@babel/helpers@^7.6.0": 199 | version "7.6.0" 200 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e" 201 | integrity sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ== 202 | dependencies: 203 | "@babel/template" "^7.6.0" 204 | "@babel/traverse" "^7.6.0" 205 | "@babel/types" "^7.6.0" 206 | 207 | "@babel/highlight@^7.0.0": 208 | version "7.5.0" 209 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" 210 | integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== 211 | dependencies: 212 | chalk "^2.0.0" 213 | esutils "^2.0.2" 214 | js-tokens "^4.0.0" 215 | 216 | "@babel/parser@^7.6.0": 217 | version "7.6.0" 218 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" 219 | integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== 220 | 221 | "@babel/plugin-proposal-async-generator-functions@^7.2.0": 222 | version "7.2.0" 223 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" 224 | integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== 225 | dependencies: 226 | "@babel/helper-plugin-utils" "^7.0.0" 227 | "@babel/helper-remap-async-to-generator" "^7.1.0" 228 | "@babel/plugin-syntax-async-generators" "^7.2.0" 229 | 230 | "@babel/plugin-proposal-dynamic-import@^7.5.0": 231 | version "7.5.0" 232 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" 233 | integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== 234 | dependencies: 235 | "@babel/helper-plugin-utils" "^7.0.0" 236 | "@babel/plugin-syntax-dynamic-import" "^7.2.0" 237 | 238 | "@babel/plugin-proposal-json-strings@^7.2.0": 239 | version "7.2.0" 240 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" 241 | integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== 242 | dependencies: 243 | "@babel/helper-plugin-utils" "^7.0.0" 244 | "@babel/plugin-syntax-json-strings" "^7.2.0" 245 | 246 | "@babel/plugin-proposal-object-rest-spread@^7.5.5": 247 | version "7.5.5" 248 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" 249 | integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== 250 | dependencies: 251 | "@babel/helper-plugin-utils" "^7.0.0" 252 | "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 253 | 254 | "@babel/plugin-proposal-optional-catch-binding@^7.2.0": 255 | version "7.2.0" 256 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" 257 | integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== 258 | dependencies: 259 | "@babel/helper-plugin-utils" "^7.0.0" 260 | "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 261 | 262 | "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 263 | version "7.4.4" 264 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" 265 | integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== 266 | dependencies: 267 | "@babel/helper-plugin-utils" "^7.0.0" 268 | "@babel/helper-regex" "^7.4.4" 269 | regexpu-core "^4.5.4" 270 | 271 | "@babel/plugin-syntax-async-generators@^7.2.0": 272 | version "7.2.0" 273 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" 274 | integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== 275 | dependencies: 276 | "@babel/helper-plugin-utils" "^7.0.0" 277 | 278 | "@babel/plugin-syntax-dynamic-import@^7.2.0": 279 | version "7.2.0" 280 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" 281 | integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== 282 | dependencies: 283 | "@babel/helper-plugin-utils" "^7.0.0" 284 | 285 | "@babel/plugin-syntax-json-strings@^7.2.0": 286 | version "7.2.0" 287 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" 288 | integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== 289 | dependencies: 290 | "@babel/helper-plugin-utils" "^7.0.0" 291 | 292 | "@babel/plugin-syntax-object-rest-spread@^7.2.0": 293 | version "7.2.0" 294 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" 295 | integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== 296 | dependencies: 297 | "@babel/helper-plugin-utils" "^7.0.0" 298 | 299 | "@babel/plugin-syntax-optional-catch-binding@^7.2.0": 300 | version "7.2.0" 301 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" 302 | integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== 303 | dependencies: 304 | "@babel/helper-plugin-utils" "^7.0.0" 305 | 306 | "@babel/plugin-transform-arrow-functions@^7.2.0": 307 | version "7.2.0" 308 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" 309 | integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== 310 | dependencies: 311 | "@babel/helper-plugin-utils" "^7.0.0" 312 | 313 | "@babel/plugin-transform-async-to-generator@^7.5.0": 314 | version "7.5.0" 315 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" 316 | integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== 317 | dependencies: 318 | "@babel/helper-module-imports" "^7.0.0" 319 | "@babel/helper-plugin-utils" "^7.0.0" 320 | "@babel/helper-remap-async-to-generator" "^7.1.0" 321 | 322 | "@babel/plugin-transform-block-scoped-functions@^7.2.0": 323 | version "7.2.0" 324 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" 325 | integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== 326 | dependencies: 327 | "@babel/helper-plugin-utils" "^7.0.0" 328 | 329 | "@babel/plugin-transform-block-scoping@^7.6.0": 330 | version "7.6.0" 331 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" 332 | integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== 333 | dependencies: 334 | "@babel/helper-plugin-utils" "^7.0.0" 335 | lodash "^4.17.13" 336 | 337 | "@babel/plugin-transform-classes@^7.5.5": 338 | version "7.5.5" 339 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" 340 | integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== 341 | dependencies: 342 | "@babel/helper-annotate-as-pure" "^7.0.0" 343 | "@babel/helper-define-map" "^7.5.5" 344 | "@babel/helper-function-name" "^7.1.0" 345 | "@babel/helper-optimise-call-expression" "^7.0.0" 346 | "@babel/helper-plugin-utils" "^7.0.0" 347 | "@babel/helper-replace-supers" "^7.5.5" 348 | "@babel/helper-split-export-declaration" "^7.4.4" 349 | globals "^11.1.0" 350 | 351 | "@babel/plugin-transform-computed-properties@^7.2.0": 352 | version "7.2.0" 353 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" 354 | integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== 355 | dependencies: 356 | "@babel/helper-plugin-utils" "^7.0.0" 357 | 358 | "@babel/plugin-transform-destructuring@^7.6.0": 359 | version "7.6.0" 360 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" 361 | integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== 362 | dependencies: 363 | "@babel/helper-plugin-utils" "^7.0.0" 364 | 365 | "@babel/plugin-transform-dotall-regex@^7.4.4": 366 | version "7.4.4" 367 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" 368 | integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== 369 | dependencies: 370 | "@babel/helper-plugin-utils" "^7.0.0" 371 | "@babel/helper-regex" "^7.4.4" 372 | regexpu-core "^4.5.4" 373 | 374 | "@babel/plugin-transform-duplicate-keys@^7.5.0": 375 | version "7.5.0" 376 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" 377 | integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== 378 | dependencies: 379 | "@babel/helper-plugin-utils" "^7.0.0" 380 | 381 | "@babel/plugin-transform-exponentiation-operator@^7.2.0": 382 | version "7.2.0" 383 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" 384 | integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== 385 | dependencies: 386 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" 387 | "@babel/helper-plugin-utils" "^7.0.0" 388 | 389 | "@babel/plugin-transform-for-of@^7.4.4": 390 | version "7.4.4" 391 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" 392 | integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== 393 | dependencies: 394 | "@babel/helper-plugin-utils" "^7.0.0" 395 | 396 | "@babel/plugin-transform-function-name@^7.4.4": 397 | version "7.4.4" 398 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" 399 | integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== 400 | dependencies: 401 | "@babel/helper-function-name" "^7.1.0" 402 | "@babel/helper-plugin-utils" "^7.0.0" 403 | 404 | "@babel/plugin-transform-literals@^7.2.0": 405 | version "7.2.0" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" 407 | integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== 408 | dependencies: 409 | "@babel/helper-plugin-utils" "^7.0.0" 410 | 411 | "@babel/plugin-transform-member-expression-literals@^7.2.0": 412 | version "7.2.0" 413 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" 414 | integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== 415 | dependencies: 416 | "@babel/helper-plugin-utils" "^7.0.0" 417 | 418 | "@babel/plugin-transform-modules-amd@^7.5.0": 419 | version "7.5.0" 420 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" 421 | integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== 422 | dependencies: 423 | "@babel/helper-module-transforms" "^7.1.0" 424 | "@babel/helper-plugin-utils" "^7.0.0" 425 | babel-plugin-dynamic-import-node "^2.3.0" 426 | 427 | "@babel/plugin-transform-modules-commonjs@^7.6.0": 428 | version "7.6.0" 429 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" 430 | integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== 431 | dependencies: 432 | "@babel/helper-module-transforms" "^7.4.4" 433 | "@babel/helper-plugin-utils" "^7.0.0" 434 | "@babel/helper-simple-access" "^7.1.0" 435 | babel-plugin-dynamic-import-node "^2.3.0" 436 | 437 | "@babel/plugin-transform-modules-systemjs@^7.5.0": 438 | version "7.5.0" 439 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" 440 | integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== 441 | dependencies: 442 | "@babel/helper-hoist-variables" "^7.4.4" 443 | "@babel/helper-plugin-utils" "^7.0.0" 444 | babel-plugin-dynamic-import-node "^2.3.0" 445 | 446 | "@babel/plugin-transform-modules-umd@^7.2.0": 447 | version "7.2.0" 448 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" 449 | integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== 450 | dependencies: 451 | "@babel/helper-module-transforms" "^7.1.0" 452 | "@babel/helper-plugin-utils" "^7.0.0" 453 | 454 | "@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": 455 | version "7.6.0" 456 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" 457 | integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== 458 | dependencies: 459 | regexp-tree "^0.1.13" 460 | 461 | "@babel/plugin-transform-new-target@^7.4.4": 462 | version "7.4.4" 463 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" 464 | integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== 465 | dependencies: 466 | "@babel/helper-plugin-utils" "^7.0.0" 467 | 468 | "@babel/plugin-transform-object-super@^7.5.5": 469 | version "7.5.5" 470 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" 471 | integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== 472 | dependencies: 473 | "@babel/helper-plugin-utils" "^7.0.0" 474 | "@babel/helper-replace-supers" "^7.5.5" 475 | 476 | "@babel/plugin-transform-parameters@^7.4.4": 477 | version "7.4.4" 478 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" 479 | integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== 480 | dependencies: 481 | "@babel/helper-call-delegate" "^7.4.4" 482 | "@babel/helper-get-function-arity" "^7.0.0" 483 | "@babel/helper-plugin-utils" "^7.0.0" 484 | 485 | "@babel/plugin-transform-property-literals@^7.2.0": 486 | version "7.2.0" 487 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" 488 | integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== 489 | dependencies: 490 | "@babel/helper-plugin-utils" "^7.0.0" 491 | 492 | "@babel/plugin-transform-regenerator@^7.4.5": 493 | version "7.4.5" 494 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" 495 | integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== 496 | dependencies: 497 | regenerator-transform "^0.14.0" 498 | 499 | "@babel/plugin-transform-reserved-words@^7.2.0": 500 | version "7.2.0" 501 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" 502 | integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== 503 | dependencies: 504 | "@babel/helper-plugin-utils" "^7.0.0" 505 | 506 | "@babel/plugin-transform-shorthand-properties@^7.2.0": 507 | version "7.2.0" 508 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" 509 | integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== 510 | dependencies: 511 | "@babel/helper-plugin-utils" "^7.0.0" 512 | 513 | "@babel/plugin-transform-spread@^7.2.0": 514 | version "7.2.2" 515 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" 516 | integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== 517 | dependencies: 518 | "@babel/helper-plugin-utils" "^7.0.0" 519 | 520 | "@babel/plugin-transform-sticky-regex@^7.2.0": 521 | version "7.2.0" 522 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" 523 | integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== 524 | dependencies: 525 | "@babel/helper-plugin-utils" "^7.0.0" 526 | "@babel/helper-regex" "^7.0.0" 527 | 528 | "@babel/plugin-transform-template-literals@^7.4.4": 529 | version "7.4.4" 530 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" 531 | integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== 532 | dependencies: 533 | "@babel/helper-annotate-as-pure" "^7.0.0" 534 | "@babel/helper-plugin-utils" "^7.0.0" 535 | 536 | "@babel/plugin-transform-typeof-symbol@^7.2.0": 537 | version "7.2.0" 538 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" 539 | integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== 540 | dependencies: 541 | "@babel/helper-plugin-utils" "^7.0.0" 542 | 543 | "@babel/plugin-transform-unicode-regex@^7.4.4": 544 | version "7.4.4" 545 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" 546 | integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== 547 | dependencies: 548 | "@babel/helper-plugin-utils" "^7.0.0" 549 | "@babel/helper-regex" "^7.4.4" 550 | regexpu-core "^4.5.4" 551 | 552 | "@babel/preset-env@^7.6.0": 553 | version "7.6.0" 554 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" 555 | integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== 556 | dependencies: 557 | "@babel/helper-module-imports" "^7.0.0" 558 | "@babel/helper-plugin-utils" "^7.0.0" 559 | "@babel/plugin-proposal-async-generator-functions" "^7.2.0" 560 | "@babel/plugin-proposal-dynamic-import" "^7.5.0" 561 | "@babel/plugin-proposal-json-strings" "^7.2.0" 562 | "@babel/plugin-proposal-object-rest-spread" "^7.5.5" 563 | "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" 564 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 565 | "@babel/plugin-syntax-async-generators" "^7.2.0" 566 | "@babel/plugin-syntax-dynamic-import" "^7.2.0" 567 | "@babel/plugin-syntax-json-strings" "^7.2.0" 568 | "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 569 | "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 570 | "@babel/plugin-transform-arrow-functions" "^7.2.0" 571 | "@babel/plugin-transform-async-to-generator" "^7.5.0" 572 | "@babel/plugin-transform-block-scoped-functions" "^7.2.0" 573 | "@babel/plugin-transform-block-scoping" "^7.6.0" 574 | "@babel/plugin-transform-classes" "^7.5.5" 575 | "@babel/plugin-transform-computed-properties" "^7.2.0" 576 | "@babel/plugin-transform-destructuring" "^7.6.0" 577 | "@babel/plugin-transform-dotall-regex" "^7.4.4" 578 | "@babel/plugin-transform-duplicate-keys" "^7.5.0" 579 | "@babel/plugin-transform-exponentiation-operator" "^7.2.0" 580 | "@babel/plugin-transform-for-of" "^7.4.4" 581 | "@babel/plugin-transform-function-name" "^7.4.4" 582 | "@babel/plugin-transform-literals" "^7.2.0" 583 | "@babel/plugin-transform-member-expression-literals" "^7.2.0" 584 | "@babel/plugin-transform-modules-amd" "^7.5.0" 585 | "@babel/plugin-transform-modules-commonjs" "^7.6.0" 586 | "@babel/plugin-transform-modules-systemjs" "^7.5.0" 587 | "@babel/plugin-transform-modules-umd" "^7.2.0" 588 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" 589 | "@babel/plugin-transform-new-target" "^7.4.4" 590 | "@babel/plugin-transform-object-super" "^7.5.5" 591 | "@babel/plugin-transform-parameters" "^7.4.4" 592 | "@babel/plugin-transform-property-literals" "^7.2.0" 593 | "@babel/plugin-transform-regenerator" "^7.4.5" 594 | "@babel/plugin-transform-reserved-words" "^7.2.0" 595 | "@babel/plugin-transform-shorthand-properties" "^7.2.0" 596 | "@babel/plugin-transform-spread" "^7.2.0" 597 | "@babel/plugin-transform-sticky-regex" "^7.2.0" 598 | "@babel/plugin-transform-template-literals" "^7.4.4" 599 | "@babel/plugin-transform-typeof-symbol" "^7.2.0" 600 | "@babel/plugin-transform-unicode-regex" "^7.4.4" 601 | "@babel/types" "^7.6.0" 602 | browserslist "^4.6.0" 603 | core-js-compat "^3.1.1" 604 | invariant "^2.2.2" 605 | js-levenshtein "^1.1.3" 606 | semver "^5.5.0" 607 | 608 | "@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": 609 | version "7.6.0" 610 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" 611 | integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== 612 | dependencies: 613 | "@babel/code-frame" "^7.0.0" 614 | "@babel/parser" "^7.6.0" 615 | "@babel/types" "^7.6.0" 616 | 617 | "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0": 618 | version "7.6.0" 619 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" 620 | integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== 621 | dependencies: 622 | "@babel/code-frame" "^7.5.5" 623 | "@babel/generator" "^7.6.0" 624 | "@babel/helper-function-name" "^7.1.0" 625 | "@babel/helper-split-export-declaration" "^7.4.4" 626 | "@babel/parser" "^7.6.0" 627 | "@babel/types" "^7.6.0" 628 | debug "^4.1.0" 629 | globals "^11.1.0" 630 | lodash "^4.17.13" 631 | 632 | "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": 633 | version "7.6.1" 634 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" 635 | integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== 636 | dependencies: 637 | esutils "^2.0.2" 638 | lodash "^4.17.13" 639 | to-fast-properties "^2.0.0" 640 | 641 | "@types/estree@0.0.39": 642 | version "0.0.39" 643 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 644 | 645 | "@types/node@^12.7.5": 646 | version "12.7.5" 647 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.5.tgz#e19436e7f8e9b4601005d73673b6dc4784ffcc2f" 648 | integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w== 649 | 650 | acorn-jsx@^5.0.2: 651 | version "5.0.2" 652 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" 653 | integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== 654 | 655 | acorn@^7.0.0: 656 | version "7.1.1" 657 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" 658 | integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== 659 | 660 | ajv@^6.10.0, ajv@^6.10.2: 661 | version "6.10.2" 662 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" 663 | integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== 664 | dependencies: 665 | fast-deep-equal "^2.0.1" 666 | fast-json-stable-stringify "^2.0.0" 667 | json-schema-traverse "^0.4.1" 668 | uri-js "^4.2.2" 669 | 670 | ansi-escapes@^3.2.0: 671 | version "3.2.0" 672 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 673 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 674 | 675 | ansi-regex@^3.0.0: 676 | version "3.0.0" 677 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 678 | 679 | ansi-regex@^4.1.0: 680 | version "4.1.0" 681 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 682 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 683 | 684 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 685 | version "3.2.1" 686 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 687 | dependencies: 688 | color-convert "^1.9.0" 689 | 690 | argparse@^1.0.7: 691 | version "1.0.10" 692 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 693 | dependencies: 694 | sprintf-js "~1.0.2" 695 | 696 | astral-regex@^1.0.0: 697 | version "1.0.0" 698 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 699 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 700 | 701 | babel-plugin-dynamic-import-node@^2.3.0: 702 | version "2.3.0" 703 | resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" 704 | integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== 705 | dependencies: 706 | object.assign "^4.1.0" 707 | 708 | balanced-match@^1.0.0: 709 | version "1.0.0" 710 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 711 | 712 | brace-expansion@^1.1.7: 713 | version "1.1.11" 714 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 715 | dependencies: 716 | balanced-match "^1.0.0" 717 | concat-map "0.0.1" 718 | 719 | browserslist@^4.6.0, browserslist@^4.6.6: 720 | version "4.16.6" 721 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" 722 | integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== 723 | dependencies: 724 | caniuse-lite "^1.0.30001219" 725 | colorette "^1.2.2" 726 | electron-to-chromium "^1.3.723" 727 | escalade "^3.1.1" 728 | node-releases "^1.1.71" 729 | 730 | callsites@^3.0.0: 731 | version "3.1.0" 732 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 733 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 734 | 735 | caniuse-lite@^1.0.30001219: 736 | version "1.0.30001228" 737 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" 738 | integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== 739 | 740 | chalk@^2.0.0, chalk@^2.1.0: 741 | version "2.4.1" 742 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 743 | dependencies: 744 | ansi-styles "^3.2.1" 745 | escape-string-regexp "^1.0.5" 746 | supports-color "^5.3.0" 747 | 748 | chalk@^2.4.2: 749 | version "2.4.2" 750 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 751 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 752 | dependencies: 753 | ansi-styles "^3.2.1" 754 | escape-string-regexp "^1.0.5" 755 | supports-color "^5.3.0" 756 | 757 | chardet@^0.7.0: 758 | version "0.7.0" 759 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 760 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 761 | 762 | cli-cursor@^2.1.0: 763 | version "2.1.0" 764 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 765 | dependencies: 766 | restore-cursor "^2.0.0" 767 | 768 | cli-width@^2.0.0: 769 | version "2.2.0" 770 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 771 | 772 | color-convert@^1.9.0: 773 | version "1.9.2" 774 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 775 | dependencies: 776 | color-name "1.1.1" 777 | 778 | color-name@1.1.1: 779 | version "1.1.1" 780 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 781 | 782 | colorette@^1.2.2: 783 | version "1.2.2" 784 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" 785 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== 786 | 787 | concat-map@0.0.1: 788 | version "0.0.1" 789 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 790 | 791 | convert-source-map@^1.1.0: 792 | version "1.6.0" 793 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 794 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== 795 | dependencies: 796 | safe-buffer "~5.1.1" 797 | 798 | core-js-compat@^3.1.1: 799 | version "3.2.1" 800 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" 801 | integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== 802 | dependencies: 803 | browserslist "^4.6.6" 804 | semver "^6.3.0" 805 | 806 | cross-spawn@^6.0.5: 807 | version "6.0.5" 808 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 809 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 810 | dependencies: 811 | nice-try "^1.0.4" 812 | path-key "^2.0.1" 813 | semver "^5.5.0" 814 | shebang-command "^1.2.0" 815 | which "^1.2.9" 816 | 817 | debug@^4.0.1, debug@^4.1.0: 818 | version "4.1.1" 819 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 820 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 821 | dependencies: 822 | ms "^2.1.1" 823 | 824 | deep-is@~0.1.3: 825 | version "0.1.3" 826 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 827 | 828 | define-properties@^1.1.2: 829 | version "1.1.3" 830 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 831 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 832 | dependencies: 833 | object-keys "^1.0.12" 834 | 835 | doctrine@^3.0.0: 836 | version "3.0.0" 837 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 838 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 839 | dependencies: 840 | esutils "^2.0.2" 841 | 842 | electron-to-chromium@^1.3.723: 843 | version "1.3.736" 844 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052" 845 | integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig== 846 | 847 | emoji-regex@^7.0.1: 848 | version "7.0.3" 849 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 850 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 851 | 852 | escalade@^3.1.1: 853 | version "3.1.1" 854 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 855 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 856 | 857 | escape-string-regexp@^1.0.5: 858 | version "1.0.5" 859 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 860 | 861 | eslint-scope@^5.0.0: 862 | version "5.0.0" 863 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" 864 | integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== 865 | dependencies: 866 | esrecurse "^4.1.0" 867 | estraverse "^4.1.1" 868 | 869 | eslint-utils@^1.4.2: 870 | version "1.4.2" 871 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" 872 | integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== 873 | dependencies: 874 | eslint-visitor-keys "^1.0.0" 875 | 876 | eslint-visitor-keys@^1.0.0: 877 | version "1.0.0" 878 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 879 | 880 | eslint-visitor-keys@^1.1.0: 881 | version "1.1.0" 882 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" 883 | integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== 884 | 885 | eslint@^6.0.0: 886 | version "6.4.0" 887 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.4.0.tgz#5aa9227c3fbe921982b2eda94ba0d7fae858611a" 888 | integrity sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA== 889 | dependencies: 890 | "@babel/code-frame" "^7.0.0" 891 | ajv "^6.10.0" 892 | chalk "^2.1.0" 893 | cross-spawn "^6.0.5" 894 | debug "^4.0.1" 895 | doctrine "^3.0.0" 896 | eslint-scope "^5.0.0" 897 | eslint-utils "^1.4.2" 898 | eslint-visitor-keys "^1.1.0" 899 | espree "^6.1.1" 900 | esquery "^1.0.1" 901 | esutils "^2.0.2" 902 | file-entry-cache "^5.0.1" 903 | functional-red-black-tree "^1.0.1" 904 | glob-parent "^5.0.0" 905 | globals "^11.7.0" 906 | ignore "^4.0.6" 907 | import-fresh "^3.0.0" 908 | imurmurhash "^0.1.4" 909 | inquirer "^6.4.1" 910 | is-glob "^4.0.0" 911 | js-yaml "^3.13.1" 912 | json-stable-stringify-without-jsonify "^1.0.1" 913 | levn "^0.3.0" 914 | lodash "^4.17.14" 915 | minimatch "^3.0.4" 916 | mkdirp "^0.5.1" 917 | natural-compare "^1.4.0" 918 | optionator "^0.8.2" 919 | progress "^2.0.0" 920 | regexpp "^2.0.1" 921 | semver "^6.1.2" 922 | strip-ansi "^5.2.0" 923 | strip-json-comments "^3.0.1" 924 | table "^5.2.3" 925 | text-table "^0.2.0" 926 | v8-compile-cache "^2.0.3" 927 | 928 | espree@^6.1.1: 929 | version "6.1.1" 930 | resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" 931 | integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== 932 | dependencies: 933 | acorn "^7.0.0" 934 | acorn-jsx "^5.0.2" 935 | eslint-visitor-keys "^1.1.0" 936 | 937 | esprima@^4.0.0: 938 | version "4.0.1" 939 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 940 | 941 | esquery@^1.0.1: 942 | version "1.0.1" 943 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 944 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== 945 | dependencies: 946 | estraverse "^4.0.0" 947 | 948 | esrecurse@^4.1.0: 949 | version "4.2.1" 950 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 951 | dependencies: 952 | estraverse "^4.1.0" 953 | 954 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 955 | version "4.2.0" 956 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 957 | 958 | estree-walker@^0.6.1: 959 | version "0.6.1" 960 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 961 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 962 | 963 | esutils@^2.0.2: 964 | version "2.0.2" 965 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 966 | 967 | external-editor@^3.0.3: 968 | version "3.1.0" 969 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 970 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 971 | dependencies: 972 | chardet "^0.7.0" 973 | iconv-lite "^0.4.24" 974 | tmp "^0.0.33" 975 | 976 | fast-deep-equal@^2.0.1: 977 | version "2.0.1" 978 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 979 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 980 | 981 | fast-json-stable-stringify@^2.0.0: 982 | version "2.0.0" 983 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 984 | 985 | fast-levenshtein@~2.0.4: 986 | version "2.0.6" 987 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 988 | 989 | figures@^2.0.0: 990 | version "2.0.0" 991 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 992 | dependencies: 993 | escape-string-regexp "^1.0.5" 994 | 995 | file-entry-cache@^5.0.1: 996 | version "5.0.1" 997 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 998 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 999 | dependencies: 1000 | flat-cache "^2.0.1" 1001 | 1002 | flat-cache@^2.0.1: 1003 | version "2.0.1" 1004 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 1005 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 1006 | dependencies: 1007 | flatted "^2.0.0" 1008 | rimraf "2.6.3" 1009 | write "1.0.3" 1010 | 1011 | flatted@^2.0.0: 1012 | version "2.0.1" 1013 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" 1014 | integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== 1015 | 1016 | fs.realpath@^1.0.0: 1017 | version "1.0.0" 1018 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1019 | 1020 | function-bind@^1.1.1: 1021 | version "1.1.1" 1022 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1023 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1024 | 1025 | functional-red-black-tree@^1.0.1: 1026 | version "1.0.1" 1027 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1028 | 1029 | glob-parent@^5.0.0: 1030 | version "5.1.2" 1031 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1032 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1033 | dependencies: 1034 | is-glob "^4.0.1" 1035 | 1036 | glob@^7.1.3: 1037 | version "7.1.4" 1038 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 1039 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 1040 | dependencies: 1041 | fs.realpath "^1.0.0" 1042 | inflight "^1.0.4" 1043 | inherits "2" 1044 | minimatch "^3.0.4" 1045 | once "^1.3.0" 1046 | path-is-absolute "^1.0.0" 1047 | 1048 | globals@^11.1.0, globals@^11.7.0: 1049 | version "11.12.0" 1050 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1051 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1052 | 1053 | has-flag@^3.0.0: 1054 | version "3.0.0" 1055 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1056 | 1057 | has-symbols@^1.0.0: 1058 | version "1.0.0" 1059 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 1060 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 1061 | 1062 | iconv-lite@^0.4.24: 1063 | version "0.4.24" 1064 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1065 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1066 | dependencies: 1067 | safer-buffer ">= 2.1.2 < 3" 1068 | 1069 | ignore@^4.0.6: 1070 | version "4.0.6" 1071 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1072 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1073 | 1074 | import-fresh@^3.0.0: 1075 | version "3.1.0" 1076 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" 1077 | integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== 1078 | dependencies: 1079 | parent-module "^1.0.0" 1080 | resolve-from "^4.0.0" 1081 | 1082 | imurmurhash@^0.1.4: 1083 | version "0.1.4" 1084 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1085 | 1086 | inflight@^1.0.4: 1087 | version "1.0.6" 1088 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1089 | dependencies: 1090 | once "^1.3.0" 1091 | wrappy "1" 1092 | 1093 | inherits@2: 1094 | version "2.0.3" 1095 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1096 | 1097 | inquirer@^6.4.1: 1098 | version "6.5.2" 1099 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 1100 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 1101 | dependencies: 1102 | ansi-escapes "^3.2.0" 1103 | chalk "^2.4.2" 1104 | cli-cursor "^2.1.0" 1105 | cli-width "^2.0.0" 1106 | external-editor "^3.0.3" 1107 | figures "^2.0.0" 1108 | lodash "^4.17.12" 1109 | mute-stream "0.0.7" 1110 | run-async "^2.2.0" 1111 | rxjs "^6.4.0" 1112 | string-width "^2.1.0" 1113 | strip-ansi "^5.1.0" 1114 | through "^2.3.6" 1115 | 1116 | invariant@^2.2.2: 1117 | version "2.2.4" 1118 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1119 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 1120 | dependencies: 1121 | loose-envify "^1.0.0" 1122 | 1123 | is-extglob@^2.1.1: 1124 | version "2.1.1" 1125 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1126 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1127 | 1128 | is-fullwidth-code-point@^2.0.0: 1129 | version "2.0.0" 1130 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1131 | 1132 | is-glob@^4.0.0, is-glob@^4.0.1: 1133 | version "4.0.1" 1134 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1135 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1136 | dependencies: 1137 | is-extglob "^2.1.1" 1138 | 1139 | is-promise@^2.1.0: 1140 | version "2.1.0" 1141 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1142 | 1143 | isexe@^2.0.0: 1144 | version "2.0.0" 1145 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1146 | 1147 | js-levenshtein@^1.1.3: 1148 | version "1.1.6" 1149 | resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" 1150 | integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== 1151 | 1152 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1153 | version "4.0.0" 1154 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1155 | 1156 | js-yaml@^3.13.1: 1157 | version "3.13.1" 1158 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1159 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 1160 | dependencies: 1161 | argparse "^1.0.7" 1162 | esprima "^4.0.0" 1163 | 1164 | jsesc@^2.5.1: 1165 | version "2.5.2" 1166 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1167 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1168 | 1169 | jsesc@~0.5.0: 1170 | version "0.5.0" 1171 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1172 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= 1173 | 1174 | json-schema-traverse@^0.4.1: 1175 | version "0.4.1" 1176 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1177 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1178 | 1179 | json-stable-stringify-without-jsonify@^1.0.1: 1180 | version "1.0.1" 1181 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1182 | 1183 | json5@^2.1.0: 1184 | version "2.1.0" 1185 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" 1186 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== 1187 | dependencies: 1188 | minimist "^1.2.0" 1189 | 1190 | levn@^0.3.0, levn@~0.3.0: 1191 | version "0.3.0" 1192 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1193 | dependencies: 1194 | prelude-ls "~1.1.2" 1195 | type-check "~0.3.2" 1196 | 1197 | lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14: 1198 | version "4.17.21" 1199 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1200 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1201 | 1202 | loose-envify@^1.0.0: 1203 | version "1.4.0" 1204 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1205 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1206 | dependencies: 1207 | js-tokens "^3.0.0 || ^4.0.0" 1208 | 1209 | mimic-fn@^1.0.0: 1210 | version "1.2.0" 1211 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1212 | 1213 | minimatch@^3.0.4: 1214 | version "3.0.4" 1215 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1216 | dependencies: 1217 | brace-expansion "^1.1.7" 1218 | 1219 | minimist@0.0.8: 1220 | version "0.0.8" 1221 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1222 | 1223 | minimist@^1.2.0: 1224 | version "1.2.0" 1225 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1226 | 1227 | mkdirp@^0.5.1: 1228 | version "0.5.1" 1229 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1230 | dependencies: 1231 | minimist "0.0.8" 1232 | 1233 | ms@^2.1.1: 1234 | version "2.1.2" 1235 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1236 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1237 | 1238 | mute-stream@0.0.7: 1239 | version "0.0.7" 1240 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1241 | 1242 | natural-compare@^1.4.0: 1243 | version "1.4.0" 1244 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1245 | 1246 | nice-try@^1.0.4: 1247 | version "1.0.5" 1248 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1249 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1250 | 1251 | node-releases@^1.1.71: 1252 | version "1.1.72" 1253 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" 1254 | integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== 1255 | 1256 | object-keys@^1.0.11, object-keys@^1.0.12: 1257 | version "1.1.1" 1258 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1259 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1260 | 1261 | object.assign@^4.1.0: 1262 | version "4.1.0" 1263 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1264 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 1265 | dependencies: 1266 | define-properties "^1.1.2" 1267 | function-bind "^1.1.1" 1268 | has-symbols "^1.0.0" 1269 | object-keys "^1.0.11" 1270 | 1271 | once@^1.3.0: 1272 | version "1.4.0" 1273 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1274 | dependencies: 1275 | wrappy "1" 1276 | 1277 | onetime@^2.0.0: 1278 | version "2.0.1" 1279 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1280 | dependencies: 1281 | mimic-fn "^1.0.0" 1282 | 1283 | optionator@^0.8.2: 1284 | version "0.8.2" 1285 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1286 | dependencies: 1287 | deep-is "~0.1.3" 1288 | fast-levenshtein "~2.0.4" 1289 | levn "~0.3.0" 1290 | prelude-ls "~1.1.2" 1291 | type-check "~0.3.2" 1292 | wordwrap "~1.0.0" 1293 | 1294 | os-tmpdir@~1.0.2: 1295 | version "1.0.2" 1296 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1297 | 1298 | parent-module@^1.0.0: 1299 | version "1.0.1" 1300 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1301 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1302 | dependencies: 1303 | callsites "^3.0.0" 1304 | 1305 | path-is-absolute@^1.0.0: 1306 | version "1.0.1" 1307 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1308 | 1309 | path-key@^2.0.1: 1310 | version "2.0.1" 1311 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1312 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1313 | 1314 | path-parse@^1.0.6: 1315 | version "1.0.7" 1316 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1317 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1318 | 1319 | prelude-ls@~1.1.2: 1320 | version "1.1.2" 1321 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1322 | 1323 | private@^0.1.6: 1324 | version "0.1.8" 1325 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1326 | integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== 1327 | 1328 | progress@^2.0.0: 1329 | version "2.0.0" 1330 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 1331 | 1332 | punycode@^2.1.0: 1333 | version "2.1.1" 1334 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1335 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1336 | 1337 | regenerate-unicode-properties@^8.1.0: 1338 | version "8.1.0" 1339 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" 1340 | integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== 1341 | dependencies: 1342 | regenerate "^1.4.0" 1343 | 1344 | regenerate@^1.4.0: 1345 | version "1.4.0" 1346 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 1347 | integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== 1348 | 1349 | regenerator-transform@^0.14.0: 1350 | version "0.14.1" 1351 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" 1352 | integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== 1353 | dependencies: 1354 | private "^0.1.6" 1355 | 1356 | regexp-tree@^0.1.13: 1357 | version "0.1.13" 1358 | resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" 1359 | integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== 1360 | 1361 | regexpp@^2.0.1: 1362 | version "2.0.1" 1363 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 1364 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 1365 | 1366 | regexpu-core@^4.5.4: 1367 | version "4.6.0" 1368 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" 1369 | integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== 1370 | dependencies: 1371 | regenerate "^1.4.0" 1372 | regenerate-unicode-properties "^8.1.0" 1373 | regjsgen "^0.5.0" 1374 | regjsparser "^0.6.0" 1375 | unicode-match-property-ecmascript "^1.0.4" 1376 | unicode-match-property-value-ecmascript "^1.1.0" 1377 | 1378 | regjsgen@^0.5.0: 1379 | version "0.5.0" 1380 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" 1381 | integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== 1382 | 1383 | regjsparser@^0.6.0: 1384 | version "0.6.0" 1385 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" 1386 | integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== 1387 | dependencies: 1388 | jsesc "~0.5.0" 1389 | 1390 | resolve-from@^4.0.0: 1391 | version "4.0.0" 1392 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1393 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1394 | 1395 | resolve@^1.3.2: 1396 | version "1.12.0" 1397 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" 1398 | integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== 1399 | dependencies: 1400 | path-parse "^1.0.6" 1401 | 1402 | restore-cursor@^2.0.0: 1403 | version "2.0.0" 1404 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1405 | dependencies: 1406 | onetime "^2.0.0" 1407 | signal-exit "^3.0.2" 1408 | 1409 | rimraf@2.6.3: 1410 | version "2.6.3" 1411 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1412 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 1413 | dependencies: 1414 | glob "^7.1.3" 1415 | 1416 | rollup-plugin-babel@^4.3.3: 1417 | version "4.3.3" 1418 | resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz#7eb5ac16d9b5831c3fd5d97e8df77ba25c72a2aa" 1419 | integrity sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw== 1420 | dependencies: 1421 | "@babel/helper-module-imports" "^7.0.0" 1422 | rollup-pluginutils "^2.8.1" 1423 | 1424 | rollup-plugin-eslint@^7.0.0: 1425 | version "7.0.0" 1426 | resolved "https://registry.yarnpkg.com/rollup-plugin-eslint/-/rollup-plugin-eslint-7.0.0.tgz#a6dbcbc14699a7a02155697c0c3dfa26cca59a9b" 1427 | integrity sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ== 1428 | dependencies: 1429 | eslint "^6.0.0" 1430 | rollup-pluginutils "^2.7.1" 1431 | 1432 | rollup-pluginutils@^2.7.1, rollup-pluginutils@^2.8.1: 1433 | version "2.8.2" 1434 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 1435 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1436 | dependencies: 1437 | estree-walker "^0.6.1" 1438 | 1439 | rollup@^1.21.3: 1440 | version "1.21.3" 1441 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.21.3.tgz#2d957e04b230b06a85b8c617bf594f92c37c4d5d" 1442 | integrity sha512-43CgeUtHhfiqBOUd0uJo5NEOg2FuheF3SqGN8BqgvnqB4xM2TbfPdudeSdllDcMKpagHb//qtpaAADBurT4GzA== 1443 | dependencies: 1444 | "@types/estree" "0.0.39" 1445 | "@types/node" "^12.7.5" 1446 | acorn "^7.0.0" 1447 | 1448 | run-async@^2.2.0: 1449 | version "2.3.0" 1450 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1451 | dependencies: 1452 | is-promise "^2.1.0" 1453 | 1454 | rxjs@^6.4.0: 1455 | version "6.5.3" 1456 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" 1457 | integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== 1458 | dependencies: 1459 | tslib "^1.9.0" 1460 | 1461 | safe-buffer@~5.1.1: 1462 | version "5.1.2" 1463 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1464 | 1465 | "safer-buffer@>= 2.1.2 < 3": 1466 | version "2.1.2" 1467 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1468 | 1469 | semver@^5.4.1, semver@^5.5.0: 1470 | version "5.7.1" 1471 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1472 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1473 | 1474 | semver@^6.1.2, semver@^6.3.0: 1475 | version "6.3.0" 1476 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1477 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1478 | 1479 | shebang-command@^1.2.0: 1480 | version "1.2.0" 1481 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1482 | dependencies: 1483 | shebang-regex "^1.0.0" 1484 | 1485 | shebang-regex@^1.0.0: 1486 | version "1.0.0" 1487 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1488 | 1489 | signal-exit@^3.0.2: 1490 | version "3.0.2" 1491 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1492 | 1493 | slice-ansi@^2.1.0: 1494 | version "2.1.0" 1495 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1496 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1497 | dependencies: 1498 | ansi-styles "^3.2.0" 1499 | astral-regex "^1.0.0" 1500 | is-fullwidth-code-point "^2.0.0" 1501 | 1502 | source-map@^0.5.0: 1503 | version "0.5.7" 1504 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1505 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1506 | 1507 | sprintf-js@~1.0.2: 1508 | version "1.0.3" 1509 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1510 | 1511 | string-width@^2.1.0: 1512 | version "2.1.1" 1513 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1514 | dependencies: 1515 | is-fullwidth-code-point "^2.0.0" 1516 | strip-ansi "^4.0.0" 1517 | 1518 | string-width@^3.0.0: 1519 | version "3.1.0" 1520 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1521 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1522 | dependencies: 1523 | emoji-regex "^7.0.1" 1524 | is-fullwidth-code-point "^2.0.0" 1525 | strip-ansi "^5.1.0" 1526 | 1527 | strip-ansi@^4.0.0: 1528 | version "4.0.0" 1529 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1530 | dependencies: 1531 | ansi-regex "^3.0.0" 1532 | 1533 | strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1534 | version "5.2.0" 1535 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1536 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1537 | dependencies: 1538 | ansi-regex "^4.1.0" 1539 | 1540 | strip-json-comments@^3.0.1: 1541 | version "3.0.1" 1542 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" 1543 | integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== 1544 | 1545 | supports-color@^5.3.0: 1546 | version "5.4.0" 1547 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1548 | dependencies: 1549 | has-flag "^3.0.0" 1550 | 1551 | table@^5.2.3: 1552 | version "5.4.6" 1553 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1554 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1555 | dependencies: 1556 | ajv "^6.10.2" 1557 | lodash "^4.17.14" 1558 | slice-ansi "^2.1.0" 1559 | string-width "^3.0.0" 1560 | 1561 | text-table@^0.2.0: 1562 | version "0.2.0" 1563 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1564 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1565 | 1566 | through@^2.3.6: 1567 | version "2.3.8" 1568 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1569 | 1570 | tmp@^0.0.33: 1571 | version "0.0.33" 1572 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1573 | dependencies: 1574 | os-tmpdir "~1.0.2" 1575 | 1576 | to-fast-properties@^2.0.0: 1577 | version "2.0.0" 1578 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1579 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1580 | 1581 | trim-right@^1.0.1: 1582 | version "1.0.1" 1583 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1584 | 1585 | tslib@^1.9.0: 1586 | version "1.10.0" 1587 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 1588 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 1589 | 1590 | type-check@~0.3.2: 1591 | version "0.3.2" 1592 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1593 | dependencies: 1594 | prelude-ls "~1.1.2" 1595 | 1596 | unicode-canonical-property-names-ecmascript@^1.0.4: 1597 | version "1.0.4" 1598 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" 1599 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== 1600 | 1601 | unicode-match-property-ecmascript@^1.0.4: 1602 | version "1.0.4" 1603 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" 1604 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== 1605 | dependencies: 1606 | unicode-canonical-property-names-ecmascript "^1.0.4" 1607 | unicode-property-aliases-ecmascript "^1.0.4" 1608 | 1609 | unicode-match-property-value-ecmascript@^1.1.0: 1610 | version "1.1.0" 1611 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" 1612 | integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== 1613 | 1614 | unicode-property-aliases-ecmascript@^1.0.4: 1615 | version "1.0.5" 1616 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" 1617 | integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== 1618 | 1619 | uri-js@^4.2.2: 1620 | version "4.2.2" 1621 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1622 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1623 | dependencies: 1624 | punycode "^2.1.0" 1625 | 1626 | v8-compile-cache@^2.0.3: 1627 | version "2.1.0" 1628 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" 1629 | integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== 1630 | 1631 | which@^1.2.9: 1632 | version "1.3.1" 1633 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1634 | dependencies: 1635 | isexe "^2.0.0" 1636 | 1637 | wordwrap@~1.0.0: 1638 | version "1.0.0" 1639 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1640 | 1641 | wrappy@1: 1642 | version "1.0.2" 1643 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1644 | 1645 | write@1.0.3: 1646 | version "1.0.3" 1647 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1648 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 1649 | dependencies: 1650 | mkdirp "^0.5.1" 1651 | --------------------------------------------------------------------------------