├── .github └── workflows │ └── check-test.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── bin └── notebookgen ├── notebookgen.js ├── package-lock.json ├── package.json ├── template_header.tex └── test └── run.sh /.github/workflows/check-test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Install texlive 14 | run: sudo apt-get install texlive texlive-latex-extra 15 | - name: Giving permissions 16 | run: chmod +x -R test/ 17 | - name: Install node 18 | uses: actions/setup-node@v1 19 | with: 20 | node-version: "12.16.0" 21 | - name: Install packages 22 | run: npm ci 23 | - run: npm run test 24 | - run: test/run.sh 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | notebook 3 | notebook.pdf -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | - "8" 5 | - "10" 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License, version 2.0 2 | 3 | 1. Definitions 4 | 5 | 1.1. "Contributor" 6 | 7 | means each individual or legal entity that creates, contributes to the 8 | creation of, or owns Covered Software. 9 | 10 | 1.2. "Contributor Version" 11 | 12 | means the combination of the Contributions of others (if any) used by a 13 | Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | 17 | means Covered Software of a particular Contributor. 18 | 19 | 1.4. "Covered Software" 20 | 21 | means Source Code Form to which the initial Contributor has attached the 22 | notice in Exhibit A, the Executable Form of such Source Code Form, and 23 | Modifications of such Source Code Form, in each case including portions 24 | thereof. 25 | 26 | 1.5. "Incompatible With Secondary Licenses" 27 | means 28 | 29 | a. that the initial Contributor has attached the notice described in 30 | Exhibit B to the Covered Software; or 31 | 32 | b. that the Covered Software was made available under the terms of 33 | version 1.1 or earlier of the License, but not also under the terms of 34 | a Secondary License. 35 | 36 | 1.6. "Executable Form" 37 | 38 | means any form of the work other than Source Code Form. 39 | 40 | 1.7. "Larger Work" 41 | 42 | means a work that combines Covered Software with other material, in a 43 | separate file or files, that is not Covered Software. 44 | 45 | 1.8. "License" 46 | 47 | means this document. 48 | 49 | 1.9. "Licensable" 50 | 51 | means having the right to grant, to the maximum extent possible, whether 52 | at the time of the initial grant or subsequently, any and all of the 53 | rights conveyed by this License. 54 | 55 | 1.10. "Modifications" 56 | 57 | means any of the following: 58 | 59 | a. any file in Source Code Form that results from an addition to, 60 | deletion from, or modification of the contents of Covered Software; or 61 | 62 | b. any new file in Source Code Form that contains any Covered Software. 63 | 64 | 1.11. "Patent Claims" of a Contributor 65 | 66 | means any patent claim(s), including without limitation, method, 67 | process, and apparatus claims, in any patent Licensable by such 68 | Contributor that would be infringed, but for the grant of the License, 69 | by the making, using, selling, offering for sale, having made, import, 70 | or transfer of either its Contributions or its Contributor Version. 71 | 72 | 1.12. "Secondary License" 73 | 74 | means either the GNU General Public License, Version 2.0, the GNU Lesser 75 | General Public License, Version 2.1, the GNU Affero General Public 76 | License, Version 3.0, or any later versions of those licenses. 77 | 78 | 1.13. "Source Code Form" 79 | 80 | means the form of the work preferred for making modifications. 81 | 82 | 1.14. "You" (or "Your") 83 | 84 | means an individual or a legal entity exercising rights under this 85 | License. For legal entities, "You" includes any entity that controls, is 86 | controlled by, or is under common control with You. For purposes of this 87 | definition, "control" means (a) the power, direct or indirect, to cause 88 | the direction or management of such entity, whether by contract or 89 | otherwise, or (b) ownership of more than fifty percent (50%) of the 90 | outstanding shares or beneficial ownership of such entity. 91 | 92 | 93 | 2. License Grants and Conditions 94 | 95 | 2.1. Grants 96 | 97 | Each Contributor hereby grants You a world-wide, royalty-free, 98 | non-exclusive license: 99 | 100 | a. under intellectual property rights (other than patent or trademark) 101 | Licensable by such Contributor to use, reproduce, make available, 102 | modify, display, perform, distribute, and otherwise exploit its 103 | Contributions, either on an unmodified basis, with Modifications, or 104 | as part of a Larger Work; and 105 | 106 | b. under Patent Claims of such Contributor to make, use, sell, offer for 107 | sale, have made, import, and otherwise transfer either its 108 | Contributions or its Contributor Version. 109 | 110 | 2.2. Effective Date 111 | 112 | The licenses granted in Section 2.1 with respect to any Contribution 113 | become effective for each Contribution on the date the Contributor first 114 | distributes such Contribution. 115 | 116 | 2.3. Limitations on Grant Scope 117 | 118 | The licenses granted in this Section 2 are the only rights granted under 119 | this License. No additional rights or licenses will be implied from the 120 | distribution or licensing of Covered Software under this License. 121 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 122 | Contributor: 123 | 124 | a. for any code that a Contributor has removed from Covered Software; or 125 | 126 | b. for infringements caused by: (i) Your and any other third party's 127 | modifications of Covered Software, or (ii) the combination of its 128 | Contributions with other software (except as part of its Contributor 129 | Version); or 130 | 131 | c. under Patent Claims infringed by Covered Software in the absence of 132 | its Contributions. 133 | 134 | This License does not grant any rights in the trademarks, service marks, 135 | or logos of any Contributor (except as may be necessary to comply with 136 | the notice requirements in Section 3.4). 137 | 138 | 2.4. Subsequent Licenses 139 | 140 | No Contributor makes additional grants as a result of Your choice to 141 | distribute the Covered Software under a subsequent version of this 142 | License (see Section 10.2) or under the terms of a Secondary License (if 143 | permitted under the terms of Section 3.3). 144 | 145 | 2.5. Representation 146 | 147 | Each Contributor represents that the Contributor believes its 148 | Contributions are its original creation(s) or it has sufficient rights to 149 | grant the rights to its Contributions conveyed by this License. 150 | 151 | 2.6. Fair Use 152 | 153 | This License is not intended to limit any rights You have under 154 | applicable copyright doctrines of fair use, fair dealing, or other 155 | equivalents. 156 | 157 | 2.7. Conditions 158 | 159 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in 160 | Section 2.1. 161 | 162 | 163 | 3. Responsibilities 164 | 165 | 3.1. Distribution of Source Form 166 | 167 | All distribution of Covered Software in Source Code Form, including any 168 | Modifications that You create or to which You contribute, must be under 169 | the terms of this License. You must inform recipients that the Source 170 | Code Form of the Covered Software is governed by the terms of this 171 | License, and how they can obtain a copy of this License. You may not 172 | attempt to alter or restrict the recipients' rights in the Source Code 173 | Form. 174 | 175 | 3.2. Distribution of Executable Form 176 | 177 | If You distribute Covered Software in Executable Form then: 178 | 179 | a. such Covered Software must also be made available in Source Code Form, 180 | as described in Section 3.1, and You must inform recipients of the 181 | Executable Form how they can obtain a copy of such Source Code Form by 182 | reasonable means in a timely manner, at a charge no more than the cost 183 | of distribution to the recipient; and 184 | 185 | b. You may distribute such Executable Form under the terms of this 186 | License, or sublicense it under different terms, provided that the 187 | license for the Executable Form does not attempt to limit or alter the 188 | recipients' rights in the Source Code Form under this License. 189 | 190 | 3.3. Distribution of a Larger Work 191 | 192 | You may create and distribute a Larger Work under terms of Your choice, 193 | provided that You also comply with the requirements of this License for 194 | the Covered Software. If the Larger Work is a combination of Covered 195 | Software with a work governed by one or more Secondary Licenses, and the 196 | Covered Software is not Incompatible With Secondary Licenses, this 197 | License permits You to additionally distribute such Covered Software 198 | under the terms of such Secondary License(s), so that the recipient of 199 | the Larger Work may, at their option, further distribute the Covered 200 | Software under the terms of either this License or such Secondary 201 | License(s). 202 | 203 | 3.4. Notices 204 | 205 | You may not remove or alter the substance of any license notices 206 | (including copyright notices, patent notices, disclaimers of warranty, or 207 | limitations of liability) contained within the Source Code Form of the 208 | Covered Software, except that You may alter any license notices to the 209 | extent required to remedy known factual inaccuracies. 210 | 211 | 3.5. Application of Additional Terms 212 | 213 | You may choose to offer, and to charge a fee for, warranty, support, 214 | indemnity or liability obligations to one or more recipients of Covered 215 | Software. However, You may do so only on Your own behalf, and not on 216 | behalf of any Contributor. You must make it absolutely clear that any 217 | such warranty, support, indemnity, or liability obligation is offered by 218 | You alone, and You hereby agree to indemnify every Contributor for any 219 | liability incurred by such Contributor as a result of warranty, support, 220 | indemnity or liability terms You offer. You may include additional 221 | disclaimers of warranty and limitations of liability specific to any 222 | jurisdiction. 223 | 224 | 4. Inability to Comply Due to Statute or Regulation 225 | 226 | If it is impossible for You to comply with any of the terms of this License 227 | with respect to some or all of the Covered Software due to statute, 228 | judicial order, or regulation then You must: (a) comply with the terms of 229 | this License to the maximum extent possible; and (b) describe the 230 | limitations and the code they affect. Such description must be placed in a 231 | text file included with all distributions of the Covered Software under 232 | this License. Except to the extent prohibited by statute or regulation, 233 | such description must be sufficiently detailed for a recipient of ordinary 234 | skill to be able to understand it. 235 | 236 | 5. Termination 237 | 238 | 5.1. The rights granted under this License will terminate automatically if You 239 | fail to comply with any of its terms. However, if You become compliant, 240 | then the rights granted under this License from a particular Contributor 241 | are reinstated (a) provisionally, unless and until such Contributor 242 | explicitly and finally terminates Your grants, and (b) on an ongoing 243 | basis, if such Contributor fails to notify You of the non-compliance by 244 | some reasonable means prior to 60 days after You have come back into 245 | compliance. Moreover, Your grants from a particular Contributor are 246 | reinstated on an ongoing basis if such Contributor notifies You of the 247 | non-compliance by some reasonable means, this is the first time You have 248 | received notice of non-compliance with this License from such 249 | Contributor, and You become compliant prior to 30 days after Your receipt 250 | of the notice. 251 | 252 | 5.2. If You initiate litigation against any entity by asserting a patent 253 | infringement claim (excluding declaratory judgment actions, 254 | counter-claims, and cross-claims) alleging that a Contributor Version 255 | directly or indirectly infringes any patent, then the rights granted to 256 | You by any and all Contributors for the Covered Software under Section 257 | 2.1 of this License shall terminate. 258 | 259 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user 260 | license agreements (excluding distributors and resellers) which have been 261 | validly granted by You or Your distributors under this License prior to 262 | termination shall survive termination. 263 | 264 | 6. Disclaimer of Warranty 265 | 266 | Covered Software is provided under this License on an "as is" basis, 267 | without warranty of any kind, either expressed, implied, or statutory, 268 | including, without limitation, warranties that the Covered Software is free 269 | of defects, merchantable, fit for a particular purpose or non-infringing. 270 | The entire risk as to the quality and performance of the Covered Software 271 | is with You. Should any Covered Software prove defective in any respect, 272 | You (not any Contributor) assume the cost of any necessary servicing, 273 | repair, or correction. This disclaimer of warranty constitutes an essential 274 | part of this License. No use of any Covered Software is authorized under 275 | this License except under this disclaimer. 276 | 277 | 7. Limitation of Liability 278 | 279 | Under no circumstances and under no legal theory, whether tort (including 280 | negligence), contract, or otherwise, shall any Contributor, or anyone who 281 | distributes Covered Software as permitted above, be liable to You for any 282 | direct, indirect, special, incidental, or consequential damages of any 283 | character including, without limitation, damages for lost profits, loss of 284 | goodwill, work stoppage, computer failure or malfunction, or any and all 285 | other commercial damages or losses, even if such party shall have been 286 | informed of the possibility of such damages. This limitation of liability 287 | shall not apply to liability for death or personal injury resulting from 288 | such party's negligence to the extent applicable law prohibits such 289 | limitation. Some jurisdictions do not allow the exclusion or limitation of 290 | incidental or consequential damages, so this exclusion and limitation may 291 | not apply to You. 292 | 293 | 8. Litigation 294 | 295 | Any litigation relating to this License may be brought only in the courts 296 | of a jurisdiction where the defendant maintains its principal place of 297 | business and such litigation shall be governed by laws of that 298 | jurisdiction, without reference to its conflict-of-law provisions. Nothing 299 | in this Section shall prevent a party's ability to bring cross-claims or 300 | counter-claims. 301 | 302 | 9. Miscellaneous 303 | 304 | This License represents the complete agreement concerning the subject 305 | matter hereof. If any provision of this License is held to be 306 | unenforceable, such provision shall be reformed only to the extent 307 | necessary to make it enforceable. Any law or regulation which provides that 308 | the language of a contract shall be construed against the drafter shall not 309 | be used to construe this License against a Contributor. 310 | 311 | 312 | 10. Versions of the License 313 | 314 | 10.1. New Versions 315 | 316 | Mozilla Foundation is the license steward. Except as provided in Section 317 | 10.3, no one other than the license steward has the right to modify or 318 | publish new versions of this License. Each version will be given a 319 | distinguishing version number. 320 | 321 | 10.2. Effect of New Versions 322 | 323 | You may distribute the Covered Software under the terms of the version 324 | of the License under which You originally received the Covered Software, 325 | or under the terms of any subsequent version published by the license 326 | steward. 327 | 328 | 10.3. Modified Versions 329 | 330 | If you create software not governed by this License, and you want to 331 | create a new license for such software, you may create and use a 332 | modified version of this License if you rename the license and remove 333 | any references to the name of the license steward (except to note that 334 | such modified license differs from this License). 335 | 336 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 337 | Licenses If You choose to distribute Source Code Form that is 338 | Incompatible With Secondary Licenses under the terms of this version of 339 | the License, the notice described in Exhibit B of this License must be 340 | attached. 341 | 342 | Exhibit A - Source Code Form License Notice 343 | 344 | This Source Code Form is subject to the 345 | terms of the Mozilla Public License, v. 346 | 2.0. If a copy of the MPL was not 347 | distributed with this file, You can 348 | obtain one at 349 | http://mozilla.org/MPL/2.0/. 350 | 351 | If it is not possible or desirable to put the notice in a particular file, 352 | then You may include the notice in a location (such as a LICENSE file in a 353 | relevant directory) where a recipient would be likely to look for such a 354 | notice. 355 | 356 | You may add additional accurate notices of copyright ownership. 357 | 358 | Exhibit B - "Incompatible With Secondary Licenses" Notice 359 | 360 | This Source Code Form is "Incompatible 361 | With Secondary Licenses", as defined by 362 | the Mozilla Public License, v. 2.0. 363 | 364 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # notebook-generator 2 | 3 | (Auto) generate notebooks from your source code. Useful for ACM-ICPC 4 | 5 | ## Dependencies 6 | 7 | This generator works in both Linux and Windows, so check how to install texlive in your OS. 8 | 9 | texlive for Linux: 10 | 11 | aptitude install texlive texlive-latex-extra 12 | 13 | texlive for Windows: 14 | 15 | download installer (install-tl-Windows.exe) from https://www.tug.org/texlive/acquire-netinstall.html 16 | 17 | ## Install 18 | 19 | npm install -g notebook-generator 20 | 21 | ## Use 22 | 23 | Usage: notebook-generator [options] 24 | 25 | Auto generate notebooks from your source code 26 | 27 | Options: 28 | -V, --version output the version number 29 | -a --author author's name to be added in the notebook 30 | -i --initials initials of the author to be placed in the upper-right corner of all pages 31 | -o --output output file for the notebook. (default: "./notebook.pdf") 32 | -s --size font size is allowed 8, 9, 10, 11, 12, 14, 17, 20 pt (default: "10") 33 | -c --columns number of columns is allowed 2, 3. (default: "2") 34 | -p --paper paper size is allowed letterpaper, a4paper, a5paper. (default: "letterpaper") 35 | -h, --help output usage information 36 | -I --image cover image to be added in the notebook. 37 | 38 | 39 | example: 40 | 41 | notebook-generator ./ --output /tmp/team_reference.pdf 42 | notebook-generator ./ --author "Universidad Tecnologica de Pereira" --initials UTP --size 12 --columns 3 --paper a4paper --image ./in-silicon 43 | 44 | The second one will create a 'notebook.pdf' file in the current directory. 45 | 46 | ## Example PDF 47 | 48 | Here you can find an example https://github.com/pin3da/Programming-contest/blob/master/codes/notebook.pdf 49 | 50 | ## Files 51 | 52 | The notebook generator will add your source code with syntax highlight, additionally 53 | you can add .tex files which will be rendered as latex code. 54 | 55 | ## Notes: 56 | 57 | - Try to use up to 3 "levels" in your source code. 58 | - Use spaces insead of underscore (in the filenames) to print a prettier TOC. 59 | 60 | ---- 61 | [Manuel Pineda](https://github.com/pin3da/) & [Diego Restrepo](https://github.com/Diegores14) 62 | -------------------------------------------------------------------------------- /bin/notebookgen: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var notebookgen = require('../notebookgen.js') 4 | var options = require('commander') 5 | 6 | options 7 | .version('1.4.6') 8 | .usage(' [options]') 9 | .description('Auto generate notebooks from your source code') 10 | .option('-a --author ', 'author\'s name to be added in the notebook') 11 | .option('-i --initials ', 'initials of the author to be placed in the upper-right corner of all pages') 12 | .option('-o --output ', 'output file for the notebook.', './notebook.pdf') 13 | .option('-s --size ', 'font size is allowed 8, 9, 10, 11, 12, 14, 17, 20 pt', /^(8|9|10|11|12|14|17|20)$/i, '10') 14 | .option('-c --columns ', 'number of columns is allowed 2, 3.', /^(2|3)$/i, '2') 15 | .option('-p --paper ', 'paper size is allowed letterpaper, a4paper, a5paper.', /^(letterpaper|a4paper|a5paper)$/i, 'letterpaper') 16 | .option('-I --image ', 'cover image to be added in the notebook.') 17 | 18 | options.parse(process.argv) 19 | 20 | if (options.args.length < 1) { 21 | console.error('The source_dir is required.\nRun `notebookgen --help`') 22 | process.exit(1) 23 | } 24 | 25 | notebookgen(options.args[0], options.opts()) 26 | -------------------------------------------------------------------------------- /notebookgen.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const spawn = require('child_process').spawn 4 | const through2 = require('through2') 5 | const tmp = require('tmp') 6 | const os = require('os') 7 | 8 | const section = ['\\section{', '\\subsection{', '\\subsubsection{'] 9 | const extensions = { 10 | '.cc': 'C++', 11 | '.cpp': 'C++', 12 | '.hpp': 'C++', 13 | '.c': 'C', 14 | '.java': 'Java', 15 | '.py': 'Python', 16 | '.tex': 'Tex', 17 | '.go': 'Golang' 18 | } 19 | 20 | function walk (_path, depth) { 21 | let ans = '' 22 | depth = Math.min(depth, section.length - 1) 23 | fs.readdirSync(_path).forEach(function (file) { 24 | if (file.startsWith('.')) { 25 | return // hidden directory 26 | } 27 | const f = path.resolve(_path, file) 28 | const stat = fs.lstatSync(f) 29 | if (stat.isDirectory()) { 30 | ans += '\n' + section[depth] + file + '}\n' + walk(f, depth + 1) 31 | } else if (path.extname(f) in extensions) { 32 | ans += '\n' + section[depth] + file.split('.')[0] + '}\n' 33 | if (path.extname(f) !== '.tex') { 34 | ans += `\\begin{lstlisting}[language=${extensions[path.extname(f)]}]\n` + fs.readFileSync(f) + '\\end{lstlisting}\n' 35 | } else { 36 | ans += fs.readFileSync(f) 37 | } 38 | } 39 | }) 40 | return ans 41 | } 42 | 43 | /** 44 | * pdf must be generated twice in order to generate the table of contents. 45 | * According to some tests, in windows it must be generated 3 times. 46 | * */ 47 | function genpdf (ans, texPath, tmpobj, iter) { 48 | const tex = spawn('pdflatex', [ 49 | '-interaction=nonstopmode', 50 | texPath 51 | ], { 52 | cwd: tmpobj.name, 53 | env: process.env 54 | }) 55 | 56 | tex.on('error', function (err) { 57 | console.error(err) 58 | }) 59 | 60 | tex.on('exit', function (code, signal) { 61 | const outputFile = texPath.split('.')[0] + '.pdf' 62 | fs.access(outputFile, function (err) { 63 | if (err) { 64 | return console.error('Not generated ' + code + ' : ' + signal) 65 | } 66 | if (iter === 0) { 67 | const s = fs.createReadStream(outputFile) 68 | s.pipe(ans) 69 | s.on('close', function () { 70 | tmpobj.removeCallback() 71 | }) 72 | } else { 73 | genpdf(ans, texPath, tmpobj, iter - 1) 74 | } 75 | }) 76 | }) 77 | } 78 | 79 | function pdflatex (doc) { 80 | const tmpobj = tmp.dirSync({ unsafeCleanup: true }) 81 | const texPath = path.join(tmpobj.name, '_notebook.tex') 82 | 83 | const ans = through2() 84 | ans.readable = true 85 | const input = fs.createWriteStream(texPath) 86 | input.end(doc) 87 | input.on('close', function () { 88 | const iters = process.platform === 'win32' ? 2 : 1 89 | genpdf(ans, texPath, tmpobj, iters) 90 | }) 91 | 92 | return ans 93 | } 94 | 95 | function normalizeUnixStyle (currentPath) { 96 | if (os.type() === 'Windows_NT') { 97 | return currentPath.replace(/\\/g, '/') 98 | } 99 | return currentPath 100 | } 101 | 102 | function templateParameter (parameter) { 103 | return `\${${parameter}}` 104 | } 105 | 106 | module.exports = function (_path, options) { 107 | options.output = options.output || './notebook.pdf' 108 | options.author = options.author || '' 109 | options.initials = options.initials || '' 110 | 111 | if (!options.size.endsWith('pt')) options.size += 'pt' 112 | if (options.image) { 113 | options.image = normalizeUnixStyle(path.resolve(options.image)) 114 | options.image = '\\centering{\\includegraphics[width=3.5cm]{' + options.image + '}}' 115 | } else { 116 | options.image = '' 117 | } 118 | 119 | let template = fs.readFileSync(path.join(__dirname, 'template_header.tex')).toString() 120 | template = template 121 | .replace(templateParameter('author'), options.author) 122 | .replace(templateParameter('initials'), options.initials) 123 | .replace(templateParameter('fontSize'), options.size) 124 | .replace(templateParameter('columns'), options.columns) 125 | .replace(templateParameter('paper'), options.paper) 126 | .replace(templateParameter('image'), options.image) 127 | 128 | template += walk(_path, 0) 129 | template += '\\end{multicols}\n' 130 | template += '\\end{document}' 131 | pdflatex(template).pipe(fs.createWriteStream(options.output)) 132 | } 133 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notebook-generator", 3 | "version": "1.4.7", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.12.13", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", 10 | "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.12.13" 14 | } 15 | }, 16 | "@babel/helper-validator-identifier": { 17 | "version": "7.12.11", 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", 19 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", 20 | "dev": true 21 | }, 22 | "@babel/highlight": { 23 | "version": "7.12.13", 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", 25 | "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", 26 | "dev": true, 27 | "requires": { 28 | "@babel/helper-validator-identifier": "^7.12.11", 29 | "chalk": "^2.0.0", 30 | "js-tokens": "^4.0.0" 31 | }, 32 | "dependencies": { 33 | "chalk": { 34 | "version": "2.4.2", 35 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 36 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 37 | "dev": true, 38 | "requires": { 39 | "ansi-styles": "^3.2.1", 40 | "escape-string-regexp": "^1.0.5", 41 | "supports-color": "^5.3.0" 42 | } 43 | } 44 | } 45 | }, 46 | "@eslint/eslintrc": { 47 | "version": "0.2.2", 48 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", 49 | "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", 50 | "dev": true, 51 | "requires": { 52 | "ajv": "^6.12.4", 53 | "debug": "^4.1.1", 54 | "espree": "^7.3.0", 55 | "globals": "^12.1.0", 56 | "ignore": "^4.0.6", 57 | "import-fresh": "^3.2.1", 58 | "js-yaml": "^3.13.1", 59 | "lodash": "^4.17.19", 60 | "minimatch": "^3.0.4", 61 | "strip-json-comments": "^3.1.1" 62 | } 63 | }, 64 | "@types/json5": { 65 | "version": "0.0.29", 66 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 67 | "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", 68 | "dev": true 69 | }, 70 | "acorn": { 71 | "version": "7.4.1", 72 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 73 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 74 | "dev": true 75 | }, 76 | "acorn-jsx": { 77 | "version": "5.3.1", 78 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", 79 | "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", 80 | "dev": true 81 | }, 82 | "ajv": { 83 | "version": "6.12.6", 84 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 85 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 86 | "dev": true, 87 | "requires": { 88 | "fast-deep-equal": "^3.1.1", 89 | "fast-json-stable-stringify": "^2.0.0", 90 | "json-schema-traverse": "^0.4.1", 91 | "uri-js": "^4.2.2" 92 | } 93 | }, 94 | "ansi-colors": { 95 | "version": "4.1.1", 96 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 97 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 98 | "dev": true 99 | }, 100 | "ansi-regex": { 101 | "version": "5.0.1", 102 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 103 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 104 | "dev": true 105 | }, 106 | "ansi-styles": { 107 | "version": "3.2.1", 108 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 109 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 110 | "dev": true, 111 | "requires": { 112 | "color-convert": "^1.9.0" 113 | } 114 | }, 115 | "argparse": { 116 | "version": "1.0.10", 117 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 118 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 119 | "dev": true, 120 | "requires": { 121 | "sprintf-js": "~1.0.2" 122 | } 123 | }, 124 | "array-includes": { 125 | "version": "3.1.2", 126 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", 127 | "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", 128 | "dev": true, 129 | "requires": { 130 | "call-bind": "^1.0.0", 131 | "define-properties": "^1.1.3", 132 | "es-abstract": "^1.18.0-next.1", 133 | "get-intrinsic": "^1.0.1", 134 | "is-string": "^1.0.5" 135 | } 136 | }, 137 | "array.prototype.flat": { 138 | "version": "1.2.4", 139 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", 140 | "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", 141 | "dev": true, 142 | "requires": { 143 | "call-bind": "^1.0.0", 144 | "define-properties": "^1.1.3", 145 | "es-abstract": "^1.18.0-next.1" 146 | } 147 | }, 148 | "array.prototype.flatmap": { 149 | "version": "1.2.4", 150 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", 151 | "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", 152 | "dev": true, 153 | "requires": { 154 | "call-bind": "^1.0.0", 155 | "define-properties": "^1.1.3", 156 | "es-abstract": "^1.18.0-next.1", 157 | "function-bind": "^1.1.1" 158 | } 159 | }, 160 | "astral-regex": { 161 | "version": "1.0.0", 162 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 163 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 164 | "dev": true 165 | }, 166 | "balanced-match": { 167 | "version": "1.0.0", 168 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 169 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 170 | }, 171 | "brace-expansion": { 172 | "version": "1.1.11", 173 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 174 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 175 | "requires": { 176 | "balanced-match": "^1.0.0", 177 | "concat-map": "0.0.1" 178 | } 179 | }, 180 | "call-bind": { 181 | "version": "1.0.2", 182 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 183 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 184 | "dev": true, 185 | "requires": { 186 | "function-bind": "^1.1.1", 187 | "get-intrinsic": "^1.0.2" 188 | } 189 | }, 190 | "callsites": { 191 | "version": "3.1.0", 192 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 193 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 194 | "dev": true 195 | }, 196 | "chalk": { 197 | "version": "4.1.0", 198 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 199 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 200 | "dev": true, 201 | "requires": { 202 | "ansi-styles": "^4.1.0", 203 | "supports-color": "^7.1.0" 204 | }, 205 | "dependencies": { 206 | "ansi-styles": { 207 | "version": "4.3.0", 208 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 209 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 210 | "dev": true, 211 | "requires": { 212 | "color-convert": "^2.0.1" 213 | } 214 | }, 215 | "color-convert": { 216 | "version": "2.0.1", 217 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 218 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 219 | "dev": true, 220 | "requires": { 221 | "color-name": "~1.1.4" 222 | } 223 | }, 224 | "color-name": { 225 | "version": "1.1.4", 226 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 227 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 228 | "dev": true 229 | }, 230 | "has-flag": { 231 | "version": "4.0.0", 232 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 233 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 234 | "dev": true 235 | }, 236 | "supports-color": { 237 | "version": "7.2.0", 238 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 239 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 240 | "dev": true, 241 | "requires": { 242 | "has-flag": "^4.0.0" 243 | } 244 | } 245 | } 246 | }, 247 | "color-convert": { 248 | "version": "1.9.3", 249 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 250 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 251 | "dev": true, 252 | "requires": { 253 | "color-name": "1.1.3" 254 | } 255 | }, 256 | "color-name": { 257 | "version": "1.1.3", 258 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 259 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 260 | "dev": true 261 | }, 262 | "commander": { 263 | "version": "7.0.0", 264 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz", 265 | "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==" 266 | }, 267 | "concat-map": { 268 | "version": "0.0.1", 269 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 270 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 271 | }, 272 | "contains-path": { 273 | "version": "0.1.0", 274 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", 275 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", 276 | "dev": true 277 | }, 278 | "cross-spawn": { 279 | "version": "7.0.3", 280 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 281 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 282 | "dev": true, 283 | "requires": { 284 | "path-key": "^3.1.0", 285 | "shebang-command": "^2.0.0", 286 | "which": "^2.0.1" 287 | } 288 | }, 289 | "debug": { 290 | "version": "4.3.1", 291 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 292 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 293 | "dev": true, 294 | "requires": { 295 | "ms": "2.1.2" 296 | } 297 | }, 298 | "deep-is": { 299 | "version": "0.1.3", 300 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 301 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 302 | "dev": true 303 | }, 304 | "define-properties": { 305 | "version": "1.1.3", 306 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 307 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 308 | "dev": true, 309 | "requires": { 310 | "object-keys": "^1.0.12" 311 | } 312 | }, 313 | "doctrine": { 314 | "version": "3.0.0", 315 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 316 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 317 | "dev": true, 318 | "requires": { 319 | "esutils": "^2.0.2" 320 | } 321 | }, 322 | "emoji-regex": { 323 | "version": "7.0.3", 324 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 325 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 326 | "dev": true 327 | }, 328 | "enquirer": { 329 | "version": "2.3.6", 330 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 331 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 332 | "dev": true, 333 | "requires": { 334 | "ansi-colors": "^4.1.1" 335 | } 336 | }, 337 | "error-ex": { 338 | "version": "1.3.2", 339 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 340 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 341 | "dev": true, 342 | "requires": { 343 | "is-arrayish": "^0.2.1" 344 | } 345 | }, 346 | "es-abstract": { 347 | "version": "1.18.0-next.2", 348 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", 349 | "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", 350 | "dev": true, 351 | "requires": { 352 | "call-bind": "^1.0.2", 353 | "es-to-primitive": "^1.2.1", 354 | "function-bind": "^1.1.1", 355 | "get-intrinsic": "^1.0.2", 356 | "has": "^1.0.3", 357 | "has-symbols": "^1.0.1", 358 | "is-callable": "^1.2.2", 359 | "is-negative-zero": "^2.0.1", 360 | "is-regex": "^1.1.1", 361 | "object-inspect": "^1.9.0", 362 | "object-keys": "^1.1.1", 363 | "object.assign": "^4.1.2", 364 | "string.prototype.trimend": "^1.0.3", 365 | "string.prototype.trimstart": "^1.0.3" 366 | } 367 | }, 368 | "es-to-primitive": { 369 | "version": "1.2.1", 370 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 371 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 372 | "dev": true, 373 | "requires": { 374 | "is-callable": "^1.1.4", 375 | "is-date-object": "^1.0.1", 376 | "is-symbol": "^1.0.2" 377 | } 378 | }, 379 | "escape-string-regexp": { 380 | "version": "1.0.5", 381 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 382 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 383 | "dev": true 384 | }, 385 | "eslint": { 386 | "version": "7.13.0", 387 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", 388 | "integrity": "sha512-uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==", 389 | "dev": true, 390 | "requires": { 391 | "@babel/code-frame": "^7.0.0", 392 | "@eslint/eslintrc": "^0.2.1", 393 | "ajv": "^6.10.0", 394 | "chalk": "^4.0.0", 395 | "cross-spawn": "^7.0.2", 396 | "debug": "^4.0.1", 397 | "doctrine": "^3.0.0", 398 | "enquirer": "^2.3.5", 399 | "eslint-scope": "^5.1.1", 400 | "eslint-utils": "^2.1.0", 401 | "eslint-visitor-keys": "^2.0.0", 402 | "espree": "^7.3.0", 403 | "esquery": "^1.2.0", 404 | "esutils": "^2.0.2", 405 | "file-entry-cache": "^5.0.1", 406 | "functional-red-black-tree": "^1.0.1", 407 | "glob-parent": "^5.0.0", 408 | "globals": "^12.1.0", 409 | "ignore": "^4.0.6", 410 | "import-fresh": "^3.0.0", 411 | "imurmurhash": "^0.1.4", 412 | "is-glob": "^4.0.0", 413 | "js-yaml": "^3.13.1", 414 | "json-stable-stringify-without-jsonify": "^1.0.1", 415 | "levn": "^0.4.1", 416 | "lodash": "^4.17.19", 417 | "minimatch": "^3.0.4", 418 | "natural-compare": "^1.4.0", 419 | "optionator": "^0.9.1", 420 | "progress": "^2.0.0", 421 | "regexpp": "^3.1.0", 422 | "semver": "^7.2.1", 423 | "strip-ansi": "^6.0.0", 424 | "strip-json-comments": "^3.1.0", 425 | "table": "^5.2.3", 426 | "text-table": "^0.2.0", 427 | "v8-compile-cache": "^2.0.3" 428 | } 429 | }, 430 | "eslint-config-standard": { 431 | "version": "16.0.2", 432 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", 433 | "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", 434 | "dev": true 435 | }, 436 | "eslint-config-standard-jsx": { 437 | "version": "10.0.0", 438 | "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-10.0.0.tgz", 439 | "integrity": "sha512-hLeA2f5e06W1xyr/93/QJulN/rLbUVUmqTlexv9PRKHFwEC9ffJcH2LvJhMoEqYQBEYafedgGZXH2W8NUpt5lA==", 440 | "dev": true 441 | }, 442 | "eslint-import-resolver-node": { 443 | "version": "0.3.4", 444 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", 445 | "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", 446 | "dev": true, 447 | "requires": { 448 | "debug": "^2.6.9", 449 | "resolve": "^1.13.1" 450 | }, 451 | "dependencies": { 452 | "debug": { 453 | "version": "2.6.9", 454 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 455 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 456 | "dev": true, 457 | "requires": { 458 | "ms": "2.0.0" 459 | } 460 | }, 461 | "ms": { 462 | "version": "2.0.0", 463 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 464 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 465 | "dev": true 466 | } 467 | } 468 | }, 469 | "eslint-module-utils": { 470 | "version": "2.6.0", 471 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", 472 | "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", 473 | "dev": true, 474 | "requires": { 475 | "debug": "^2.6.9", 476 | "pkg-dir": "^2.0.0" 477 | }, 478 | "dependencies": { 479 | "debug": { 480 | "version": "2.6.9", 481 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 482 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 483 | "dev": true, 484 | "requires": { 485 | "ms": "2.0.0" 486 | } 487 | }, 488 | "ms": { 489 | "version": "2.0.0", 490 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 491 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 492 | "dev": true 493 | } 494 | } 495 | }, 496 | "eslint-plugin-es": { 497 | "version": "3.0.1", 498 | "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", 499 | "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", 500 | "dev": true, 501 | "requires": { 502 | "eslint-utils": "^2.0.0", 503 | "regexpp": "^3.0.0" 504 | } 505 | }, 506 | "eslint-plugin-import": { 507 | "version": "2.22.1", 508 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", 509 | "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", 510 | "dev": true, 511 | "requires": { 512 | "array-includes": "^3.1.1", 513 | "array.prototype.flat": "^1.2.3", 514 | "contains-path": "^0.1.0", 515 | "debug": "^2.6.9", 516 | "doctrine": "1.5.0", 517 | "eslint-import-resolver-node": "^0.3.4", 518 | "eslint-module-utils": "^2.6.0", 519 | "has": "^1.0.3", 520 | "minimatch": "^3.0.4", 521 | "object.values": "^1.1.1", 522 | "read-pkg-up": "^2.0.0", 523 | "resolve": "^1.17.0", 524 | "tsconfig-paths": "^3.9.0" 525 | }, 526 | "dependencies": { 527 | "debug": { 528 | "version": "2.6.9", 529 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 530 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 531 | "dev": true, 532 | "requires": { 533 | "ms": "2.0.0" 534 | } 535 | }, 536 | "doctrine": { 537 | "version": "1.5.0", 538 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", 539 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", 540 | "dev": true, 541 | "requires": { 542 | "esutils": "^2.0.2", 543 | "isarray": "^1.0.0" 544 | } 545 | }, 546 | "ms": { 547 | "version": "2.0.0", 548 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 549 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 550 | "dev": true 551 | } 552 | } 553 | }, 554 | "eslint-plugin-node": { 555 | "version": "11.1.0", 556 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", 557 | "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", 558 | "dev": true, 559 | "requires": { 560 | "eslint-plugin-es": "^3.0.0", 561 | "eslint-utils": "^2.0.0", 562 | "ignore": "^5.1.1", 563 | "minimatch": "^3.0.4", 564 | "resolve": "^1.10.1", 565 | "semver": "^6.1.0" 566 | }, 567 | "dependencies": { 568 | "ignore": { 569 | "version": "5.1.8", 570 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 571 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 572 | "dev": true 573 | }, 574 | "semver": { 575 | "version": "6.3.0", 576 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 577 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 578 | "dev": true 579 | } 580 | } 581 | }, 582 | "eslint-plugin-promise": { 583 | "version": "4.2.1", 584 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", 585 | "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", 586 | "dev": true 587 | }, 588 | "eslint-plugin-react": { 589 | "version": "7.21.5", 590 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz", 591 | "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==", 592 | "dev": true, 593 | "requires": { 594 | "array-includes": "^3.1.1", 595 | "array.prototype.flatmap": "^1.2.3", 596 | "doctrine": "^2.1.0", 597 | "has": "^1.0.3", 598 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", 599 | "object.entries": "^1.1.2", 600 | "object.fromentries": "^2.0.2", 601 | "object.values": "^1.1.1", 602 | "prop-types": "^15.7.2", 603 | "resolve": "^1.18.1", 604 | "string.prototype.matchall": "^4.0.2" 605 | }, 606 | "dependencies": { 607 | "doctrine": { 608 | "version": "2.1.0", 609 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 610 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 611 | "dev": true, 612 | "requires": { 613 | "esutils": "^2.0.2" 614 | } 615 | } 616 | } 617 | }, 618 | "eslint-scope": { 619 | "version": "5.1.1", 620 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 621 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 622 | "dev": true, 623 | "requires": { 624 | "esrecurse": "^4.3.0", 625 | "estraverse": "^4.1.1" 626 | } 627 | }, 628 | "eslint-utils": { 629 | "version": "2.1.0", 630 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", 631 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", 632 | "dev": true, 633 | "requires": { 634 | "eslint-visitor-keys": "^1.1.0" 635 | }, 636 | "dependencies": { 637 | "eslint-visitor-keys": { 638 | "version": "1.3.0", 639 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 640 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 641 | "dev": true 642 | } 643 | } 644 | }, 645 | "eslint-visitor-keys": { 646 | "version": "2.0.0", 647 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", 648 | "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", 649 | "dev": true 650 | }, 651 | "espree": { 652 | "version": "7.3.1", 653 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", 654 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", 655 | "dev": true, 656 | "requires": { 657 | "acorn": "^7.4.0", 658 | "acorn-jsx": "^5.3.1", 659 | "eslint-visitor-keys": "^1.3.0" 660 | }, 661 | "dependencies": { 662 | "eslint-visitor-keys": { 663 | "version": "1.3.0", 664 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 665 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 666 | "dev": true 667 | } 668 | } 669 | }, 670 | "esprima": { 671 | "version": "4.0.1", 672 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 673 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 674 | "dev": true 675 | }, 676 | "esquery": { 677 | "version": "1.4.0", 678 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 679 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 680 | "dev": true, 681 | "requires": { 682 | "estraverse": "^5.1.0" 683 | }, 684 | "dependencies": { 685 | "estraverse": { 686 | "version": "5.2.0", 687 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 688 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 689 | "dev": true 690 | } 691 | } 692 | }, 693 | "esrecurse": { 694 | "version": "4.3.0", 695 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 696 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 697 | "dev": true, 698 | "requires": { 699 | "estraverse": "^5.2.0" 700 | }, 701 | "dependencies": { 702 | "estraverse": { 703 | "version": "5.2.0", 704 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 705 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 706 | "dev": true 707 | } 708 | } 709 | }, 710 | "estraverse": { 711 | "version": "4.3.0", 712 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 713 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 714 | "dev": true 715 | }, 716 | "esutils": { 717 | "version": "2.0.3", 718 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 719 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 720 | "dev": true 721 | }, 722 | "fast-deep-equal": { 723 | "version": "3.1.3", 724 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 725 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 726 | "dev": true 727 | }, 728 | "fast-json-stable-stringify": { 729 | "version": "2.1.0", 730 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 731 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 732 | "dev": true 733 | }, 734 | "fast-levenshtein": { 735 | "version": "2.0.6", 736 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 737 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 738 | "dev": true 739 | }, 740 | "file-entry-cache": { 741 | "version": "5.0.1", 742 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 743 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 744 | "dev": true, 745 | "requires": { 746 | "flat-cache": "^2.0.1" 747 | } 748 | }, 749 | "find-up": { 750 | "version": "2.1.0", 751 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 752 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 753 | "dev": true, 754 | "requires": { 755 | "locate-path": "^2.0.0" 756 | } 757 | }, 758 | "flat-cache": { 759 | "version": "2.0.1", 760 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 761 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 762 | "dev": true, 763 | "requires": { 764 | "flatted": "^2.0.0", 765 | "rimraf": "2.6.3", 766 | "write": "1.0.3" 767 | }, 768 | "dependencies": { 769 | "rimraf": { 770 | "version": "2.6.3", 771 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 772 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 773 | "dev": true, 774 | "requires": { 775 | "glob": "^7.1.3" 776 | } 777 | } 778 | } 779 | }, 780 | "flatted": { 781 | "version": "2.0.2", 782 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 783 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 784 | "dev": true 785 | }, 786 | "fs-extra": { 787 | "version": "0.3.2", 788 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.3.2.tgz", 789 | "integrity": "sha1-B0ebBCx9e1zSCwpcHGflW1b3GTs=", 790 | "requires": { 791 | "jsonfile": "0.0.x", 792 | "mkdirp": "0.3.x", 793 | "ncp": "0.2.x", 794 | "rimraf": "~2.0.2" 795 | } 796 | }, 797 | "fs.realpath": { 798 | "version": "1.0.0", 799 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 800 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 801 | }, 802 | "function-bind": { 803 | "version": "1.1.1", 804 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 805 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 806 | "dev": true 807 | }, 808 | "functional-red-black-tree": { 809 | "version": "1.0.1", 810 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 811 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 812 | "dev": true 813 | }, 814 | "get-intrinsic": { 815 | "version": "1.1.1", 816 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 817 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 818 | "dev": true, 819 | "requires": { 820 | "function-bind": "^1.1.1", 821 | "has": "^1.0.3", 822 | "has-symbols": "^1.0.1" 823 | } 824 | }, 825 | "get-stdin": { 826 | "version": "8.0.0", 827 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", 828 | "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", 829 | "dev": true 830 | }, 831 | "glob": { 832 | "version": "7.1.6", 833 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 834 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 835 | "requires": { 836 | "fs.realpath": "^1.0.0", 837 | "inflight": "^1.0.4", 838 | "inherits": "2", 839 | "minimatch": "^3.0.4", 840 | "once": "^1.3.0", 841 | "path-is-absolute": "^1.0.0" 842 | } 843 | }, 844 | "glob-parent": { 845 | "version": "5.1.2", 846 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 847 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 848 | "dev": true, 849 | "requires": { 850 | "is-glob": "^4.0.1" 851 | } 852 | }, 853 | "globals": { 854 | "version": "12.4.0", 855 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", 856 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", 857 | "dev": true, 858 | "requires": { 859 | "type-fest": "^0.8.1" 860 | } 861 | }, 862 | "graceful-fs": { 863 | "version": "1.1.14", 864 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz", 865 | "integrity": "sha1-BweNtfY3f2Mh/Oqu30l94STclGU=", 866 | "optional": true 867 | }, 868 | "has": { 869 | "version": "1.0.3", 870 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 871 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 872 | "dev": true, 873 | "requires": { 874 | "function-bind": "^1.1.1" 875 | } 876 | }, 877 | "has-flag": { 878 | "version": "3.0.0", 879 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 880 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 881 | "dev": true 882 | }, 883 | "has-symbols": { 884 | "version": "1.0.1", 885 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 886 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 887 | "dev": true 888 | }, 889 | "hosted-git-info": { 890 | "version": "2.8.9", 891 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 892 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 893 | "dev": true 894 | }, 895 | "ignore": { 896 | "version": "4.0.6", 897 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 898 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 899 | "dev": true 900 | }, 901 | "import-fresh": { 902 | "version": "3.3.0", 903 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 904 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 905 | "dev": true, 906 | "requires": { 907 | "parent-module": "^1.0.0", 908 | "resolve-from": "^4.0.0" 909 | } 910 | }, 911 | "imurmurhash": { 912 | "version": "0.1.4", 913 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 914 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 915 | "dev": true 916 | }, 917 | "inflight": { 918 | "version": "1.0.6", 919 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 920 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 921 | "requires": { 922 | "once": "^1.3.0", 923 | "wrappy": "1" 924 | } 925 | }, 926 | "inherits": { 927 | "version": "2.0.4", 928 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 929 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 930 | }, 931 | "internal-slot": { 932 | "version": "1.0.3", 933 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", 934 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", 935 | "dev": true, 936 | "requires": { 937 | "get-intrinsic": "^1.1.0", 938 | "has": "^1.0.3", 939 | "side-channel": "^1.0.4" 940 | } 941 | }, 942 | "is-arrayish": { 943 | "version": "0.2.1", 944 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 945 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 946 | "dev": true 947 | }, 948 | "is-callable": { 949 | "version": "1.2.3", 950 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", 951 | "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", 952 | "dev": true 953 | }, 954 | "is-core-module": { 955 | "version": "2.2.0", 956 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 957 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 958 | "dev": true, 959 | "requires": { 960 | "has": "^1.0.3" 961 | } 962 | }, 963 | "is-date-object": { 964 | "version": "1.0.2", 965 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 966 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 967 | "dev": true 968 | }, 969 | "is-extglob": { 970 | "version": "2.1.1", 971 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 972 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 973 | "dev": true 974 | }, 975 | "is-fullwidth-code-point": { 976 | "version": "2.0.0", 977 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 978 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 979 | "dev": true 980 | }, 981 | "is-glob": { 982 | "version": "4.0.1", 983 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 984 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 985 | "dev": true, 986 | "requires": { 987 | "is-extglob": "^2.1.1" 988 | } 989 | }, 990 | "is-negative-zero": { 991 | "version": "2.0.1", 992 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 993 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", 994 | "dev": true 995 | }, 996 | "is-regex": { 997 | "version": "1.1.2", 998 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", 999 | "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", 1000 | "dev": true, 1001 | "requires": { 1002 | "call-bind": "^1.0.2", 1003 | "has-symbols": "^1.0.1" 1004 | } 1005 | }, 1006 | "is-string": { 1007 | "version": "1.0.5", 1008 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", 1009 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", 1010 | "dev": true 1011 | }, 1012 | "is-symbol": { 1013 | "version": "1.0.3", 1014 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 1015 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 1016 | "dev": true, 1017 | "requires": { 1018 | "has-symbols": "^1.0.1" 1019 | } 1020 | }, 1021 | "isarray": { 1022 | "version": "1.0.0", 1023 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1024 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1025 | "dev": true 1026 | }, 1027 | "isexe": { 1028 | "version": "2.0.0", 1029 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1030 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1031 | "dev": true 1032 | }, 1033 | "js-tokens": { 1034 | "version": "4.0.0", 1035 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1036 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1037 | "dev": true 1038 | }, 1039 | "js-yaml": { 1040 | "version": "3.14.1", 1041 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", 1042 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 1043 | "dev": true, 1044 | "requires": { 1045 | "argparse": "^1.0.7", 1046 | "esprima": "^4.0.0" 1047 | } 1048 | }, 1049 | "json-parse-better-errors": { 1050 | "version": "1.0.2", 1051 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1052 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1053 | "dev": true 1054 | }, 1055 | "json-schema-traverse": { 1056 | "version": "0.4.1", 1057 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1058 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1059 | "dev": true 1060 | }, 1061 | "json-stable-stringify-without-jsonify": { 1062 | "version": "1.0.1", 1063 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1064 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1065 | "dev": true 1066 | }, 1067 | "json5": { 1068 | "version": "1.0.2", 1069 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 1070 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 1071 | "dev": true, 1072 | "requires": { 1073 | "minimist": "^1.2.0" 1074 | } 1075 | }, 1076 | "jsonfile": { 1077 | "version": "0.0.1", 1078 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-0.0.1.tgz", 1079 | "integrity": "sha1-tfn1FRIbKETyy/4UM4tVx5gA4dg=" 1080 | }, 1081 | "jsx-ast-utils": { 1082 | "version": "3.2.0", 1083 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", 1084 | "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", 1085 | "dev": true, 1086 | "requires": { 1087 | "array-includes": "^3.1.2", 1088 | "object.assign": "^4.1.2" 1089 | } 1090 | }, 1091 | "latex": { 1092 | "version": "0.0.1", 1093 | "resolved": "https://registry.npmjs.org/latex/-/latex-0.0.1.tgz", 1094 | "integrity": "sha1-DZvRbJD2Mt/0tAGlM0gZ8wvBPqc=", 1095 | "requires": { 1096 | "fs-extra": "~0.3.2", 1097 | "temp": "~0.5.0", 1098 | "through": "~2.1.0" 1099 | } 1100 | }, 1101 | "levn": { 1102 | "version": "0.4.1", 1103 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1104 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1105 | "dev": true, 1106 | "requires": { 1107 | "prelude-ls": "^1.2.1", 1108 | "type-check": "~0.4.0" 1109 | } 1110 | }, 1111 | "load-json-file": { 1112 | "version": "2.0.0", 1113 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1114 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1115 | "dev": true, 1116 | "requires": { 1117 | "graceful-fs": "^4.1.2", 1118 | "parse-json": "^2.2.0", 1119 | "pify": "^2.0.0", 1120 | "strip-bom": "^3.0.0" 1121 | }, 1122 | "dependencies": { 1123 | "graceful-fs": { 1124 | "version": "4.2.5", 1125 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", 1126 | "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", 1127 | "dev": true 1128 | } 1129 | } 1130 | }, 1131 | "locate-path": { 1132 | "version": "2.0.0", 1133 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 1134 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 1135 | "dev": true, 1136 | "requires": { 1137 | "p-locate": "^2.0.0", 1138 | "path-exists": "^3.0.0" 1139 | } 1140 | }, 1141 | "lodash": { 1142 | "version": "4.17.21", 1143 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1144 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1145 | "dev": true 1146 | }, 1147 | "loose-envify": { 1148 | "version": "1.4.0", 1149 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1150 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1151 | "dev": true, 1152 | "requires": { 1153 | "js-tokens": "^3.0.0 || ^4.0.0" 1154 | } 1155 | }, 1156 | "lru-cache": { 1157 | "version": "6.0.0", 1158 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1159 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1160 | "dev": true, 1161 | "requires": { 1162 | "yallist": "^4.0.0" 1163 | } 1164 | }, 1165 | "minimatch": { 1166 | "version": "3.1.2", 1167 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1168 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1169 | "requires": { 1170 | "brace-expansion": "^1.1.7" 1171 | } 1172 | }, 1173 | "minimist": { 1174 | "version": "1.2.8", 1175 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1176 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1177 | "dev": true 1178 | }, 1179 | "mkdirp": { 1180 | "version": "0.3.5", 1181 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", 1182 | "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" 1183 | }, 1184 | "ms": { 1185 | "version": "2.1.2", 1186 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1187 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1188 | "dev": true 1189 | }, 1190 | "natural-compare": { 1191 | "version": "1.4.0", 1192 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1193 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1194 | "dev": true 1195 | }, 1196 | "ncp": { 1197 | "version": "0.2.7", 1198 | "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.2.7.tgz", 1199 | "integrity": "sha1-RvrCt92iVgpMt+YoZ3vV9k6sW+E=" 1200 | }, 1201 | "normalize-package-data": { 1202 | "version": "2.5.0", 1203 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1204 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1205 | "dev": true, 1206 | "requires": { 1207 | "hosted-git-info": "^2.1.4", 1208 | "resolve": "^1.10.0", 1209 | "semver": "2 || 3 || 4 || 5", 1210 | "validate-npm-package-license": "^3.0.1" 1211 | }, 1212 | "dependencies": { 1213 | "semver": { 1214 | "version": "5.7.1", 1215 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1216 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1217 | "dev": true 1218 | } 1219 | } 1220 | }, 1221 | "object-assign": { 1222 | "version": "4.1.1", 1223 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1224 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1225 | "dev": true 1226 | }, 1227 | "object-inspect": { 1228 | "version": "1.9.0", 1229 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", 1230 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", 1231 | "dev": true 1232 | }, 1233 | "object-keys": { 1234 | "version": "1.1.1", 1235 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1236 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1237 | "dev": true 1238 | }, 1239 | "object.assign": { 1240 | "version": "4.1.2", 1241 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 1242 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1243 | "dev": true, 1244 | "requires": { 1245 | "call-bind": "^1.0.0", 1246 | "define-properties": "^1.1.3", 1247 | "has-symbols": "^1.0.1", 1248 | "object-keys": "^1.1.1" 1249 | } 1250 | }, 1251 | "object.entries": { 1252 | "version": "1.1.3", 1253 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", 1254 | "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", 1255 | "dev": true, 1256 | "requires": { 1257 | "call-bind": "^1.0.0", 1258 | "define-properties": "^1.1.3", 1259 | "es-abstract": "^1.18.0-next.1", 1260 | "has": "^1.0.3" 1261 | } 1262 | }, 1263 | "object.fromentries": { 1264 | "version": "2.0.3", 1265 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz", 1266 | "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==", 1267 | "dev": true, 1268 | "requires": { 1269 | "call-bind": "^1.0.0", 1270 | "define-properties": "^1.1.3", 1271 | "es-abstract": "^1.18.0-next.1", 1272 | "has": "^1.0.3" 1273 | } 1274 | }, 1275 | "object.values": { 1276 | "version": "1.1.2", 1277 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", 1278 | "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", 1279 | "dev": true, 1280 | "requires": { 1281 | "call-bind": "^1.0.0", 1282 | "define-properties": "^1.1.3", 1283 | "es-abstract": "^1.18.0-next.1", 1284 | "has": "^1.0.3" 1285 | } 1286 | }, 1287 | "once": { 1288 | "version": "1.4.0", 1289 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1290 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1291 | "requires": { 1292 | "wrappy": "1" 1293 | } 1294 | }, 1295 | "optionator": { 1296 | "version": "0.9.1", 1297 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1298 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1299 | "dev": true, 1300 | "requires": { 1301 | "deep-is": "^0.1.3", 1302 | "fast-levenshtein": "^2.0.6", 1303 | "levn": "^0.4.1", 1304 | "prelude-ls": "^1.2.1", 1305 | "type-check": "^0.4.0", 1306 | "word-wrap": "^1.2.3" 1307 | } 1308 | }, 1309 | "p-limit": { 1310 | "version": "1.3.0", 1311 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", 1312 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", 1313 | "dev": true, 1314 | "requires": { 1315 | "p-try": "^1.0.0" 1316 | } 1317 | }, 1318 | "p-locate": { 1319 | "version": "2.0.0", 1320 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 1321 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 1322 | "dev": true, 1323 | "requires": { 1324 | "p-limit": "^1.1.0" 1325 | } 1326 | }, 1327 | "p-try": { 1328 | "version": "1.0.0", 1329 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 1330 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 1331 | "dev": true 1332 | }, 1333 | "parent-module": { 1334 | "version": "1.0.1", 1335 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1336 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1337 | "dev": true, 1338 | "requires": { 1339 | "callsites": "^3.0.0" 1340 | } 1341 | }, 1342 | "parse-json": { 1343 | "version": "2.2.0", 1344 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1345 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1346 | "dev": true, 1347 | "requires": { 1348 | "error-ex": "^1.2.0" 1349 | } 1350 | }, 1351 | "path-exists": { 1352 | "version": "3.0.0", 1353 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1354 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1355 | "dev": true 1356 | }, 1357 | "path-is-absolute": { 1358 | "version": "1.0.1", 1359 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1360 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1361 | }, 1362 | "path-key": { 1363 | "version": "3.1.1", 1364 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1365 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1366 | "dev": true 1367 | }, 1368 | "path-parse": { 1369 | "version": "1.0.7", 1370 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1371 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1372 | "dev": true 1373 | }, 1374 | "path-type": { 1375 | "version": "2.0.0", 1376 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 1377 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 1378 | "dev": true, 1379 | "requires": { 1380 | "pify": "^2.0.0" 1381 | } 1382 | }, 1383 | "pify": { 1384 | "version": "2.3.0", 1385 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1386 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1387 | "dev": true 1388 | }, 1389 | "pkg-conf": { 1390 | "version": "3.1.0", 1391 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", 1392 | "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", 1393 | "dev": true, 1394 | "requires": { 1395 | "find-up": "^3.0.0", 1396 | "load-json-file": "^5.2.0" 1397 | }, 1398 | "dependencies": { 1399 | "find-up": { 1400 | "version": "3.0.0", 1401 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1402 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1403 | "dev": true, 1404 | "requires": { 1405 | "locate-path": "^3.0.0" 1406 | } 1407 | }, 1408 | "graceful-fs": { 1409 | "version": "4.2.5", 1410 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", 1411 | "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==", 1412 | "dev": true 1413 | }, 1414 | "load-json-file": { 1415 | "version": "5.3.0", 1416 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", 1417 | "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", 1418 | "dev": true, 1419 | "requires": { 1420 | "graceful-fs": "^4.1.15", 1421 | "parse-json": "^4.0.0", 1422 | "pify": "^4.0.1", 1423 | "strip-bom": "^3.0.0", 1424 | "type-fest": "^0.3.0" 1425 | } 1426 | }, 1427 | "locate-path": { 1428 | "version": "3.0.0", 1429 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1430 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1431 | "dev": true, 1432 | "requires": { 1433 | "p-locate": "^3.0.0", 1434 | "path-exists": "^3.0.0" 1435 | } 1436 | }, 1437 | "p-limit": { 1438 | "version": "2.3.0", 1439 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1440 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1441 | "dev": true, 1442 | "requires": { 1443 | "p-try": "^2.0.0" 1444 | } 1445 | }, 1446 | "p-locate": { 1447 | "version": "3.0.0", 1448 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1449 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1450 | "dev": true, 1451 | "requires": { 1452 | "p-limit": "^2.0.0" 1453 | } 1454 | }, 1455 | "p-try": { 1456 | "version": "2.2.0", 1457 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1458 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1459 | "dev": true 1460 | }, 1461 | "parse-json": { 1462 | "version": "4.0.0", 1463 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 1464 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 1465 | "dev": true, 1466 | "requires": { 1467 | "error-ex": "^1.3.1", 1468 | "json-parse-better-errors": "^1.0.1" 1469 | } 1470 | }, 1471 | "pify": { 1472 | "version": "4.0.1", 1473 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 1474 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 1475 | "dev": true 1476 | }, 1477 | "type-fest": { 1478 | "version": "0.3.1", 1479 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", 1480 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", 1481 | "dev": true 1482 | } 1483 | } 1484 | }, 1485 | "pkg-dir": { 1486 | "version": "2.0.0", 1487 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 1488 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 1489 | "dev": true, 1490 | "requires": { 1491 | "find-up": "^2.1.0" 1492 | } 1493 | }, 1494 | "prelude-ls": { 1495 | "version": "1.2.1", 1496 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1497 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1498 | "dev": true 1499 | }, 1500 | "progress": { 1501 | "version": "2.0.3", 1502 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1503 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1504 | "dev": true 1505 | }, 1506 | "prop-types": { 1507 | "version": "15.7.2", 1508 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", 1509 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", 1510 | "dev": true, 1511 | "requires": { 1512 | "loose-envify": "^1.4.0", 1513 | "object-assign": "^4.1.1", 1514 | "react-is": "^16.8.1" 1515 | } 1516 | }, 1517 | "punycode": { 1518 | "version": "2.1.1", 1519 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1520 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1521 | "dev": true 1522 | }, 1523 | "react-is": { 1524 | "version": "16.13.1", 1525 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1526 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 1527 | "dev": true 1528 | }, 1529 | "read-pkg": { 1530 | "version": "2.0.0", 1531 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 1532 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 1533 | "dev": true, 1534 | "requires": { 1535 | "load-json-file": "^2.0.0", 1536 | "normalize-package-data": "^2.3.2", 1537 | "path-type": "^2.0.0" 1538 | } 1539 | }, 1540 | "read-pkg-up": { 1541 | "version": "2.0.0", 1542 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 1543 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 1544 | "dev": true, 1545 | "requires": { 1546 | "find-up": "^2.0.0", 1547 | "read-pkg": "^2.0.0" 1548 | } 1549 | }, 1550 | "readable-stream": { 1551 | "version": "3.6.0", 1552 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1553 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1554 | "requires": { 1555 | "inherits": "^2.0.3", 1556 | "string_decoder": "^1.1.1", 1557 | "util-deprecate": "^1.0.1" 1558 | } 1559 | }, 1560 | "regexp.prototype.flags": { 1561 | "version": "1.3.1", 1562 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", 1563 | "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", 1564 | "dev": true, 1565 | "requires": { 1566 | "call-bind": "^1.0.2", 1567 | "define-properties": "^1.1.3" 1568 | } 1569 | }, 1570 | "regexpp": { 1571 | "version": "3.1.0", 1572 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", 1573 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", 1574 | "dev": true 1575 | }, 1576 | "resolve": { 1577 | "version": "1.19.0", 1578 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", 1579 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", 1580 | "dev": true, 1581 | "requires": { 1582 | "is-core-module": "^2.1.0", 1583 | "path-parse": "^1.0.6" 1584 | } 1585 | }, 1586 | "resolve-from": { 1587 | "version": "4.0.0", 1588 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1589 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1590 | "dev": true 1591 | }, 1592 | "rimraf": { 1593 | "version": "2.0.3", 1594 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz", 1595 | "integrity": "sha1-9QopZecUTpr9mYmC8V33BnMPVqk=", 1596 | "requires": { 1597 | "graceful-fs": "~1.1" 1598 | } 1599 | }, 1600 | "safe-buffer": { 1601 | "version": "5.2.1", 1602 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1603 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1604 | }, 1605 | "semver": { 1606 | "version": "7.3.4", 1607 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", 1608 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", 1609 | "dev": true, 1610 | "requires": { 1611 | "lru-cache": "^6.0.0" 1612 | } 1613 | }, 1614 | "shebang-command": { 1615 | "version": "2.0.0", 1616 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1617 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1618 | "dev": true, 1619 | "requires": { 1620 | "shebang-regex": "^3.0.0" 1621 | } 1622 | }, 1623 | "shebang-regex": { 1624 | "version": "3.0.0", 1625 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1626 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1627 | "dev": true 1628 | }, 1629 | "side-channel": { 1630 | "version": "1.0.4", 1631 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1632 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1633 | "dev": true, 1634 | "requires": { 1635 | "call-bind": "^1.0.0", 1636 | "get-intrinsic": "^1.0.2", 1637 | "object-inspect": "^1.9.0" 1638 | } 1639 | }, 1640 | "slice-ansi": { 1641 | "version": "2.1.0", 1642 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 1643 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 1644 | "dev": true, 1645 | "requires": { 1646 | "ansi-styles": "^3.2.0", 1647 | "astral-regex": "^1.0.0", 1648 | "is-fullwidth-code-point": "^2.0.0" 1649 | } 1650 | }, 1651 | "spdx-correct": { 1652 | "version": "3.1.1", 1653 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", 1654 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", 1655 | "dev": true, 1656 | "requires": { 1657 | "spdx-expression-parse": "^3.0.0", 1658 | "spdx-license-ids": "^3.0.0" 1659 | } 1660 | }, 1661 | "spdx-exceptions": { 1662 | "version": "2.3.0", 1663 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 1664 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", 1665 | "dev": true 1666 | }, 1667 | "spdx-expression-parse": { 1668 | "version": "3.0.1", 1669 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1670 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1671 | "dev": true, 1672 | "requires": { 1673 | "spdx-exceptions": "^2.1.0", 1674 | "spdx-license-ids": "^3.0.0" 1675 | } 1676 | }, 1677 | "spdx-license-ids": { 1678 | "version": "3.0.7", 1679 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", 1680 | "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", 1681 | "dev": true 1682 | }, 1683 | "sprintf-js": { 1684 | "version": "1.0.3", 1685 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1686 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1687 | "dev": true 1688 | }, 1689 | "standard": { 1690 | "version": "16.0.3", 1691 | "resolved": "https://registry.npmjs.org/standard/-/standard-16.0.3.tgz", 1692 | "integrity": "sha512-70F7NH0hSkNXosXRltjSv6KpTAOkUkSfyu3ynyM5dtRUiLtR+yX9EGZ7RKwuGUqCJiX/cnkceVM6HTZ4JpaqDg==", 1693 | "dev": true, 1694 | "requires": { 1695 | "eslint": "~7.13.0", 1696 | "eslint-config-standard": "16.0.2", 1697 | "eslint-config-standard-jsx": "10.0.0", 1698 | "eslint-plugin-import": "~2.22.1", 1699 | "eslint-plugin-node": "~11.1.0", 1700 | "eslint-plugin-promise": "~4.2.1", 1701 | "eslint-plugin-react": "~7.21.5", 1702 | "standard-engine": "^14.0.1" 1703 | } 1704 | }, 1705 | "standard-engine": { 1706 | "version": "14.0.1", 1707 | "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-14.0.1.tgz", 1708 | "integrity": "sha512-7FEzDwmHDOGva7r9ifOzD3BGdTbA7ujJ50afLVdW/tK14zQEptJjbFuUfn50irqdHDcTbNh0DTIoMPynMCXb0Q==", 1709 | "dev": true, 1710 | "requires": { 1711 | "get-stdin": "^8.0.0", 1712 | "minimist": "^1.2.5", 1713 | "pkg-conf": "^3.1.0", 1714 | "xdg-basedir": "^4.0.0" 1715 | } 1716 | }, 1717 | "string-width": { 1718 | "version": "3.1.0", 1719 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1720 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1721 | "dev": true, 1722 | "requires": { 1723 | "emoji-regex": "^7.0.1", 1724 | "is-fullwidth-code-point": "^2.0.0", 1725 | "strip-ansi": "^5.1.0" 1726 | }, 1727 | "dependencies": { 1728 | "ansi-regex": { 1729 | "version": "4.1.1", 1730 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 1731 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", 1732 | "dev": true 1733 | }, 1734 | "strip-ansi": { 1735 | "version": "5.2.0", 1736 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1737 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1738 | "dev": true, 1739 | "requires": { 1740 | "ansi-regex": "^4.1.0" 1741 | } 1742 | } 1743 | } 1744 | }, 1745 | "string.prototype.matchall": { 1746 | "version": "4.0.3", 1747 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", 1748 | "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", 1749 | "dev": true, 1750 | "requires": { 1751 | "call-bind": "^1.0.0", 1752 | "define-properties": "^1.1.3", 1753 | "es-abstract": "^1.18.0-next.1", 1754 | "has-symbols": "^1.0.1", 1755 | "internal-slot": "^1.0.2", 1756 | "regexp.prototype.flags": "^1.3.0", 1757 | "side-channel": "^1.0.3" 1758 | } 1759 | }, 1760 | "string.prototype.trimend": { 1761 | "version": "1.0.3", 1762 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", 1763 | "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", 1764 | "dev": true, 1765 | "requires": { 1766 | "call-bind": "^1.0.0", 1767 | "define-properties": "^1.1.3" 1768 | } 1769 | }, 1770 | "string.prototype.trimstart": { 1771 | "version": "1.0.3", 1772 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", 1773 | "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", 1774 | "dev": true, 1775 | "requires": { 1776 | "call-bind": "^1.0.0", 1777 | "define-properties": "^1.1.3" 1778 | } 1779 | }, 1780 | "string_decoder": { 1781 | "version": "1.3.0", 1782 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1783 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1784 | "requires": { 1785 | "safe-buffer": "~5.2.0" 1786 | } 1787 | }, 1788 | "strip-ansi": { 1789 | "version": "6.0.0", 1790 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1791 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1792 | "dev": true, 1793 | "requires": { 1794 | "ansi-regex": "^5.0.0" 1795 | } 1796 | }, 1797 | "strip-bom": { 1798 | "version": "3.0.0", 1799 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1800 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 1801 | "dev": true 1802 | }, 1803 | "strip-json-comments": { 1804 | "version": "3.1.1", 1805 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1806 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1807 | "dev": true 1808 | }, 1809 | "supports-color": { 1810 | "version": "5.5.0", 1811 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1812 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1813 | "dev": true, 1814 | "requires": { 1815 | "has-flag": "^3.0.0" 1816 | } 1817 | }, 1818 | "table": { 1819 | "version": "5.4.6", 1820 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 1821 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 1822 | "dev": true, 1823 | "requires": { 1824 | "ajv": "^6.10.2", 1825 | "lodash": "^4.17.14", 1826 | "slice-ansi": "^2.1.0", 1827 | "string-width": "^3.0.0" 1828 | } 1829 | }, 1830 | "temp": { 1831 | "version": "0.5.1", 1832 | "resolved": "https://registry.npmjs.org/temp/-/temp-0.5.1.tgz", 1833 | "integrity": "sha1-d6sZx5qntZPL5PrCRBdoytmHuN8=", 1834 | "requires": { 1835 | "rimraf": "~2.1.4" 1836 | }, 1837 | "dependencies": { 1838 | "rimraf": { 1839 | "version": "2.1.4", 1840 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz", 1841 | "integrity": "sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I=", 1842 | "requires": { 1843 | "graceful-fs": "~1" 1844 | } 1845 | } 1846 | } 1847 | }, 1848 | "text-table": { 1849 | "version": "0.2.0", 1850 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1851 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1852 | "dev": true 1853 | }, 1854 | "through": { 1855 | "version": "2.1.0", 1856 | "resolved": "https://registry.npmjs.org/through/-/through-2.1.0.tgz", 1857 | "integrity": "sha1-68rkh0X/2giK1rii/iDvPOjuG80=" 1858 | }, 1859 | "through2": { 1860 | "version": "4.0.2", 1861 | "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", 1862 | "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", 1863 | "requires": { 1864 | "readable-stream": "3" 1865 | } 1866 | }, 1867 | "tmp": { 1868 | "version": "0.2.1", 1869 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 1870 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 1871 | "requires": { 1872 | "rimraf": "^3.0.0" 1873 | }, 1874 | "dependencies": { 1875 | "rimraf": { 1876 | "version": "3.0.2", 1877 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1878 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1879 | "requires": { 1880 | "glob": "^7.1.3" 1881 | } 1882 | } 1883 | } 1884 | }, 1885 | "tsconfig-paths": { 1886 | "version": "3.9.0", 1887 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", 1888 | "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", 1889 | "dev": true, 1890 | "requires": { 1891 | "@types/json5": "^0.0.29", 1892 | "json5": "^1.0.1", 1893 | "minimist": "^1.2.0", 1894 | "strip-bom": "^3.0.0" 1895 | } 1896 | }, 1897 | "type-check": { 1898 | "version": "0.4.0", 1899 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1900 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1901 | "dev": true, 1902 | "requires": { 1903 | "prelude-ls": "^1.2.1" 1904 | } 1905 | }, 1906 | "type-fest": { 1907 | "version": "0.8.1", 1908 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1909 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1910 | "dev": true 1911 | }, 1912 | "uri-js": { 1913 | "version": "4.4.1", 1914 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1915 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1916 | "dev": true, 1917 | "requires": { 1918 | "punycode": "^2.1.0" 1919 | } 1920 | }, 1921 | "util-deprecate": { 1922 | "version": "1.0.2", 1923 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1924 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1925 | }, 1926 | "v8-compile-cache": { 1927 | "version": "2.2.0", 1928 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", 1929 | "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", 1930 | "dev": true 1931 | }, 1932 | "validate-npm-package-license": { 1933 | "version": "3.0.4", 1934 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1935 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1936 | "dev": true, 1937 | "requires": { 1938 | "spdx-correct": "^3.0.0", 1939 | "spdx-expression-parse": "^3.0.0" 1940 | } 1941 | }, 1942 | "which": { 1943 | "version": "2.0.2", 1944 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1945 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1946 | "dev": true, 1947 | "requires": { 1948 | "isexe": "^2.0.0" 1949 | } 1950 | }, 1951 | "word-wrap": { 1952 | "version": "1.2.4", 1953 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", 1954 | "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", 1955 | "dev": true 1956 | }, 1957 | "wrappy": { 1958 | "version": "1.0.2", 1959 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1960 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1961 | }, 1962 | "write": { 1963 | "version": "1.0.3", 1964 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 1965 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 1966 | "dev": true, 1967 | "requires": { 1968 | "mkdirp": "^0.5.1" 1969 | }, 1970 | "dependencies": { 1971 | "mkdirp": { 1972 | "version": "0.5.5", 1973 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1974 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1975 | "dev": true, 1976 | "requires": { 1977 | "minimist": "^1.2.5" 1978 | } 1979 | } 1980 | } 1981 | }, 1982 | "xdg-basedir": { 1983 | "version": "4.0.0", 1984 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 1985 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 1986 | "dev": true 1987 | }, 1988 | "yallist": { 1989 | "version": "4.0.0", 1990 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1991 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1992 | "dev": true 1993 | } 1994 | } 1995 | } 1996 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notebook-generator", 3 | "version": "1.4.7", 4 | "description": "Notebook generator for programming contest. (or \"something useful to share your code in pdf\")", 5 | "main": "notebookgen.js", 6 | "scripts": { 7 | "test": "standard", 8 | "fix-standard": "standard --fix" 9 | }, 10 | "keywords": [ 11 | "pdf", 12 | "notebook-icpc", 13 | "programming", 14 | "contest", 15 | "hacker", 16 | "competitive", 17 | "coding", 18 | "codechef", 19 | "codeforces", 20 | "ACM", 21 | "ICPC", 22 | "codejam", 23 | "hackerrank" 24 | ], 25 | "author": "Manuel Pineda (http://github.com/pin3da)", 26 | "contributors": [ 27 | "Diego Alejandro Restrepo (https://github.com/Diegores14)" 28 | ], 29 | "repository": { 30 | "type": "git", 31 | "url": "http://github.com/pin3da/notebook-generator" 32 | }, 33 | "bugs": { 34 | "url": "http://github.com/pin3da/notebook-generator/issues" 35 | }, 36 | "license": "MPL-2.0", 37 | "dependencies": { 38 | "commander": "^7.0.0", 39 | "latex": "0.0.1", 40 | "through2": "^4.0.2", 41 | "tmp": "0.2.1" 42 | }, 43 | "bin": { 44 | "notebook-generator": "./bin/notebookgen" 45 | }, 46 | "devDependencies": { 47 | "standard": "^16.0.3" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /template_header.tex: -------------------------------------------------------------------------------- 1 | \documentclass[${fontSize},${paper},landscape,twosided]{extarticle} 2 | 3 | \usepackage[utf8]{inputenc} 4 | \usepackage[english]{babel} 5 | \usepackage{listings} 6 | \usepackage[usenames,dvipsnames]{color} 7 | \usepackage{amsmath} 8 | \usepackage{verbatim} 9 | \usepackage{hyperref} 10 | \usepackage{color} 11 | \usepackage{geometry} 12 | \usepackage{multicol} 13 | \usepackage{graphicx} 14 | 15 | \geometry{verbose,landscape,${paper},tmargin=2cm,bmargin=2cm,lmargin=1cm,rmargin=1cm} 16 | 17 | \usepackage{listings} 18 | \usepackage{color} 19 | 20 | \definecolor{dkgreen}{rgb}{0,0.6,0} 21 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 22 | \definecolor{mauve}{rgb}{0.58,0,0.82} 23 | 24 | %% Golang definition for listings 25 | %% http://github.io/julienc91/lstlistings-golang 26 | %% 27 | \lstdefinelanguage{Golang}% 28 | {morekeywords=[1]{package,import,func,type,struct,return,defer,panic,% 29 | recover,select,var,const,iota,},% 30 | morekeywords=[2]{string,uint,uint8,uint16,uint32,uint64,int,int8,int16,% 31 | int32,int64,bool,float32,float64,complex64,complex128,byte,rune,uintptr,% 32 | error,interface},% 33 | morekeywords=[3]{map,slice,make,new,nil,len,cap,copy,close,true,false,% 34 | delete,append,real,imag,complex,chan,},% 35 | morekeywords=[4]{for,break,continue,range,go,goto,switch,case,fallthrough,if,% 36 | else,default,},% 37 | morekeywords=[5]{Println,Printf,Error,Print,},% 38 | sensitive=true,% 39 | morecomment=[l]{//},% 40 | morecomment=[s]{/*}{*/},% 41 | morestring=[b]',% 42 | morestring=[b]",% 43 | morestring=[s]{`}{`},% 44 | } 45 | 46 | 47 | \lstset{frame=tb, 48 | language=C++, 49 | aboveskip=3mm, 50 | belowskip=3mm, 51 | showstringspaces=false, 52 | columns=flexible, 53 | basicstyle={\small\ttfamily}, 54 | numbers=none, 55 | numberstyle=\tiny\color{gray}, 56 | keywordstyle=\color{blue}, 57 | commentstyle=\color{dkgreen}, 58 | stringstyle=\color{mauve}, 59 | breaklines=true, 60 | breakatwhitespace=true, 61 | tabsize=2, 62 | keepspaces=true, 63 | } 64 | 65 | \setlength{\columnsep}{0.5in} 66 | \setlength{\columnseprule}{1px} 67 | 68 | \usepackage{fancyhdr} 69 | \pagestyle{fancy} 70 | \fancyhf{} 71 | \renewcommand{\headrulewidth}{0pt} 72 | \fancyhead[R]{\thepage} 73 | \fancyhead[L]{${initials}} 74 | 75 | 76 | \begin{document} 77 | 78 | \title{Team notebook} 79 | \author{${author}} 80 | \maketitle 81 | \begin{multicols}{${columns}} 82 | ${image} 83 | \tableofcontents 84 | \lstloadlanguages{C++,Java} 85 | 86 | -------------------------------------------------------------------------------- /test/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | git clone https://github.com/pin3da/notebook 4 | ./bin/notebookgen ./notebook --author "Universidad Tecnologica de Pereira" --initials UTP -s 8 -c 3 5 | --------------------------------------------------------------------------------