├── .gitattributes ├── test └── data │ ├── input │ ├── L1 │ │ ├── L2 │ │ │ └── test2.yml │ │ └── test.yml │ ├── README.md │ ├── frontmatter.md │ ├── frontmatter2.md │ ├── frontmatter-code.md │ └── big-markdown.md │ ├── outputSummaryArray.json │ ├── outputSummary.json │ ├── back.json │ └── output.json ├── .github └── FUNDING.yml ├── .gitignore ├── .travis.yml ├── spec └── support │ └── jasmine.json ├── utils └── markdown-it-highlight.js ├── cli.js ├── LICENSE ├── defaultOptions.js ├── package.json ├── README.md ├── index.test.js ├── index.js └── yarn.lock /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /test/data/input/L1/L2/test2.yml: -------------------------------------------------------------------------------- 1 | name: yaml2 2 | deep: true 3 | count: 10000 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: tscanlin 4 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | test/data/output/* 3 | test/data/back/* 4 | *.log 5 | *.log* 6 | cli.old.js 7 | -------------------------------------------------------------------------------- /test/data/input/L1/test.yml: -------------------------------------------------------------------------------- 1 | type: yaml 2 | draft: false 3 | num: 10 4 | object: 5 | prop1: true 6 | foo: bar 7 | list: 8 | - hi 9 | - bye 10 | - 1 11 | -------------------------------------------------------------------------------- /test/data/input/README.md: -------------------------------------------------------------------------------- 1 | # processmd 2 | 3 | Process a directory of markdown and yaml files to JSON files 4 | 5 | Linkify check: https://www.github.com/tscanlin/processmd 6 | -------------------------------------------------------------------------------- /test/data/input/frontmatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | test: frontmatter 3 | draft: true 4 | num: 1 5 | --- 6 | 7 | # processmd 8 | 9 | Process a directory of markdown *and* yaml files to JSON files 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "10" 4 | sudo: false 5 | branches: 6 | only: 7 | - master 8 | install: 9 | - npm install 10 | script: 11 | - npm run build 12 | - npm run test 13 | -------------------------------------------------------------------------------- /spec/support/jasmine.json: -------------------------------------------------------------------------------- 1 | { 2 | "spec_dir": ".", 3 | "spec_files": [ 4 | "*.test.js" 5 | ], 6 | "helpers": [ 7 | "helpers/**/*.js" 8 | ], 9 | "stopSpecOnExpectationFailure": false, 10 | "random": false 11 | } 12 | -------------------------------------------------------------------------------- /test/data/input/frontmatter2.md: -------------------------------------------------------------------------------- 1 | --- 2 | test: frontmatter 3 | draft: true 4 | num: 1 5 | --- 6 | 7 | Some text that might be a title 8 | 9 | Process [a](#) directory of markdown *and* yaml files to JSON files 10 | 11 | ## H2 heading 12 | -------------------------------------------------------------------------------- /test/data/input/frontmatter-code.md: -------------------------------------------------------------------------------- 1 | --- 2 | test: frontmatter 3 | draft: true 4 | num: 1 5 | --- 6 | 7 | Some text that might be a title 8 | 9 | Process a directory of markdown *and* yaml files to JSON files 10 | 11 | ```js 12 | function doStuff() { 13 | var a = 1 + 2 14 | console.log(a) 15 | } 16 | ``` 17 | -------------------------------------------------------------------------------- /utils/markdown-it-highlight.js: -------------------------------------------------------------------------------- 1 | const hljs = require('highlight.js') 2 | 3 | module.exports = function highlightPlugin (md) { 4 | const temp = md.renderer.rules.fence.bind(md.renderer.rules) 5 | md.renderer.rules.fence = (tokens, idx, options, env, slf) => { 6 | const token = tokens[idx] 7 | const code = token.content.trim() 8 | if (token.info.length > 0) { 9 | return `
${hljs.highlightAuto(code, [token.info]).value}`
10 | }
11 | return temp(tokens, idx, options, env, slf)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/cli.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const processmd = require('./index.js').default
4 | const defaultOptions = require('./defaultOptions.js')
5 | // prettier-ignore
6 | const argv = require('yargs')
7 | .usage('Usage: $0 Process a directory of markdown and yaml files to JSON files
\n", 62 | "title":"processmd", 63 | "dir":"test/data/output", 64 | "base":"frontmatter.json", 65 | "ext":".json", 66 | "sourceBase":"frontmatter.md", 67 | "sourceExt":".md" 68 | } 69 | ``` 70 | 71 | And given the following input directory: 72 | ```bash 73 | . 74 | ├── L1 75 | │ ├── L2 76 | │ │ └── test2.yml 77 | │ └── test.yml 78 | ├── README.md 79 | └── frontmatter.md 80 | ``` 81 | 82 | It would produce this directory output: 83 | ```bash 84 | . 85 | ├── L1 86 | │ ├── L2 87 | │ │ └── test2.json 88 | │ └── test.json 89 | ├── README.json 90 | └── frontmatter.json 91 | ``` 92 | 93 | ## Advanced Usage 94 | 95 | processmd will also output some summary data as a json object to stdout when used with the `--stdout` option. Then you can direct that to a file. 96 | 97 | ```bash 98 | processmd \"content/**/*.{yml,md}\" --stdout --outputDir output > summary.json 99 | ``` 100 | 101 | summary.json will contain: 102 | 103 | ``` 104 | { 105 | "fileMap":{ 106 | "test/data/output/frontmatter.json":"{...}", 107 | "test/data/output/L1/test.json":"{...}", 108 | ... 109 | } 110 | "sourceFileArray":[ 111 | "test/data/input/frontmatter.md", 112 | "test/data/input/L1/test.yml", 113 | ... 114 | } 115 | ``` 116 | 117 | 118 | ## Options 119 | 120 | ```js 121 | module.exports = { 122 | // The directory output will be processed to. 123 | outputDir: './dist', 124 | // Output location for the summary file (relative path to json file that has content from all files). 125 | summaryOutput: null, 126 | // Watch mode, recompile on file changes. 127 | watch: false, 128 | // Debounce timeout for watching files. 129 | watchDebounce: 1000, 130 | // Prefix for output filenames, default is no prefix, just the original filename. 131 | filenamePrefix: '', 132 | // For markdown files, rendering mathematical equations. 133 | renderLatex: true, 134 | // For markdown files, highlight code block. 135 | highlightCode: true, 136 | // For markdown files, how many characters should be included in an add `preview` property. 0 for no preview. 137 | preview: 0, 138 | // Option to override the preview delimeter to handle internationalization and add greater flexibility (default: ' '). 139 | previewDelimiter: ' ', 140 | // Include body props in summary file. 141 | includeBodyProps: false, 142 | // Include the markdown document title as `title` on the resulting json objects. 143 | includeTitle: true, 144 | // Include the directory as `dir` on the resulting json objects. 145 | includeDir: true, 146 | // Include the filename (.json) as `base` on the resulting json objects. 147 | includeBase: true, 148 | // Include the extension (.json) as `ext` on the resulting json objects. 149 | includeExt: true, 150 | // Include the source filename (.md / .yml) as `sourceBase` on the resulting json objects. 151 | includeSourceBase: true, 152 | // Include the source extension (.md / .yml) as `sourceExt` on the resulting json objects. 153 | includeSourceExt: true, 154 | // Convert mode. Possible options for this are 'json' or 'source'. 155 | convertMode: 'json', 156 | // Whether to output to stdout or not. 157 | stdout: false, 158 | // Custom markdown renderer function, null to use the default: `markdown-it`. 159 | markdownRenderer: null, 160 | // Options to pass to the default markdown processor, markdown-it. 161 | // See here for options: https://github.com/markdown-it/markdown-it#init-with-presets-and-options 162 | markdownOptions: {}, 163 | // Include generated ids on headings. 164 | headingIds: false 165 | } 166 | ``` 167 | 168 | To turn off options you can [prefix them with '--no-'](https://github.com/yargs/yargs/blob/master/docs/tricks.md#negate) 169 | 170 | For example, if you want to disable code highlighting you would run: 171 | 172 | ``` 173 | $ processmd ReadMe.md --no-highlightCode 174 | ``` 175 | 176 | ## Development 177 | 178 | To update tests, add new test files to `test/data/input`, and run `npm run start && npm run back` 179 | 180 | Enjoy! 181 | -------------------------------------------------------------------------------- /index.test.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn 2 | const processmdLib = require('./index') 3 | 4 | const outputJson = require('./test/data/output.json') 5 | const outputSummaryJson = require('./test/data/outputSummary.json') 6 | const backJson = require('./test/data/back.json') 7 | 8 | describe('processmd', () => { 9 | it('should process a directory to JSON properly', done => { 10 | const cli = spawn('node', [ 11 | './cli.js', 12 | 'test/data/input/**/*.{yml,md}', 13 | '--stdout', 14 | '--outputDir', 15 | 'test/data/output' 16 | ]) 17 | 18 | cli.stdout.on('data', data => { 19 | const parsedData = JSON.parse(data.toString()) 20 | expect(parsedData.sourceFileArray).toEqual(outputJson.sourceFileArray) 21 | Object.keys(parsedData.fileMap).forEach(key => { 22 | Object.keys(parsedData.fileMap[key]).forEach(prop => { 23 | if ( 24 | typeof parsedData.fileMap[key][prop] === 'string' && 25 | (prop === 'bodyHtml' || prop === 'bodyContent') 26 | ) { 27 | // Fix for windows breaking tests with different newline character. 28 | expect( 29 | parsedData.fileMap[key][prop].split('\r\n').join('\n') 30 | ).toEqual(outputJson.fileMap[key][prop].split('\r\n').join('\n')) 31 | } else { 32 | expect(parsedData.fileMap[key][prop]).toEqual( 33 | outputJson.fileMap[key][prop] 34 | ) 35 | } 36 | }) 37 | }) 38 | }) 39 | 40 | cli.on('close', code => { 41 | expect(code).toEqual(0) 42 | done() 43 | }) 44 | }) 45 | 46 | it('should process a directory to JSON properly with a summary file', done => { 47 | const cli = spawn('node', [ 48 | './cli.js', 49 | 'test/data/input/**/*.{yml,md}', 50 | '--stdout', 51 | '--outputDir', 52 | 'test/data/output', 53 | '--preview', 54 | '40' 55 | ]) 56 | 57 | cli.stdout.on('data', data => { 58 | const parsedData = JSON.parse(data.toString()) 59 | expect(parsedData.sourceFileArray).toEqual(outputSummaryJson.sourceFileArray) 60 | Object.keys(parsedData.fileMap).forEach(key => { 61 | Object.keys(parsedData.fileMap[key]).forEach(prop => { 62 | if ( 63 | typeof parsedData.fileMap[key][prop] === 'string' && 64 | (prop === 'bodyHtml' || prop === 'bodyContent') 65 | ) { 66 | // Fix for windows breaking tests with different newline character. 67 | expect( 68 | parsedData.fileMap[key][prop].split('\r\n').join('\n') 69 | ).toEqual(outputSummaryJson.fileMap[key][prop].split('\r\n').join('\n')) 70 | } else { 71 | expect(parsedData.fileMap[key][prop]).toEqual( 72 | outputSummaryJson.fileMap[key][prop] 73 | ) 74 | } 75 | }) 76 | }) 77 | }) 78 | 79 | cli.on('close', code => { 80 | expect(code).toEqual(0) 81 | done() 82 | }) 83 | }) 84 | 85 | it('should process a directory back to source properly', done => { 86 | const cli = spawn('node', [ 87 | './cli.js', 88 | 'test/data/output/**/*.json', 89 | '--convertMode', 90 | 'source', 91 | '--stdout', 92 | '--outputDir', 93 | 'test/data/back' 94 | ]) 95 | 96 | cli.stdout.on('data', data => { 97 | const parsedData = JSON.parse(data.toString()) 98 | expect(parsedData.sourceFileArray).toEqual(backJson.sourceFileArray) 99 | Object.keys(parsedData.fileMap).forEach(key => { 100 | expect(parsedData.fileMap[key].split('\r\n').join('\n')).toEqual( 101 | backJson.fileMap[key] 102 | ) 103 | }) 104 | }) 105 | 106 | cli.on('close', code => { 107 | expect(code).toEqual(0) 108 | done() 109 | }) 110 | }) 111 | 112 | it('#isMarkdown should properly determine markdown files', () => { 113 | expect( 114 | processmdLib._isMarkdown({ 115 | bodyContent: 'Hi!', 116 | bodyHtml: 'Hi!
' 117 | }) 118 | ).toBe(true) 119 | }) 120 | 121 | it('#isMarkdown should properly determine when files are NOT markdown files', () => { 122 | expect( 123 | processmdLib._isMarkdown({ 124 | title: 'Foo', 125 | someProp1: true 126 | }) 127 | ).toBe(false) 128 | }) 129 | 130 | it('#findCommonDir should find the lowest common parent from an array of files', () => { 131 | expect( 132 | processmdLib._findCommonDir([ 133 | 'test/data/output/frontmatter.json', 134 | 'test/data/output/L1/L2/test2.json', 135 | 'test/data/output/L1/test.json', 136 | 'test/data/output/README.json' 137 | ]) 138 | ).toBe('test/data/output/') 139 | }) 140 | 141 | it('#findCommonDir should match complete paths only', () => { 142 | expect( 143 | processmdLib._findCommonDir([ 144 | 'content/pages', 145 | 'content/posts' 146 | ]) 147 | ).toBe('content/') 148 | 149 | expect( 150 | processmdLib._findCommonDir([ 151 | 'pages/2016/about.md', 152 | 'posts/drafts/hello_world.md', 153 | 'posts/drafts/test_post.md' 154 | ]) 155 | ).toBe('') 156 | 157 | expect( 158 | processmdLib._findCommonDir([ 159 | 'pages/about.md' 160 | ]) 161 | ).toBe('pages/') 162 | 163 | expect( 164 | processmdLib._findCommonDir([ 165 | 'about.md' 166 | ]) 167 | ).toBe('') 168 | }) 169 | 170 | it('should parse markdownOptions if argument is JSON', done => { 171 | const cli = spawn('node', [ 172 | './cli.js', 173 | 'test/data/input/README.md', 174 | '--includeBodyProps', 175 | '--markdownOptions', 176 | '{"linkify":true}', 177 | '--stdout', 178 | '--outputDir', 179 | 'test/data/output' 180 | ]) 181 | 182 | const output = [] 183 | cli.stdout.on('data', data => { 184 | output.push(data.toString()) 185 | }) 186 | 187 | cli.on('close', code => { 188 | const parsedOutput = JSON.parse(output.join('')) 189 | expect(parsedOutput.fileMap['test/data/output/README.json'].bodyHtml.indexOf(' { 196 | const cli = spawn('node', [ 197 | './cli.js', 198 | 'test/data/input/**/*.{yml,md}', 199 | '--stdout', 200 | '--outputDir', 201 | 'test/data/output', 202 | '--markdownOptions zero' 203 | ]) 204 | 205 | cli.on('close', code => { 206 | expect(code).toEqual(0) 207 | done() 208 | }) 209 | }) 210 | }) 211 | -------------------------------------------------------------------------------- /test/data/output.json: -------------------------------------------------------------------------------- 1 | { 2 | "fileMap": { 3 | "test/data/output/big-markdown.json": { 4 | "bodyContent": "An h1 header\n============\n\nParagraphs are separated by a blank line.\n\n2nd paragraph. *Italic*, **bold**, and `monospace`. Itemized lists\nlook like:\n\n * this one\n * that one\n * the other one\n\nNote that --- not considering the asterisk --- the actual text\ncontent starts at 4-columns in.\n\n> Block quotes are\n> written like so.\n>\n> They can span multiple paragraphs,\n> if you like.\n\nUse 3 dashes for an em-dash. Use 2 dashes for ranges (ex., \"it's all\nin chapters 12--14\"). Three dots ... will be converted to an ellipsis.\nUnicode is supported. ☺\n\n\n\nAn h2 header\n------------\n\nHere's a numbered list:\n\n 1. first item\n 2. second item\n 3. third item\n\nNote again how the actual text starts at 4 columns in (4 characters\nfrom the left side). Here's a code sample:\n\n # Let me re-iterate ...\n for i in 1 .. 10 { do-something(i) }\n\nAs you probably guessed, indented 4 spaces. By the way, instead of\nindenting the block, you can use delimited blocks, if you like:\n\n~~~\ndefine foobar() {\n print \"Welcome to flavor country!\";\n}\n~~~\n\n(which makes copying & pasting easier). You can optionally mark the\ndelimited block for Pandoc to syntax highlight it:\n\n~~~python\nimport time\n# Quick, count to ten!\nfor i in range(10):\n # (but not *too* quick)\n time.sleep(0.5)\n print i\n~~~\n\n\n\n### An h3 header ###\n\nNow a nested list:\n\n 1. First, get these ingredients:\n\n * carrots\n * celery\n * lentils\n\n 2. Boil some water.\n\n 3. Dump everything in the pot and follow\n this algorithm:\n\n find wooden spoon\n uncover pot\n stir\n cover pot\n balance wooden spoon precariously on pot handle\n wait 10 minutes\n goto first step (or shut off burner when done)\n\n Do not bump wooden spoon or it will fall.\n\nNotice again how text always lines up on 4-space indents (including\nthat last line which continues item 3 above).\n\nHere's a link to [a website](http://foo.bar), to a [local\ndoc](local-doc.html), and to a [section heading in the current\ndoc](#an-h2-header). Here's a footnote [^1].\n\n[^1]: Footnote text goes here.\n\nTables can look like this:\n\nsize material color\n---- ------------ ------------\n9 leather brown\n10 hemp canvas natural\n11 glass transparent\n\nTable: Shoes, their sizes, and what they're made of\n\n(The above is the caption for the table.) Pandoc also supports\nmulti-line tables:\n\n-------- -----------------------\nkeyword text\n-------- -----------------------\nred Sunsets, apples, and\n other red or reddish\n things.\n\ngreen Leaves, grass, frogs\n and other things it's\n not easy being.\n-------- -----------------------\n\nA horizontal rule follows.\n\n***\n\nHere's a definition list:\n\napples\n : Good for making applesauce.\noranges\n : Citrus!\ntomatoes\n : There's no \"e\" in tomatoe.\n\nAgain, text is indented 4 spaces. (Put a blank line between each\nterm/definition pair to spread things out more.)\n\nHere's a \"line block\":\n\n| Line one\n| Line too\n| Line tree\n\nand images can be specified like so:\n\n\n\nInline math equations go in like so: $\\omega = d\\phi / dt$. Display\nmath should get its own line and be put in in double-dollarsigns:\n\n$$I = \\int \\rho R^{2} dV$$\n\nAnd note that you can backslash-escape any punctuation characters\nwhich you wish to be displayed literally, ex.: \\`foo\\`, \\*bar\\*, etc.", 5 | "bodyHtml": "Paragraphs are separated by a blank line.
\n2nd paragraph. Italic, bold, and monospace. Itemized lists\nlook like:
Note that --- not considering the asterisk --- the actual text\ncontent starts at 4-columns in.
\n\n\nBlock quotes are\nwritten like so.
\nThey can span multiple paragraphs,\nif you like.
\n
Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all\nin chapters 12--14"). Three dots ... will be converted to an ellipsis.\nUnicode is supported. ☺
\nHere's a numbered list:
\nNote again how the actual text starts at 4 columns in (4 characters\nfrom the left side). Here's a code sample:
\n# Let me re-iterate ...\nfor i in 1 .. 10 { do-something(i) }\n\nAs you probably guessed, indented 4 spaces. By the way, instead of\nindenting the block, you can use delimited blocks, if you like:
\ndefine foobar() {\n print "Welcome to flavor country!";\n}\n\n(which makes copying & pasting easier). You can optionally mark the\ndelimited block for Pandoc to syntax highlight it:
\nimport time\n# Quick, count to ten!\nfor i in range(10):\n # (but not *too* quick)\n time.sleep(0.5)\n print iNow a nested list:
\nFirst, get these ingredients:
\nBoil some water.
\nDump everything in the pot and follow\nthis algorithm:
\nfind wooden spoon\nuncover pot\nstir\ncover pot\nbalance wooden spoon precariously on pot handle\nwait 10 minutes\ngoto first step (or shut off burner when done)\n\nDo not bump wooden spoon or it will fall.
\nNotice again how text always lines up on 4-space indents (including\nthat last line which continues item 3 above).
\nHere's a link to a website, to a local\ndoc, and to a section heading in the current\ndoc. Here's a footnote [^1].
\n[^1]: Footnote text goes here.
\nTables can look like this:
\nsize material color
\n9 leather brown\n10 hemp canvas natural\n11 glass transparent
\nTable: Shoes, their sizes, and what they're made of
\n(The above is the caption for the table.) Pandoc also supports\nmulti-line tables:
\nkeyword text
\nred Sunsets, apples, and\nother red or reddish\nthings.
\ngreen Leaves, grass, frogs\nand other things it's\nnot easy being.
\nA horizontal rule follows.
\nHere's a definition list:
\napples\n: Good for making applesauce.\noranges\n: Citrus!\ntomatoes\n: There's no "e" in tomatoe.
\nAgain, text is indented 4 spaces. (Put a blank line between each\nterm/definition pair to spread things out more.)
\nHere's a "line block":
\n| Line one\n| Line too\n| Line tree
\nand images can be specified like so:
\n
Inline math equations go in like so: $\\omega = d\\phi / dt$. Display\nmath should get its own line and be put in in double-dollarsigns:
\n$$I = \\int \\rho R^{2} dV$$
\nAnd note that you can backslash-escape any punctuation characters\nwhich you wish to be displayed literally, ex.: `foo`, *bar*, etc.
\n", 6 | "title": "An h1 header", 7 | "dir": "test/data/output", 8 | "base": "big-markdown.json", 9 | "ext": ".json", 10 | "sourceBase": "big-markdown.md", 11 | "sourceExt": ".md" 12 | }, 13 | "test/data/output/frontmatter-code.json": { 14 | "test": "frontmatter", 15 | "draft": true, 16 | "num": 1, 17 | "bodyContent": "Some text that might be a title\n\nProcess a directory of markdown *and* yaml files to JSON files\n\n```js\nfunction doStuff() {\n var a = 1 + 2\n console.log(a)\n}\n```", 18 | "bodyHtml": "Some text that might be a title
\nProcess a directory of markdown and yaml files to JSON files
\nfunction doStuff() {\n var a = 1 + 2\n console.log(a)\n}",
19 | "title": "Some text that might be a title",
20 | "dir": "test/data/output",
21 | "base": "frontmatter-code.json",
22 | "ext": ".json",
23 | "sourceBase": "frontmatter-code.md",
24 | "sourceExt": ".md"
25 | },
26 | "test/data/output/frontmatter.json": {
27 | "test": "frontmatter",
28 | "draft": true,
29 | "num": 1,
30 | "bodyContent": "# processmd\n\nProcess a directory of markdown *and* yaml files to JSON files",
31 | "bodyHtml": "Process a directory of markdown and yaml files to JSON files
\n", 32 | "title": "processmd", 33 | "dir": "test/data/output", 34 | "base": "frontmatter.json", 35 | "ext": ".json", 36 | "sourceBase": "frontmatter.md", 37 | "sourceExt": ".md" 38 | }, 39 | "test/data/output/frontmatter2.json": { 40 | "test": "frontmatter", 41 | "draft": true, 42 | "num": 1, 43 | "bodyContent": "Some text that might be a title\n\nProcess [a](#) directory of markdown *and* yaml files to JSON files\n\n## H2 heading", 44 | "bodyHtml": "Some text that might be a title
\nProcess a directory of markdown and yaml files to JSON files
\nProcess a directory of markdown and yaml files to JSON files
\nLinkify check: https://www.github.com/tscanlin/processmd
\n", 84 | "title": "processmd", 85 | "dir": "test/data/output", 86 | "base": "README.json", 87 | "ext": ".json", 88 | "sourceBase": "README.md", 89 | "sourceExt": ".md" 90 | } 91 | }, 92 | "sourceFileArray": [ 93 | "test/data/input/big-markdown.md", 94 | "test/data/input/frontmatter-code.md", 95 | "test/data/input/frontmatter.md", 96 | "test/data/input/frontmatter2.md", 97 | "test/data/input/L1/L2/test2.yml", 98 | "test/data/input/L1/test.yml", 99 | "test/data/input/README.md" 100 | ] 101 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const fs = require('fs') 4 | const path = require('path') 5 | const globby = require('globby') 6 | const MarkdownIt = require('markdown-it') 7 | const markdownItLatex = require('markdown-it-latex').default 8 | const yaml = require('js-yaml') 9 | const mkdirp = require('mkdirp') 10 | const removeMd = require('remove-markdown') 11 | const markdownItHighlight = require('./utils/markdown-it-highlight.js') 12 | const defaultOptions = require('./defaultOptions') 13 | 14 | const EXTENSIONS = { 15 | JSON: '.json', 16 | MD: '.md', 17 | YML: '.yml' 18 | } 19 | const NEWLINE = '\n' 20 | const FRONTMATTER_SEPERATOR = '---' 21 | 22 | const SOURCE_MODE = 'source' 23 | 24 | // Main function 25 | function processmd (options, callback) { 26 | options = Object.assign({}, defaultOptions, options) 27 | 28 | const markdownIt = MarkdownIt(options.markdownOptions) 29 | 30 | if (options.renderLatex) { 31 | markdownIt.use(markdownItLatex) 32 | } 33 | 34 | if (options.highlightCode) { 35 | markdownIt.use(markdownItHighlight) 36 | } 37 | if (options.headingIds) { 38 | markdownIt.use(require('markdown-it-named-headings')) 39 | } 40 | 41 | options.markdownRenderer = options.markdownRenderer || function mdRender (str) { return markdownIt.render(str) } 42 | 43 | const globs = (options.files || []).concat(options._ || []) 44 | if (globs.length === 0) { 45 | throw new Error('You must pass file patterns in to be processed.') 46 | } 47 | 48 | const p = new Promise(function (resolve, reject) { 49 | globby(globs).then(function (result) { 50 | const commonDir = findCommonDir(result) 51 | options._commonDir = commonDir 52 | 53 | if (options.watch) { 54 | const d = debounce( 55 | function () { 56 | processOutput() 57 | }, 58 | options.watchDebounce, 59 | true 60 | ) 61 | 62 | // fs.watch isn't supported on linux. 63 | try { 64 | fs.watch(commonDir, { recursive: true }, function (event, filename) { 65 | d() 66 | }) 67 | } catch (e) { 68 | console.log(e) 69 | } 70 | } 71 | 72 | let processingFunc = processYamlAndMarkdown 73 | if (typeof options._customProcessingFunc === 'function') { 74 | processingFunc = options._customProcessingFunc // used for testing. 75 | } else if (options.convertMode === SOURCE_MODE) { 76 | processingFunc = processJson 77 | } 78 | 79 | function processOutput () { 80 | const summaryObj = {} 81 | summaryObj.fileMap = {} 82 | // Case insensitive array to stay backwards compatible for now. 83 | summaryObj.sourceFileArray = result.sort(function (a, b) { 84 | return a.toLowerCase().localeCompare(b.toLowerCase()) 85 | }) 86 | let finishCount = 0 87 | const summaryArray = [] 88 | result.forEach(function (file, i) { 89 | processingFunc(file, options, function (newFile, content) { 90 | finishCount++ 91 | 92 | // Replace backslashes with forward slashes to keep windows consistent. 93 | const filename = replaceBackslashes(newFile) 94 | 95 | // Remove body props from summary. 96 | if (!options.includeBodyProps) { 97 | content = removeBodyProps(content) 98 | } 99 | 100 | const val = options.convertMode === SOURCE_MODE 101 | ? content 102 | : JSON.parse(content) 103 | summaryObj.fileMap[filename] = val 104 | summaryArray.push(val) 105 | 106 | if (finishCount === result.length) { 107 | // Sort the files. 108 | const sortedObj = {} 109 | Object.keys(summaryObj.fileMap) 110 | .sort(function (a, b) { 111 | return a.toLowerCase().localeCompare(b.toLowerCase()) 112 | }) 113 | .forEach(function (v, i) { 114 | sortedObj[v] = summaryObj.fileMap[v] 115 | }) 116 | summaryObj.fileMap = sortedObj 117 | 118 | if (options.summaryOutput) { 119 | if (options.summaryOutputFormat === 'array') { 120 | writeFileContent(options.summaryOutput, JSON.stringify(summaryArray, null, 2), function (e, d) { 121 | resolve(summaryArray) 122 | }) 123 | } else { 124 | writeFileContent(options.summaryOutput, JSON.stringify(summaryObj, null, 2), function (e, d) { 125 | resolve(summaryObj) 126 | }) 127 | } 128 | } else { 129 | resolve(summaryObj) 130 | } 131 | } 132 | }) 133 | }) 134 | } 135 | 136 | processOutput() 137 | }) 138 | }) 139 | 140 | // Enable callback support too. 141 | if (callback) { 142 | p.then(result => { 143 | callback(null, result) 144 | }) 145 | } 146 | 147 | return p 148 | } 149 | 150 | function processYamlAndMarkdown (file, options, cb) { 151 | readFileContent(file, (err, file, fileContent) => { 152 | if (err) throw (err) 153 | const hasFrontmatter = fileContent.indexOf(FRONTMATTER_SEPERATOR) === 0 154 | const isYaml = file.endsWith('.yaml') || file.endsWith('.yml') 155 | let content = fileContent.trim() 156 | let frontmatter = {} 157 | let jsonData = {} 158 | 159 | // Markdown. 160 | if (hasFrontmatter) { 161 | const splitContent = fileContent.match(/^-{3}[\s\S]+?-{3}/) 162 | frontmatter = yaml.safeLoad(splitContent[0].substring(3, splitContent[0].length - 3)) 163 | content = fileContent.substring(splitContent[0].length).trim() 164 | } 165 | 166 | if (isYaml) { 167 | jsonData = yaml.safeLoad(content) 168 | } else { 169 | jsonData = Object.assign({}, frontmatter, { 170 | bodyContent: content, 171 | bodyHtml: options.markdownRenderer(content) 172 | }) 173 | } 174 | 175 | // Rename to the new file. 176 | const baseFilename = file.replace(options._commonDir, '') 177 | const parsedPath = path.parse(path.join(options.outputDir, baseFilename)) 178 | const sourceExt = parsedPath.ext 179 | const sourceBase = parsedPath.base 180 | const newPathObj = Object.assign({}, parsedPath, { 181 | ext: EXTENSIONS.JSON, 182 | base: options.filenamePrefix + 183 | parsedPath.base.replace(sourceExt, EXTENSIONS.JSON) 184 | }) 185 | const newPath = path.format(newPathObj) 186 | 187 | if (options.preview > 0 && jsonData.bodyContent) { 188 | const preview = removeMd(jsonData.bodyContent).split('\r').join('') // fix Windows eol. 189 | let splitPoint = 0 190 | let i = splitPoint 191 | while (i < options.preview) { 192 | i++ 193 | if (preview[i] === options.previewDelimiter) { 194 | splitPoint = i 195 | } 196 | if (preview[i] === undefined) { 197 | splitPoint = i 198 | break 199 | } 200 | } 201 | jsonData.preview = preview.substring(0, splitPoint).trim() 202 | } 203 | if (options.includeTitle && jsonData.bodyContent) { 204 | jsonData.title = jsonData.title || jsonData.bodyHtml.match(/>(.*?)<\//)[1] 205 | } 206 | if (options.includeDir) { 207 | jsonData.dir = replaceBackslashes(path.dirname(newPath)) 208 | } 209 | if (options.includeBase) { 210 | jsonData.base = path.basename(newPath) 211 | } 212 | if (options.includeExt) { 213 | jsonData.ext = EXTENSIONS.JSON 214 | } 215 | if (options.includeSourceBase) { 216 | jsonData.sourceBase = sourceBase 217 | } 218 | if (options.includeSourceExt) { 219 | jsonData.sourceExt = sourceExt 220 | } 221 | 222 | // TODO: make this a default callback 223 | // 2 spaces indent for stringify. 224 | writeFileContent(newPath, JSON.stringify(jsonData, null, 2), function (e, d) { 225 | cb(newPath, JSON.stringify(jsonData)) 226 | }) 227 | }) 228 | } 229 | 230 | function processJson (file, options, cb) { 231 | readFileContent(file, (err, file, fileContent) => { 232 | if (err) throw (err) 233 | const fileData = JSON.parse(fileContent) 234 | 235 | // Process content. 236 | let newContent = '' 237 | const cleanProps = cleanFileProps( 238 | cleanMarkdownProps(Object.assign({}, fileData)) 239 | ) 240 | const cleanYaml = yaml.safeDump(cleanProps) 241 | let extension = '.yml' 242 | if (isMarkdown(fileData)) { 243 | newContent += fileData.bodyContent + NEWLINE 244 | if (Object.keys(cleanProps).length > 0) { 245 | newContent = 246 | FRONTMATTER_SEPERATOR + NEWLINE + 247 | cleanYaml + 248 | FRONTMATTER_SEPERATOR + NEWLINE + NEWLINE + 249 | newContent 250 | } 251 | extension = '.md' 252 | } else { 253 | newContent = cleanYaml 254 | } 255 | 256 | // Rename to the new file. 257 | const baseFilename = file.replace(options._commonDir, '') 258 | const parsedPath = path.parse(path.join(options.outputDir, baseFilename)) 259 | const sourceExt = parsedPath.ext 260 | // const sourceBase = parsedPath.base 261 | const newPathObj = Object.assign({}, parsedPath, { 262 | ext: extension, 263 | base: options.filenamePrefix + 264 | parsedPath.base.replace(sourceExt, extension) 265 | }) 266 | const newPath = path.format(newPathObj) 267 | 268 | writeFileContent(newPath, newContent, function (e, d) { 269 | cb(newPath, newContent) 270 | }) 271 | }) 272 | } 273 | 274 | function cleanFileProps (obj) { 275 | delete obj.dir 276 | delete obj.base 277 | delete obj.ext 278 | delete obj.sourceBase 279 | delete obj.sourceExt 280 | return obj 281 | } 282 | 283 | function cleanMarkdownProps (obj) { 284 | delete obj.bodyContent 285 | delete obj.bodyHtml 286 | delete obj.preview 287 | delete obj.title 288 | return obj 289 | } 290 | 291 | // Read a file making sure that it is not a directory first. 292 | function readFileContent (file, cb) { 293 | if (!file || fs.lstatSync(file).isDirectory()) { 294 | return null 295 | } 296 | fs.readFile(file, (err, data) => { 297 | cb(err, file, data && data.toString()) 298 | }) 299 | } 300 | 301 | // Write a file making sure the directory exists first. 302 | function writeFileContent (file, content, cb) { 303 | mkdirp(path.dirname(file), function (err) { 304 | if (err) throw (err) 305 | fs.writeFile(file, content, (e, data) => { 306 | cb(e, data) 307 | }) 308 | }) 309 | } 310 | 311 | // Replace backslashes for windows paths. 312 | function replaceBackslashes (str) { 313 | return str.split('\\').join('/') 314 | } 315 | 316 | // Determine if its data for a markdown file. 317 | function isMarkdown (data) { 318 | return Boolean(data.bodyContent && data.bodyHtml) 319 | } 320 | 321 | // Find the common parent directory given an array of files. 322 | function findCommonDir (files) { 323 | const path = files.reduce((path, file, fileIndex) => { 324 | // If it's a file not in any directory then just skip it 325 | // by assigning the previous value. 326 | if (!file.includes('/')) { 327 | return path 328 | } 329 | 330 | // No path set yet 331 | if (!path && fileIndex === 0) { 332 | return file.substr(0, file.lastIndexOf('/') + 1) 333 | } else { 334 | // Get index of last shared character 335 | let sharedIndex = Array.from(path).findIndex((element, index) => { 336 | if (file[index] !== element) { 337 | return index - 1 338 | } 339 | }) 340 | 341 | // Round to nearest full directory 342 | if (sharedIndex > -1) { 343 | sharedIndex = path.substr(0, sharedIndex).lastIndexOf('/') 344 | } 345 | 346 | // Return shared directory path 347 | if (sharedIndex > -1) { 348 | return path.substr(0, sharedIndex + 1) 349 | } else if (file.startsWith(path)) { 350 | return path 351 | } 352 | 353 | // No shared directory path 354 | return '' 355 | } 356 | }, '') 357 | 358 | return path 359 | } 360 | 361 | // Remove body props from summary. 362 | function removeBodyProps (content) { 363 | try { 364 | const json = JSON.parse(content) 365 | delete json.bodyContent 366 | delete json.bodyHtml 367 | return JSON.stringify(json) 368 | } catch (e) { } 369 | } 370 | 371 | // Debounce from: https://davidwalsh.name/function-debounce 372 | function debounce (func, wait, immediate) { 373 | var timeout 374 | return function () { 375 | var context = this 376 | var args = arguments 377 | var later = function () { 378 | timeout = null 379 | if (!immediate) func.apply(context, args) 380 | } 381 | var callNow = immediate && !timeout 382 | clearTimeout(timeout) 383 | timeout = setTimeout(later, wait) 384 | if (callNow) func.apply(context, args) 385 | } 386 | } 387 | 388 | module.exports = { 389 | default: processmd, 390 | _readFileContent: readFileContent, // for testing. 391 | _writeFileContent: writeFileContent, // for testing. 392 | _isMarkdown: isMarkdown, // for testing. 393 | _findCommonDir: findCommonDir // for testing. 394 | } 395 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/helper-validator-identifier@^7.10.4": 13 | version "7.12.11" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" 15 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 16 | 17 | "@babel/highlight@^7.10.4": 18 | version "7.10.4" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" 20 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.10.4" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@nodelib/fs.scandir@2.1.3": 27 | version "2.1.3" 28 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" 29 | integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== 30 | dependencies: 31 | "@nodelib/fs.stat" "2.0.3" 32 | run-parallel "^1.1.9" 33 | 34 | "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": 35 | version "2.0.3" 36 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" 37 | integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== 38 | 39 | "@nodelib/fs.walk@^1.2.3": 40 | version "1.2.4" 41 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" 42 | integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== 43 | dependencies: 44 | "@nodelib/fs.scandir" "2.1.3" 45 | fastq "^1.6.0" 46 | 47 | "@types/glob@^7.1.1": 48 | version "7.1.3" 49 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" 50 | integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== 51 | dependencies: 52 | "@types/minimatch" "*" 53 | "@types/node" "*" 54 | 55 | "@types/minimatch@*": 56 | version "3.0.3" 57 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 58 | integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== 59 | 60 | "@types/node@*": 61 | version "14.14.16" 62 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.16.tgz#3cc351f8d48101deadfed4c9e4f116048d437b4b" 63 | integrity sha512-naXYePhweTi+BMv11TgioE2/FXU4fSl29HAH1ffxVciNsH3rYXjNP2yM8wqmSm7jS20gM8TIklKiTen+1iVncw== 64 | 65 | acorn-jsx@^5.2.0: 66 | version "5.3.1" 67 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" 68 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== 69 | 70 | acorn@^7.1.1: 71 | version "7.4.1" 72 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 73 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 74 | 75 | ajv@^6.10.0, ajv@^6.10.2: 76 | version "6.12.6" 77 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 78 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 79 | dependencies: 80 | fast-deep-equal "^3.1.1" 81 | fast-json-stable-stringify "^2.0.0" 82 | json-schema-traverse "^0.4.1" 83 | uri-js "^4.2.2" 84 | 85 | ansi-escapes@^4.2.1: 86 | version "4.3.1" 87 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" 88 | integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== 89 | dependencies: 90 | type-fest "^0.11.0" 91 | 92 | ansi-regex@^4.1.0: 93 | version "4.1.1" 94 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" 95 | integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== 96 | 97 | ansi-regex@^5.0.0: 98 | version "5.0.0" 99 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 100 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 101 | 102 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 103 | version "3.2.1" 104 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 105 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 106 | dependencies: 107 | color-convert "^1.9.0" 108 | 109 | ansi-styles@^4.1.0: 110 | version "4.3.0" 111 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 112 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 113 | dependencies: 114 | color-convert "^2.0.1" 115 | 116 | argparse@^1.0.7: 117 | version "1.0.10" 118 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 119 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 120 | dependencies: 121 | sprintf-js "~1.0.2" 122 | 123 | argparse@^2.0.1: 124 | version "2.0.1" 125 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 126 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 127 | 128 | array-includes@^3.0.3, array-includes@^3.1.1: 129 | version "3.1.2" 130 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" 131 | integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== 132 | dependencies: 133 | call-bind "^1.0.0" 134 | define-properties "^1.1.3" 135 | es-abstract "^1.18.0-next.1" 136 | get-intrinsic "^1.0.1" 137 | is-string "^1.0.5" 138 | 139 | array-union@^2.1.0: 140 | version "2.1.0" 141 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 142 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 143 | 144 | asciimath-to-latex@^0.3.2: 145 | version "0.3.2" 146 | resolved "https://registry.yarnpkg.com/asciimath-to-latex/-/asciimath-to-latex-0.3.2.tgz#1f6e6b36ccc11e3de0ceeffa3dce16483ec28b4e" 147 | integrity sha1-H25rNszBHj3gzu/6Pc4WSD7Ci04= 148 | 149 | astral-regex@^1.0.0: 150 | version "1.0.0" 151 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 152 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 153 | 154 | balanced-match@^1.0.0: 155 | version "1.0.2" 156 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 157 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 158 | 159 | brace-expansion@^1.1.7: 160 | version "1.1.11" 161 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 162 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 163 | dependencies: 164 | balanced-match "^1.0.0" 165 | concat-map "0.0.1" 166 | 167 | braces@^3.0.1: 168 | version "3.0.2" 169 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 170 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 171 | dependencies: 172 | fill-range "^7.0.1" 173 | 174 | call-bind@^1.0.0: 175 | version "1.0.0" 176 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" 177 | integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== 178 | dependencies: 179 | function-bind "^1.1.1" 180 | get-intrinsic "^1.0.0" 181 | 182 | callsites@^3.0.0: 183 | version "3.1.0" 184 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 185 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 186 | 187 | camelcase@^5.0.0: 188 | version "5.3.1" 189 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 190 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 191 | 192 | chalk@^2.0.0, chalk@^2.1.0: 193 | version "2.4.2" 194 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 195 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 196 | dependencies: 197 | ansi-styles "^3.2.1" 198 | escape-string-regexp "^1.0.5" 199 | supports-color "^5.3.0" 200 | 201 | chalk@^4.1.0: 202 | version "4.1.0" 203 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" 204 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 205 | dependencies: 206 | ansi-styles "^4.1.0" 207 | supports-color "^7.1.0" 208 | 209 | chardet@^0.7.0: 210 | version "0.7.0" 211 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 212 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 213 | 214 | cli-cursor@^3.1.0: 215 | version "3.1.0" 216 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 217 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 218 | dependencies: 219 | restore-cursor "^3.1.0" 220 | 221 | cli-width@^3.0.0: 222 | version "3.0.0" 223 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" 224 | integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== 225 | 226 | cliui@^5.0.0: 227 | version "5.0.0" 228 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 229 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 230 | dependencies: 231 | string-width "^3.1.0" 232 | strip-ansi "^5.2.0" 233 | wrap-ansi "^5.1.0" 234 | 235 | color-convert@^1.9.0: 236 | version "1.9.3" 237 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 238 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 239 | dependencies: 240 | color-name "1.1.3" 241 | 242 | color-convert@^2.0.1: 243 | version "2.0.1" 244 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 245 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 246 | dependencies: 247 | color-name "~1.1.4" 248 | 249 | color-name@1.1.3: 250 | version "1.1.3" 251 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 252 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 253 | 254 | color-name@~1.1.4: 255 | version "1.1.4" 256 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 257 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 258 | 259 | concat-map@0.0.1: 260 | version "0.0.1" 261 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 262 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 263 | 264 | contains-path@^0.1.0: 265 | version "0.1.0" 266 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 267 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 268 | 269 | cross-spawn@^6.0.5: 270 | version "6.0.5" 271 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 272 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 273 | dependencies: 274 | nice-try "^1.0.4" 275 | path-key "^2.0.1" 276 | semver "^5.5.0" 277 | shebang-command "^1.2.0" 278 | which "^1.2.9" 279 | 280 | debug-log@^1.0.0: 281 | version "1.0.1" 282 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 283 | integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= 284 | 285 | debug@^2.6.9: 286 | version "2.6.9" 287 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 288 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 289 | dependencies: 290 | ms "2.0.0" 291 | 292 | debug@^4.0.1: 293 | version "4.3.1" 294 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 295 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 296 | dependencies: 297 | ms "2.1.2" 298 | 299 | decamelize@^1.2.0: 300 | version "1.2.0" 301 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 302 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 303 | 304 | deep-is@~0.1.3: 305 | version "0.1.3" 306 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 307 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 308 | 309 | define-properties@^1.1.3: 310 | version "1.1.3" 311 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 312 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 313 | dependencies: 314 | object-keys "^1.0.12" 315 | 316 | deglob@^4.0.1: 317 | version "4.0.1" 318 | resolved "https://registry.yarnpkg.com/deglob/-/deglob-4.0.1.tgz#0685c6383992fd6009be10653a2b1116696fad55" 319 | integrity sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg== 320 | dependencies: 321 | find-root "^1.0.0" 322 | glob "^7.0.5" 323 | ignore "^5.0.0" 324 | pkg-config "^1.1.0" 325 | run-parallel "^1.1.2" 326 | uniq "^1.0.1" 327 | 328 | dir-glob@^3.0.1: 329 | version "3.0.1" 330 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 331 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 332 | dependencies: 333 | path-type "^4.0.0" 334 | 335 | doctrine@1.5.0: 336 | version "1.5.0" 337 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 338 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 339 | dependencies: 340 | esutils "^2.0.2" 341 | isarray "^1.0.0" 342 | 343 | doctrine@^2.1.0: 344 | version "2.1.0" 345 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 346 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 347 | dependencies: 348 | esutils "^2.0.2" 349 | 350 | doctrine@^3.0.0: 351 | version "3.0.0" 352 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 353 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 354 | dependencies: 355 | esutils "^2.0.2" 356 | 357 | emoji-regex@^7.0.1: 358 | version "7.0.3" 359 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 360 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 361 | 362 | emoji-regex@^8.0.0: 363 | version "8.0.0" 364 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 365 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 366 | 367 | entities@~2.1.0: 368 | version "2.1.0" 369 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" 370 | integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== 371 | 372 | error-ex@^1.2.0, error-ex@^1.3.1: 373 | version "1.3.2" 374 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 375 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 376 | dependencies: 377 | is-arrayish "^0.2.1" 378 | 379 | es-abstract@^1.18.0-next.1: 380 | version "1.18.0-next.1" 381 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" 382 | integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== 383 | dependencies: 384 | es-to-primitive "^1.2.1" 385 | function-bind "^1.1.1" 386 | has "^1.0.3" 387 | has-symbols "^1.0.1" 388 | is-callable "^1.2.2" 389 | is-negative-zero "^2.0.0" 390 | is-regex "^1.1.1" 391 | object-inspect "^1.8.0" 392 | object-keys "^1.1.1" 393 | object.assign "^4.1.1" 394 | string.prototype.trimend "^1.0.1" 395 | string.prototype.trimstart "^1.0.1" 396 | 397 | es-to-primitive@^1.2.1: 398 | version "1.2.1" 399 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 400 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 401 | dependencies: 402 | is-callable "^1.1.4" 403 | is-date-object "^1.0.1" 404 | is-symbol "^1.0.2" 405 | 406 | escape-string-regexp@^1.0.5: 407 | version "1.0.5" 408 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 409 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 410 | 411 | eslint-config-standard-jsx@8.1.0: 412 | version "8.1.0" 413 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz#314c62a0e6f51f75547f89aade059bec140edfc7" 414 | integrity sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw== 415 | 416 | eslint-config-standard@14.1.1: 417 | version "14.1.1" 418 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" 419 | integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== 420 | 421 | eslint-import-resolver-node@^0.3.2: 422 | version "0.3.4" 423 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" 424 | integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== 425 | dependencies: 426 | debug "^2.6.9" 427 | resolve "^1.13.1" 428 | 429 | eslint-module-utils@^2.4.0: 430 | version "2.6.0" 431 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" 432 | integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== 433 | dependencies: 434 | debug "^2.6.9" 435 | pkg-dir "^2.0.0" 436 | 437 | eslint-plugin-es@^2.0.0: 438 | version "2.0.0" 439 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" 440 | integrity sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ== 441 | dependencies: 442 | eslint-utils "^1.4.2" 443 | regexpp "^3.0.0" 444 | 445 | eslint-plugin-import@~2.18.0: 446 | version "2.18.2" 447 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" 448 | integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== 449 | dependencies: 450 | array-includes "^3.0.3" 451 | contains-path "^0.1.0" 452 | debug "^2.6.9" 453 | doctrine "1.5.0" 454 | eslint-import-resolver-node "^0.3.2" 455 | eslint-module-utils "^2.4.0" 456 | has "^1.0.3" 457 | minimatch "^3.0.4" 458 | object.values "^1.1.0" 459 | read-pkg-up "^2.0.0" 460 | resolve "^1.11.0" 461 | 462 | eslint-plugin-node@~10.0.0: 463 | version "10.0.0" 464 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6" 465 | integrity sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ== 466 | dependencies: 467 | eslint-plugin-es "^2.0.0" 468 | eslint-utils "^1.4.2" 469 | ignore "^5.1.1" 470 | minimatch "^3.0.4" 471 | resolve "^1.10.1" 472 | semver "^6.1.0" 473 | 474 | eslint-plugin-promise@~4.2.1: 475 | version "4.2.1" 476 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" 477 | integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== 478 | 479 | eslint-plugin-react@~7.14.2: 480 | version "7.14.3" 481 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" 482 | integrity sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA== 483 | dependencies: 484 | array-includes "^3.0.3" 485 | doctrine "^2.1.0" 486 | has "^1.0.3" 487 | jsx-ast-utils "^2.1.0" 488 | object.entries "^1.1.0" 489 | object.fromentries "^2.0.0" 490 | object.values "^1.1.0" 491 | prop-types "^15.7.2" 492 | resolve "^1.10.1" 493 | 494 | eslint-plugin-standard@~4.0.0: 495 | version "4.0.2" 496 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.2.tgz#021211a9f077e63a6847e7bb9ab4247327ac8e0c" 497 | integrity sha512-nKptN8l7jksXkwFk++PhJB3cCDTcXOEyhISIN86Ue2feJ1LFyY3PrY3/xT2keXlJSY5bpmbiTG0f885/YKAvTA== 498 | 499 | eslint-scope@^5.0.0: 500 | version "5.1.1" 501 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 502 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 503 | dependencies: 504 | esrecurse "^4.3.0" 505 | estraverse "^4.1.1" 506 | 507 | eslint-utils@^1.4.2, eslint-utils@^1.4.3: 508 | version "1.4.3" 509 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 510 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 511 | dependencies: 512 | eslint-visitor-keys "^1.1.0" 513 | 514 | eslint-visitor-keys@^1.1.0: 515 | version "1.3.0" 516 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 517 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 518 | 519 | eslint@~6.8.0: 520 | version "6.8.0" 521 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" 522 | integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== 523 | dependencies: 524 | "@babel/code-frame" "^7.0.0" 525 | ajv "^6.10.0" 526 | chalk "^2.1.0" 527 | cross-spawn "^6.0.5" 528 | debug "^4.0.1" 529 | doctrine "^3.0.0" 530 | eslint-scope "^5.0.0" 531 | eslint-utils "^1.4.3" 532 | eslint-visitor-keys "^1.1.0" 533 | espree "^6.1.2" 534 | esquery "^1.0.1" 535 | esutils "^2.0.2" 536 | file-entry-cache "^5.0.1" 537 | functional-red-black-tree "^1.0.1" 538 | glob-parent "^5.0.0" 539 | globals "^12.1.0" 540 | ignore "^4.0.6" 541 | import-fresh "^3.0.0" 542 | imurmurhash "^0.1.4" 543 | inquirer "^7.0.0" 544 | is-glob "^4.0.0" 545 | js-yaml "^3.13.1" 546 | json-stable-stringify-without-jsonify "^1.0.1" 547 | levn "^0.3.0" 548 | lodash "^4.17.14" 549 | minimatch "^3.0.4" 550 | mkdirp "^0.5.1" 551 | natural-compare "^1.4.0" 552 | optionator "^0.8.3" 553 | progress "^2.0.0" 554 | regexpp "^2.0.1" 555 | semver "^6.1.2" 556 | strip-ansi "^5.2.0" 557 | strip-json-comments "^3.0.1" 558 | table "^5.2.3" 559 | text-table "^0.2.0" 560 | v8-compile-cache "^2.0.3" 561 | 562 | espree@^6.1.2: 563 | version "6.2.1" 564 | resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" 565 | integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== 566 | dependencies: 567 | acorn "^7.1.1" 568 | acorn-jsx "^5.2.0" 569 | eslint-visitor-keys "^1.1.0" 570 | 571 | esprima@^4.0.0: 572 | version "4.0.1" 573 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 574 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 575 | 576 | esquery@^1.0.1: 577 | version "1.3.1" 578 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" 579 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== 580 | dependencies: 581 | estraverse "^5.1.0" 582 | 583 | esrecurse@^4.3.0: 584 | version "4.3.0" 585 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 586 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 587 | dependencies: 588 | estraverse "^5.2.0" 589 | 590 | estraverse@^4.1.1: 591 | version "4.3.0" 592 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 593 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 594 | 595 | estraverse@^5.1.0, estraverse@^5.2.0: 596 | version "5.2.0" 597 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 598 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 599 | 600 | esutils@^2.0.2: 601 | version "2.0.3" 602 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 603 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 604 | 605 | external-editor@^3.0.3: 606 | version "3.1.0" 607 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 608 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 609 | dependencies: 610 | chardet "^0.7.0" 611 | iconv-lite "^0.4.24" 612 | tmp "^0.0.33" 613 | 614 | fast-deep-equal@^3.1.1: 615 | version "3.1.3" 616 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 617 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 618 | 619 | fast-glob@^3.0.3: 620 | version "3.2.4" 621 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" 622 | integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== 623 | dependencies: 624 | "@nodelib/fs.stat" "^2.0.2" 625 | "@nodelib/fs.walk" "^1.2.3" 626 | glob-parent "^5.1.0" 627 | merge2 "^1.3.0" 628 | micromatch "^4.0.2" 629 | picomatch "^2.2.1" 630 | 631 | fast-json-stable-stringify@^2.0.0: 632 | version "2.1.0" 633 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 634 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 635 | 636 | fast-levenshtein@~2.0.6: 637 | version "2.0.6" 638 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 639 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 640 | 641 | fastq@^1.6.0: 642 | version "1.10.0" 643 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" 644 | integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== 645 | dependencies: 646 | reusify "^1.0.4" 647 | 648 | figures@^3.0.0: 649 | version "3.2.0" 650 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 651 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== 652 | dependencies: 653 | escape-string-regexp "^1.0.5" 654 | 655 | file-entry-cache@^5.0.1: 656 | version "5.0.1" 657 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 658 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 659 | dependencies: 660 | flat-cache "^2.0.1" 661 | 662 | fill-range@^7.0.1: 663 | version "7.0.1" 664 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 665 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 666 | dependencies: 667 | to-regex-range "^5.0.1" 668 | 669 | find-root@^1.0.0: 670 | version "1.1.0" 671 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" 672 | integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== 673 | 674 | find-up@^2.0.0, find-up@^2.1.0: 675 | version "2.1.0" 676 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 677 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 678 | dependencies: 679 | locate-path "^2.0.0" 680 | 681 | find-up@^3.0.0: 682 | version "3.0.0" 683 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 684 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 685 | dependencies: 686 | locate-path "^3.0.0" 687 | 688 | flat-cache@^2.0.1: 689 | version "2.0.1" 690 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 691 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 692 | dependencies: 693 | flatted "^2.0.0" 694 | rimraf "2.6.3" 695 | write "1.0.3" 696 | 697 | flatted@^2.0.0: 698 | version "2.0.2" 699 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 700 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 701 | 702 | fs.realpath@^1.0.0: 703 | version "1.0.0" 704 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 705 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 706 | 707 | function-bind@^1.1.1: 708 | version "1.1.1" 709 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 710 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 711 | 712 | functional-red-black-tree@^1.0.1: 713 | version "1.0.1" 714 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 715 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 716 | 717 | get-caller-file@^2.0.1: 718 | version "2.0.5" 719 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 720 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 721 | 722 | get-intrinsic@^1.0.0, get-intrinsic@^1.0.1: 723 | version "1.0.2" 724 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.2.tgz#6820da226e50b24894e08859469dc68361545d49" 725 | integrity sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg== 726 | dependencies: 727 | function-bind "^1.1.1" 728 | has "^1.0.3" 729 | has-symbols "^1.0.1" 730 | 731 | get-stdin@^7.0.0: 732 | version "7.0.0" 733 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" 734 | integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== 735 | 736 | glob-parent@^5.0.0, glob-parent@^5.1.0: 737 | version "5.1.2" 738 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 739 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 740 | dependencies: 741 | is-glob "^4.0.1" 742 | 743 | glob@^7.0.5, glob@^7.1.3, glob@^7.1.6: 744 | version "7.1.6" 745 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 746 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 747 | dependencies: 748 | fs.realpath "^1.0.0" 749 | inflight "^1.0.4" 750 | inherits "2" 751 | minimatch "^3.0.4" 752 | once "^1.3.0" 753 | path-is-absolute "^1.0.0" 754 | 755 | globals@^12.1.0: 756 | version "12.4.0" 757 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 758 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== 759 | dependencies: 760 | type-fest "^0.8.1" 761 | 762 | globby@^10.0.1: 763 | version "10.0.2" 764 | resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" 765 | integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== 766 | dependencies: 767 | "@types/glob" "^7.1.1" 768 | array-union "^2.1.0" 769 | dir-glob "^3.0.1" 770 | fast-glob "^3.0.3" 771 | glob "^7.1.3" 772 | ignore "^5.1.1" 773 | merge2 "^1.2.3" 774 | slash "^3.0.0" 775 | 776 | graceful-fs@^4.1.15, graceful-fs@^4.1.2: 777 | version "4.2.4" 778 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 779 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 780 | 781 | has-flag@^3.0.0: 782 | version "3.0.0" 783 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 784 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 785 | 786 | has-flag@^4.0.0: 787 | version "4.0.0" 788 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 789 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 790 | 791 | has-symbols@^1.0.1: 792 | version "1.0.1" 793 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 794 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 795 | 796 | has@^1.0.3: 797 | version "1.0.3" 798 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 799 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 800 | dependencies: 801 | function-bind "^1.1.1" 802 | 803 | highlight.js@^10.4.1: 804 | version "10.5.0" 805 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f" 806 | integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw== 807 | 808 | hosted-git-info@^2.1.4: 809 | version "2.8.9" 810 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 811 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 812 | 813 | iconv-lite@^0.4.24: 814 | version "0.4.24" 815 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 816 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 817 | dependencies: 818 | safer-buffer ">= 2.1.2 < 3" 819 | 820 | ignore@^4.0.6: 821 | version "4.0.6" 822 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 823 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 824 | 825 | ignore@^5.0.0, ignore@^5.1.1: 826 | version "5.1.8" 827 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 828 | integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 829 | 830 | import-fresh@^3.0.0: 831 | version "3.3.0" 832 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 833 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 834 | dependencies: 835 | parent-module "^1.0.0" 836 | resolve-from "^4.0.0" 837 | 838 | imurmurhash@^0.1.4: 839 | version "0.1.4" 840 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 841 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 842 | 843 | inflight@^1.0.4: 844 | version "1.0.6" 845 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 846 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 847 | dependencies: 848 | once "^1.3.0" 849 | wrappy "1" 850 | 851 | inherits@2: 852 | version "2.0.4" 853 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 854 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 855 | 856 | inquirer@^7.0.0: 857 | version "7.3.3" 858 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" 859 | integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== 860 | dependencies: 861 | ansi-escapes "^4.2.1" 862 | chalk "^4.1.0" 863 | cli-cursor "^3.1.0" 864 | cli-width "^3.0.0" 865 | external-editor "^3.0.3" 866 | figures "^3.0.0" 867 | lodash "^4.17.19" 868 | mute-stream "0.0.8" 869 | run-async "^2.4.0" 870 | rxjs "^6.6.0" 871 | string-width "^4.1.0" 872 | strip-ansi "^6.0.0" 873 | through "^2.3.6" 874 | 875 | is-arrayish@^0.2.1: 876 | version "0.2.1" 877 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 878 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 879 | 880 | is-callable@^1.1.4, is-callable@^1.2.2: 881 | version "1.2.2" 882 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" 883 | integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== 884 | 885 | is-core-module@^2.1.0: 886 | version "2.2.0" 887 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 888 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 889 | dependencies: 890 | has "^1.0.3" 891 | 892 | is-date-object@^1.0.1: 893 | version "1.0.2" 894 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 895 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 896 | 897 | is-extglob@^2.1.1: 898 | version "2.1.1" 899 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 900 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 901 | 902 | is-fullwidth-code-point@^2.0.0: 903 | version "2.0.0" 904 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 905 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 906 | 907 | is-fullwidth-code-point@^3.0.0: 908 | version "3.0.0" 909 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 910 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 911 | 912 | is-glob@^4.0.0, is-glob@^4.0.1: 913 | version "4.0.1" 914 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 915 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 916 | dependencies: 917 | is-extglob "^2.1.1" 918 | 919 | is-negative-zero@^2.0.0: 920 | version "2.0.1" 921 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 922 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 923 | 924 | is-number@^7.0.0: 925 | version "7.0.0" 926 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 927 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 928 | 929 | is-regex@^1.1.1: 930 | version "1.1.1" 931 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" 932 | integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== 933 | dependencies: 934 | has-symbols "^1.0.1" 935 | 936 | is-string@^1.0.5: 937 | version "1.0.5" 938 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" 939 | integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 940 | 941 | is-symbol@^1.0.2: 942 | version "1.0.3" 943 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 944 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 945 | dependencies: 946 | has-symbols "^1.0.1" 947 | 948 | isarray@^1.0.0: 949 | version "1.0.0" 950 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 951 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 952 | 953 | isexe@^2.0.0: 954 | version "2.0.0" 955 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 956 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 957 | 958 | jasmine-core@~3.6.0: 959 | version "3.6.0" 960 | resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20" 961 | integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw== 962 | 963 | jasmine@^3.5.0: 964 | version "3.6.3" 965 | resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.6.3.tgz#520cd71f76bd8251e9f566b622e13602e9ddcf26" 966 | integrity sha512-Th91zHsbsALWjDUIiU5d/W5zaYQsZFMPTdeNmi8GivZPmAaUAK8MblSG3yQI4VMGC/abF2us7ex60NH1AAIMTA== 967 | dependencies: 968 | glob "^7.1.6" 969 | jasmine-core "~3.6.0" 970 | 971 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 972 | version "4.0.0" 973 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 974 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 975 | 976 | js-yaml@^3.13.1: 977 | version "3.14.1" 978 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 979 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 980 | dependencies: 981 | argparse "^1.0.7" 982 | esprima "^4.0.0" 983 | 984 | json-parse-better-errors@^1.0.1: 985 | version "1.0.2" 986 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 987 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 988 | 989 | json-schema-traverse@^0.4.1: 990 | version "0.4.1" 991 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 992 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 993 | 994 | json-stable-stringify-without-jsonify@^1.0.1: 995 | version "1.0.1" 996 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 997 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 998 | 999 | jsx-ast-utils@^2.1.0: 1000 | version "2.4.1" 1001 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" 1002 | integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== 1003 | dependencies: 1004 | array-includes "^3.1.1" 1005 | object.assign "^4.1.0" 1006 | 1007 | katex@^0.9.0-alpha2: 1008 | version "0.9.0" 1009 | resolved "https://registry.yarnpkg.com/katex/-/katex-0.9.0.tgz#26a7d082c21d53725422d2d71da9b2d8455fbd4a" 1010 | integrity sha512-lp3x90LT1tDZBW2tjLheJ98wmRMRjUHwk4QpaswT9bhqoQZ+XA4cPcjcQBxgOQNwaOSt6ZeL/a6GKQ1of3LFxQ== 1011 | dependencies: 1012 | match-at "^0.1.1" 1013 | 1014 | levn@^0.3.0, levn@~0.3.0: 1015 | version "0.3.0" 1016 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1017 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1018 | dependencies: 1019 | prelude-ls "~1.1.2" 1020 | type-check "~0.3.2" 1021 | 1022 | linkify-it@^3.0.1: 1023 | version "3.0.3" 1024 | resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" 1025 | integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== 1026 | dependencies: 1027 | uc.micro "^1.0.1" 1028 | 1029 | load-json-file@^2.0.0: 1030 | version "2.0.0" 1031 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1032 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 1033 | dependencies: 1034 | graceful-fs "^4.1.2" 1035 | parse-json "^2.2.0" 1036 | pify "^2.0.0" 1037 | strip-bom "^3.0.0" 1038 | 1039 | load-json-file@^5.2.0: 1040 | version "5.3.0" 1041 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" 1042 | integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== 1043 | dependencies: 1044 | graceful-fs "^4.1.15" 1045 | parse-json "^4.0.0" 1046 | pify "^4.0.1" 1047 | strip-bom "^3.0.0" 1048 | type-fest "^0.3.0" 1049 | 1050 | locate-path@^2.0.0: 1051 | version "2.0.0" 1052 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1053 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1054 | dependencies: 1055 | p-locate "^2.0.0" 1056 | path-exists "^3.0.0" 1057 | 1058 | locate-path@^3.0.0: 1059 | version "3.0.0" 1060 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1061 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1062 | dependencies: 1063 | p-locate "^3.0.0" 1064 | path-exists "^3.0.0" 1065 | 1066 | lodash.deburr@^4.0.0: 1067 | version "4.1.0" 1068 | resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-4.1.0.tgz#ddb1bbb3ef07458c0177ba07de14422cb033ff9b" 1069 | integrity sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s= 1070 | 1071 | lodash.kebabcase@4.0.1: 1072 | version "4.0.1" 1073 | resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.0.1.tgz#5e63bc9aa2a5562ff3b97ca7af2f803de1bcb90e" 1074 | integrity sha1-XmO8mqKlVi/zuXynry+APeG8uQ4= 1075 | dependencies: 1076 | lodash.deburr "^4.0.0" 1077 | lodash.words "^4.0.0" 1078 | 1079 | lodash.words@^4.0.0: 1080 | version "4.2.0" 1081 | resolved "https://registry.yarnpkg.com/lodash.words/-/lodash.words-4.2.0.tgz#5ecfeaf8ecf8acaa8e0c8386295f1993c9cf4036" 1082 | integrity sha1-Xs/q+Oz4rKqODIOGKV8Zk8nPQDY= 1083 | 1084 | lodash@^4.17.14, lodash@^4.17.19: 1085 | version "4.17.21" 1086 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1087 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1088 | 1089 | loose-envify@^1.4.0: 1090 | version "1.4.0" 1091 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1092 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1093 | dependencies: 1094 | js-tokens "^3.0.0 || ^4.0.0" 1095 | 1096 | markdown-it-latex@^0.2.0: 1097 | version "0.2.0" 1098 | resolved "https://registry.yarnpkg.com/markdown-it-latex/-/markdown-it-latex-0.2.0.tgz#b7421ddb8ecfdb65f4428b50691c1308e18ab2f0" 1099 | integrity sha512-vCaS6Dws9faA8lZel7Slfa1IYEnbYOjHzian/tDBulONBS+f9vRkFfQ4S0eFnTGtDTTXqE7zAnoezkv18b9IIA== 1100 | dependencies: 1101 | asciimath-to-latex "^0.3.2" 1102 | katex "^0.9.0-alpha2" 1103 | 1104 | markdown-it-named-headings@^1.1.0: 1105 | version "1.1.0" 1106 | resolved "https://registry.yarnpkg.com/markdown-it-named-headings/-/markdown-it-named-headings-1.1.0.tgz#2f6cd29800de1e9dde0a24e8d4d1275df42ea17d" 1107 | integrity sha1-L2zSmADeHp3eCiTo1NEnXfQuoX0= 1108 | dependencies: 1109 | lodash.kebabcase "4.0.1" 1110 | unidecode "^0.1.8" 1111 | 1112 | markdown-it@^12.3.2: 1113 | version "12.3.2" 1114 | resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" 1115 | integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== 1116 | dependencies: 1117 | argparse "^2.0.1" 1118 | entities "~2.1.0" 1119 | linkify-it "^3.0.1" 1120 | mdurl "^1.0.1" 1121 | uc.micro "^1.0.5" 1122 | 1123 | match-at@^0.1.1: 1124 | version "0.1.1" 1125 | resolved "https://registry.yarnpkg.com/match-at/-/match-at-0.1.1.tgz#25d040d291777704d5e6556bbb79230ec2de0540" 1126 | integrity sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q== 1127 | 1128 | mdurl@^1.0.1: 1129 | version "1.0.1" 1130 | resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" 1131 | integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= 1132 | 1133 | merge2@^1.2.3, merge2@^1.3.0: 1134 | version "1.4.1" 1135 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1136 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1137 | 1138 | micromatch@^4.0.2: 1139 | version "4.0.2" 1140 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" 1141 | integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 1142 | dependencies: 1143 | braces "^3.0.1" 1144 | picomatch "^2.0.5" 1145 | 1146 | mimic-fn@^2.1.0: 1147 | version "2.1.0" 1148 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1149 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1150 | 1151 | minimatch@^3.0.4: 1152 | version "3.1.2" 1153 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1154 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1155 | dependencies: 1156 | brace-expansion "^1.1.7" 1157 | 1158 | minimist@^1.2.5: 1159 | version "1.2.6" 1160 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" 1161 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== 1162 | 1163 | mkdirp@^0.5.1: 1164 | version "0.5.5" 1165 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1166 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1167 | dependencies: 1168 | minimist "^1.2.5" 1169 | 1170 | ms@2.0.0: 1171 | version "2.0.0" 1172 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1173 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1174 | 1175 | ms@2.1.2: 1176 | version "2.1.2" 1177 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1178 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1179 | 1180 | mute-stream@0.0.8: 1181 | version "0.0.8" 1182 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 1183 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 1184 | 1185 | natural-compare@^1.4.0: 1186 | version "1.4.0" 1187 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1188 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1189 | 1190 | nice-try@^1.0.4: 1191 | version "1.0.5" 1192 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1193 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1194 | 1195 | normalize-package-data@^2.3.2: 1196 | version "2.5.0" 1197 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1198 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1199 | dependencies: 1200 | hosted-git-info "^2.1.4" 1201 | resolve "^1.10.0" 1202 | semver "2 || 3 || 4 || 5" 1203 | validate-npm-package-license "^3.0.1" 1204 | 1205 | object-assign@^4.1.1: 1206 | version "4.1.1" 1207 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1208 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1209 | 1210 | object-inspect@^1.8.0: 1211 | version "1.9.0" 1212 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" 1213 | integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== 1214 | 1215 | object-keys@^1.0.12, object-keys@^1.1.1: 1216 | version "1.1.1" 1217 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1218 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1219 | 1220 | object.assign@^4.1.0, object.assign@^4.1.1: 1221 | version "4.1.2" 1222 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1223 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1224 | dependencies: 1225 | call-bind "^1.0.0" 1226 | define-properties "^1.1.3" 1227 | has-symbols "^1.0.1" 1228 | object-keys "^1.1.1" 1229 | 1230 | object.entries@^1.1.0: 1231 | version "1.1.3" 1232 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" 1233 | integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== 1234 | dependencies: 1235 | call-bind "^1.0.0" 1236 | define-properties "^1.1.3" 1237 | es-abstract "^1.18.0-next.1" 1238 | has "^1.0.3" 1239 | 1240 | object.fromentries@^2.0.0: 1241 | version "2.0.3" 1242 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" 1243 | integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== 1244 | dependencies: 1245 | call-bind "^1.0.0" 1246 | define-properties "^1.1.3" 1247 | es-abstract "^1.18.0-next.1" 1248 | has "^1.0.3" 1249 | 1250 | object.values@^1.1.0: 1251 | version "1.1.2" 1252 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" 1253 | integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== 1254 | dependencies: 1255 | call-bind "^1.0.0" 1256 | define-properties "^1.1.3" 1257 | es-abstract "^1.18.0-next.1" 1258 | has "^1.0.3" 1259 | 1260 | once@^1.3.0: 1261 | version "1.4.0" 1262 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1263 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1264 | dependencies: 1265 | wrappy "1" 1266 | 1267 | onetime@^5.1.0: 1268 | version "5.1.2" 1269 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1270 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1271 | dependencies: 1272 | mimic-fn "^2.1.0" 1273 | 1274 | optionator@^0.8.3: 1275 | version "0.8.3" 1276 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 1277 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 1278 | dependencies: 1279 | deep-is "~0.1.3" 1280 | fast-levenshtein "~2.0.6" 1281 | levn "~0.3.0" 1282 | prelude-ls "~1.1.2" 1283 | type-check "~0.3.2" 1284 | word-wrap "~1.2.3" 1285 | 1286 | os-tmpdir@~1.0.2: 1287 | version "1.0.2" 1288 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1289 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1290 | 1291 | p-limit@^1.1.0: 1292 | version "1.3.0" 1293 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1294 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1295 | dependencies: 1296 | p-try "^1.0.0" 1297 | 1298 | p-limit@^2.0.0: 1299 | version "2.3.0" 1300 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1301 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1302 | dependencies: 1303 | p-try "^2.0.0" 1304 | 1305 | p-locate@^2.0.0: 1306 | version "2.0.0" 1307 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1308 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1309 | dependencies: 1310 | p-limit "^1.1.0" 1311 | 1312 | p-locate@^3.0.0: 1313 | version "3.0.0" 1314 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1315 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1316 | dependencies: 1317 | p-limit "^2.0.0" 1318 | 1319 | p-try@^1.0.0: 1320 | version "1.0.0" 1321 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1322 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1323 | 1324 | p-try@^2.0.0: 1325 | version "2.2.0" 1326 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1327 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1328 | 1329 | parent-module@^1.0.0: 1330 | version "1.0.1" 1331 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1332 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1333 | dependencies: 1334 | callsites "^3.0.0" 1335 | 1336 | parse-json@^2.2.0: 1337 | version "2.2.0" 1338 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1339 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 1340 | dependencies: 1341 | error-ex "^1.2.0" 1342 | 1343 | parse-json@^4.0.0: 1344 | version "4.0.0" 1345 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1346 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1347 | dependencies: 1348 | error-ex "^1.3.1" 1349 | json-parse-better-errors "^1.0.1" 1350 | 1351 | path-exists@^3.0.0: 1352 | version "3.0.0" 1353 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1354 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1355 | 1356 | path-is-absolute@^1.0.0: 1357 | version "1.0.1" 1358 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1359 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1360 | 1361 | path-key@^2.0.1: 1362 | version "2.0.1" 1363 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1364 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1365 | 1366 | path-parse@^1.0.6: 1367 | version "1.0.7" 1368 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1369 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1370 | 1371 | path-type@^2.0.0: 1372 | version "2.0.0" 1373 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1374 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 1375 | dependencies: 1376 | pify "^2.0.0" 1377 | 1378 | path-type@^4.0.0: 1379 | version "4.0.0" 1380 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1381 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1382 | 1383 | picomatch@^2.0.5, picomatch@^2.2.1: 1384 | version "2.2.2" 1385 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" 1386 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 1387 | 1388 | pify@^2.0.0: 1389 | version "2.3.0" 1390 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1391 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1392 | 1393 | pify@^4.0.1: 1394 | version "4.0.1" 1395 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 1396 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 1397 | 1398 | pkg-conf@^3.1.0: 1399 | version "3.1.0" 1400 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" 1401 | integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== 1402 | dependencies: 1403 | find-up "^3.0.0" 1404 | load-json-file "^5.2.0" 1405 | 1406 | pkg-config@^1.1.0: 1407 | version "1.1.1" 1408 | resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" 1409 | integrity sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= 1410 | dependencies: 1411 | debug-log "^1.0.0" 1412 | find-root "^1.0.0" 1413 | xtend "^4.0.1" 1414 | 1415 | pkg-dir@^2.0.0: 1416 | version "2.0.0" 1417 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1418 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1419 | dependencies: 1420 | find-up "^2.1.0" 1421 | 1422 | prelude-ls@~1.1.2: 1423 | version "1.1.2" 1424 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1425 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1426 | 1427 | prettier@^1.18.2: 1428 | version "1.19.1" 1429 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 1430 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 1431 | 1432 | progress@^2.0.0: 1433 | version "2.0.3" 1434 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1435 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1436 | 1437 | prop-types@^15.7.2: 1438 | version "15.7.2" 1439 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1440 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1441 | dependencies: 1442 | loose-envify "^1.4.0" 1443 | object-assign "^4.1.1" 1444 | react-is "^16.8.1" 1445 | 1446 | punycode@^2.1.0: 1447 | version "2.1.1" 1448 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1449 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1450 | 1451 | react-is@^16.8.1: 1452 | version "16.13.1" 1453 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1454 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1455 | 1456 | read-pkg-up@^2.0.0: 1457 | version "2.0.0" 1458 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1459 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 1460 | dependencies: 1461 | find-up "^2.0.0" 1462 | read-pkg "^2.0.0" 1463 | 1464 | read-pkg@^2.0.0: 1465 | version "2.0.0" 1466 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1467 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 1468 | dependencies: 1469 | load-json-file "^2.0.0" 1470 | normalize-package-data "^2.3.2" 1471 | path-type "^2.0.0" 1472 | 1473 | regexpp@^2.0.1: 1474 | version "2.0.1" 1475 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 1476 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 1477 | 1478 | regexpp@^3.0.0: 1479 | version "3.1.0" 1480 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 1481 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 1482 | 1483 | remove-markdown@^0.3.0: 1484 | version "0.3.0" 1485 | resolved "https://registry.yarnpkg.com/remove-markdown/-/remove-markdown-0.3.0.tgz#5e4b667493a93579728f3d52ecc1db9ca505dc98" 1486 | integrity sha1-XktmdJOpNXlyjz1S7MHbnKUF3Jg= 1487 | 1488 | require-directory@^2.1.1: 1489 | version "2.1.1" 1490 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1491 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1492 | 1493 | require-main-filename@^2.0.0: 1494 | version "2.0.0" 1495 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 1496 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1497 | 1498 | resolve-from@^4.0.0: 1499 | version "4.0.0" 1500 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1501 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1502 | 1503 | resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1: 1504 | version "1.19.0" 1505 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" 1506 | integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== 1507 | dependencies: 1508 | is-core-module "^2.1.0" 1509 | path-parse "^1.0.6" 1510 | 1511 | restore-cursor@^3.1.0: 1512 | version "3.1.0" 1513 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 1514 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 1515 | dependencies: 1516 | onetime "^5.1.0" 1517 | signal-exit "^3.0.2" 1518 | 1519 | reusify@^1.0.4: 1520 | version "1.0.4" 1521 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1522 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1523 | 1524 | rimraf@2.6.3: 1525 | version "2.6.3" 1526 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1527 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 1528 | dependencies: 1529 | glob "^7.1.3" 1530 | 1531 | run-async@^2.4.0: 1532 | version "2.4.1" 1533 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 1534 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 1535 | 1536 | run-parallel@^1.1.2, run-parallel@^1.1.9: 1537 | version "1.1.10" 1538 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" 1539 | integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== 1540 | 1541 | rxjs@^6.6.0: 1542 | version "6.6.3" 1543 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" 1544 | integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== 1545 | dependencies: 1546 | tslib "^1.9.0" 1547 | 1548 | "safer-buffer@>= 2.1.2 < 3": 1549 | version "2.1.2" 1550 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1551 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1552 | 1553 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 1554 | version "5.7.1" 1555 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1556 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1557 | 1558 | semver@^6.1.0, semver@^6.1.2: 1559 | version "6.3.0" 1560 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1561 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 1562 | 1563 | set-blocking@^2.0.0: 1564 | version "2.0.0" 1565 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1566 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1567 | 1568 | shebang-command@^1.2.0: 1569 | version "1.2.0" 1570 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1571 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1572 | dependencies: 1573 | shebang-regex "^1.0.0" 1574 | 1575 | shebang-regex@^1.0.0: 1576 | version "1.0.0" 1577 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1578 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1579 | 1580 | signal-exit@^3.0.2: 1581 | version "3.0.3" 1582 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1583 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1584 | 1585 | slash@^3.0.0: 1586 | version "3.0.0" 1587 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1588 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1589 | 1590 | slice-ansi@^2.1.0: 1591 | version "2.1.0" 1592 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1593 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1594 | dependencies: 1595 | ansi-styles "^3.2.0" 1596 | astral-regex "^1.0.0" 1597 | is-fullwidth-code-point "^2.0.0" 1598 | 1599 | spdx-correct@^3.0.0: 1600 | version "3.1.1" 1601 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1602 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1603 | dependencies: 1604 | spdx-expression-parse "^3.0.0" 1605 | spdx-license-ids "^3.0.0" 1606 | 1607 | spdx-exceptions@^2.1.0: 1608 | version "2.3.0" 1609 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1610 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1611 | 1612 | spdx-expression-parse@^3.0.0: 1613 | version "3.0.1" 1614 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1615 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1616 | dependencies: 1617 | spdx-exceptions "^2.1.0" 1618 | spdx-license-ids "^3.0.0" 1619 | 1620 | spdx-license-ids@^3.0.0: 1621 | version "3.0.7" 1622 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 1623 | integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 1624 | 1625 | sprintf-js@~1.0.2: 1626 | version "1.0.3" 1627 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1628 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1629 | 1630 | standard-engine@^12.0.0: 1631 | version "12.1.0" 1632 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-12.1.0.tgz#b13dbae583de54c06805207b991ef48a582c0e62" 1633 | integrity sha512-DVJnWM1CGkag4ucFLGdiYWa5/kJURPONmMmk17p8FT5NE4UnPZB1vxWnXnRo2sPSL78pWJG8xEM+1Tu19z0deg== 1634 | dependencies: 1635 | deglob "^4.0.1" 1636 | get-stdin "^7.0.0" 1637 | minimist "^1.2.5" 1638 | pkg-conf "^3.1.0" 1639 | 1640 | standard@^14.3.1: 1641 | version "14.3.4" 1642 | resolved "https://registry.yarnpkg.com/standard/-/standard-14.3.4.tgz#748e80e8cd7b535844a85a12f337755a7e3a0f6e" 1643 | integrity sha512-+lpOkFssMkljJ6eaILmqxHQ2n4csuEABmcubLTb9almFi1ElDzXb1819fjf/5ygSyePCq4kU2wMdb2fBfb9P9Q== 1644 | dependencies: 1645 | eslint "~6.8.0" 1646 | eslint-config-standard "14.1.1" 1647 | eslint-config-standard-jsx "8.1.0" 1648 | eslint-plugin-import "~2.18.0" 1649 | eslint-plugin-node "~10.0.0" 1650 | eslint-plugin-promise "~4.2.1" 1651 | eslint-plugin-react "~7.14.2" 1652 | eslint-plugin-standard "~4.0.0" 1653 | standard-engine "^12.0.0" 1654 | 1655 | string-width@^3.0.0, string-width@^3.1.0: 1656 | version "3.1.0" 1657 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1658 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1659 | dependencies: 1660 | emoji-regex "^7.0.1" 1661 | is-fullwidth-code-point "^2.0.0" 1662 | strip-ansi "^5.1.0" 1663 | 1664 | string-width@^4.1.0: 1665 | version "4.2.0" 1666 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1667 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 1668 | dependencies: 1669 | emoji-regex "^8.0.0" 1670 | is-fullwidth-code-point "^3.0.0" 1671 | strip-ansi "^6.0.0" 1672 | 1673 | string.prototype.trimend@^1.0.1: 1674 | version "1.0.3" 1675 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" 1676 | integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== 1677 | dependencies: 1678 | call-bind "^1.0.0" 1679 | define-properties "^1.1.3" 1680 | 1681 | string.prototype.trimstart@^1.0.1: 1682 | version "1.0.3" 1683 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" 1684 | integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== 1685 | dependencies: 1686 | call-bind "^1.0.0" 1687 | define-properties "^1.1.3" 1688 | 1689 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1690 | version "5.2.0" 1691 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1692 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1693 | dependencies: 1694 | ansi-regex "^4.1.0" 1695 | 1696 | strip-ansi@^6.0.0: 1697 | version "6.0.0" 1698 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1699 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1700 | dependencies: 1701 | ansi-regex "^5.0.0" 1702 | 1703 | strip-bom@^3.0.0: 1704 | version "3.0.0" 1705 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1706 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1707 | 1708 | strip-json-comments@^3.0.1: 1709 | version "3.1.1" 1710 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1711 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1712 | 1713 | supports-color@^5.3.0: 1714 | version "5.5.0" 1715 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1716 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1717 | dependencies: 1718 | has-flag "^3.0.0" 1719 | 1720 | supports-color@^7.1.0: 1721 | version "7.2.0" 1722 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1723 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1724 | dependencies: 1725 | has-flag "^4.0.0" 1726 | 1727 | table@^5.2.3: 1728 | version "5.4.6" 1729 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1730 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1731 | dependencies: 1732 | ajv "^6.10.2" 1733 | lodash "^4.17.14" 1734 | slice-ansi "^2.1.0" 1735 | string-width "^3.0.0" 1736 | 1737 | text-table@^0.2.0: 1738 | version "0.2.0" 1739 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1740 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1741 | 1742 | through@^2.3.6: 1743 | version "2.3.8" 1744 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1745 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1746 | 1747 | tmp@^0.0.33: 1748 | version "0.0.33" 1749 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1750 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1751 | dependencies: 1752 | os-tmpdir "~1.0.2" 1753 | 1754 | to-regex-range@^5.0.1: 1755 | version "5.0.1" 1756 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1757 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1758 | dependencies: 1759 | is-number "^7.0.0" 1760 | 1761 | tslib@^1.9.0: 1762 | version "1.14.1" 1763 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1764 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 1765 | 1766 | type-check@~0.3.2: 1767 | version "0.3.2" 1768 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1769 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1770 | dependencies: 1771 | prelude-ls "~1.1.2" 1772 | 1773 | type-fest@^0.11.0: 1774 | version "0.11.0" 1775 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" 1776 | integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== 1777 | 1778 | type-fest@^0.3.0: 1779 | version "0.3.1" 1780 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" 1781 | integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== 1782 | 1783 | type-fest@^0.8.1: 1784 | version "0.8.1" 1785 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1786 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 1787 | 1788 | uc.micro@^1.0.1, uc.micro@^1.0.5: 1789 | version "1.0.6" 1790 | resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" 1791 | integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== 1792 | 1793 | unidecode@^0.1.8: 1794 | version "0.1.8" 1795 | resolved "https://registry.yarnpkg.com/unidecode/-/unidecode-0.1.8.tgz#efbb301538bc45246a9ac8c559d72f015305053e" 1796 | integrity sha1-77swFTi8RSRqmsjFWdcvAVMFBT4= 1797 | 1798 | uniq@^1.0.1: 1799 | version "1.0.1" 1800 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 1801 | integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= 1802 | 1803 | uri-js@^4.2.2: 1804 | version "4.4.0" 1805 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" 1806 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== 1807 | dependencies: 1808 | punycode "^2.1.0" 1809 | 1810 | v8-compile-cache@^2.0.3: 1811 | version "2.2.0" 1812 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" 1813 | integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== 1814 | 1815 | validate-npm-package-license@^3.0.1: 1816 | version "3.0.4" 1817 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1818 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1819 | dependencies: 1820 | spdx-correct "^3.0.0" 1821 | spdx-expression-parse "^3.0.0" 1822 | 1823 | which-module@^2.0.0: 1824 | version "2.0.0" 1825 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1826 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 1827 | 1828 | which@^1.2.9: 1829 | version "1.3.1" 1830 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1831 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1832 | dependencies: 1833 | isexe "^2.0.0" 1834 | 1835 | word-wrap@~1.2.3: 1836 | version "1.2.3" 1837 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1838 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1839 | 1840 | wrap-ansi@^5.1.0: 1841 | version "5.1.0" 1842 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 1843 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== 1844 | dependencies: 1845 | ansi-styles "^3.2.0" 1846 | string-width "^3.0.0" 1847 | strip-ansi "^5.0.0" 1848 | 1849 | wrappy@1: 1850 | version "1.0.2" 1851 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1852 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1853 | 1854 | write@1.0.3: 1855 | version "1.0.3" 1856 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1857 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 1858 | dependencies: 1859 | mkdirp "^0.5.1" 1860 | 1861 | xtend@^4.0.1: 1862 | version "4.0.2" 1863 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1864 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1865 | 1866 | y18n@^4.0.0: 1867 | version "4.0.1" 1868 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" 1869 | integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== 1870 | 1871 | yargs-parser@^15.0.1: 1872 | version "15.0.1" 1873 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" 1874 | integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== 1875 | dependencies: 1876 | camelcase "^5.0.0" 1877 | decamelize "^1.2.0" 1878 | 1879 | yargs@^14.2.0: 1880 | version "14.2.3" 1881 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" 1882 | integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== 1883 | dependencies: 1884 | cliui "^5.0.0" 1885 | decamelize "^1.2.0" 1886 | find-up "^3.0.0" 1887 | get-caller-file "^2.0.1" 1888 | require-directory "^2.1.1" 1889 | require-main-filename "^2.0.0" 1890 | set-blocking "^2.0.0" 1891 | string-width "^3.0.0" 1892 | which-module "^2.0.0" 1893 | y18n "^4.0.0" 1894 | yargs-parser "^15.0.1" 1895 | --------------------------------------------------------------------------------