├── .gitignore ├── README.md ├── components ├── dataStorage │ └── notes.json ├── index.js └── notes-functions.js ├── node_modules ├── .package-lock.json ├── ansi-regex │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── ansi-styles │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── chalk │ ├── index.d.ts │ ├── license │ ├── package.json │ ├── readme.md │ └── source │ │ ├── index.js │ │ ├── templates.js │ │ └── util.js ├── cliui │ ├── CHANGELOG.md │ ├── LICENSE.txt │ ├── README.md │ ├── build │ │ ├── index.cjs │ │ └── lib │ │ │ ├── index.js │ │ │ └── string-utils.js │ ├── index.mjs │ └── package.json ├── color-convert │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── conversions.js │ ├── index.js │ ├── package.json │ └── route.js ├── color-name │ ├── LICENSE │ ├── README.md │ ├── index.js │ └── package.json ├── emoji-regex │ ├── LICENSE-MIT.txt │ ├── README.md │ ├── es2015 │ │ ├── index.js │ │ └── text.js │ ├── index.d.ts │ ├── index.js │ ├── package.json │ └── text.js ├── escalade │ ├── dist │ │ ├── index.js │ │ └── index.mjs │ ├── index.d.ts │ ├── license │ ├── package.json │ ├── readme.md │ └── sync │ │ ├── index.d.ts │ │ ├── index.js │ │ └── index.mjs ├── get-caller-file │ ├── LICENSE.md │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── index.js.map │ └── package.json ├── has-flag │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── is-fullwidth-code-point │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── require-directory │ ├── .jshintrc │ ├── .npmignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.markdown │ ├── index.js │ └── package.json ├── string-width │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── strip-ansi │ ├── index.d.ts │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── supports-color │ ├── browser.js │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── wrap-ansi │ ├── index.js │ ├── license │ ├── package.json │ └── readme.md ├── y18n │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── build │ │ ├── index.cjs │ │ └── lib │ │ │ ├── cjs.js │ │ │ ├── index.js │ │ │ └── platform-shims │ │ │ └── node.js │ ├── index.mjs │ └── package.json ├── yargs-parser │ ├── CHANGELOG.md │ ├── LICENSE.txt │ ├── README.md │ ├── browser.js │ ├── build │ │ ├── index.cjs │ │ └── lib │ │ │ ├── index.js │ │ │ ├── string-utils.js │ │ │ ├── tokenize-arg-string.js │ │ │ ├── yargs-parser-types.js │ │ │ └── yargs-parser.js │ └── package.json └── yargs │ ├── LICENSE │ ├── README.md │ ├── browser.mjs │ ├── build │ ├── index.cjs │ └── lib │ │ ├── argsert.js │ │ ├── command.js │ │ ├── completion-templates.js │ │ ├── completion.js │ │ ├── middleware.js │ │ ├── parse-command.js │ │ ├── typings │ │ ├── common-types.js │ │ └── yargs-parser-types.js │ │ ├── usage.js │ │ ├── utils │ │ ├── apply-extends.js │ │ ├── is-promise.js │ │ ├── levenshtein.js │ │ ├── maybe-async-result.js │ │ ├── obj-filter.js │ │ ├── process-argv.js │ │ ├── set-blocking.js │ │ └── which-module.js │ │ ├── validation.js │ │ ├── yargs-factory.js │ │ └── yerror.js │ ├── helpers │ ├── helpers.mjs │ ├── index.js │ └── package.json │ ├── index.cjs │ ├── index.mjs │ ├── lib │ └── platform-shims │ │ ├── browser.mjs │ │ └── esm.mjs │ ├── locales │ ├── be.json │ ├── de.json │ ├── en.json │ ├── es.json │ ├── fi.json │ ├── fr.json │ ├── hi.json │ ├── hu.json │ ├── id.json │ ├── it.json │ ├── ja.json │ ├── ko.json │ ├── nb.json │ ├── nl.json │ ├── nn.json │ ├── pirate.json │ ├── pl.json │ ├── pt.json │ ├── pt_BR.json │ ├── ru.json │ ├── th.json │ ├── tr.json │ ├── uk_UA.json │ ├── uz.json │ ├── zh_CN.json │ └── zh_TW.json │ ├── package.json │ ├── yargs │ └── yargs.mjs ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Node.js Notes App 2 | Notes application built using Node.js backend framework. 3 | 4 | ## App performance 5 | The application does the following : 6 | 1. The app can add a new note 7 | ```bash 8 | node index.js add --title="Node.js" --body="I love Node" 9 | ``` 10 | 2. It can read a note 11 | ```bash 12 | node index.js read --title="Node.js" 13 | ``` 14 | 3. List all note titles 15 | ```bash 16 | node index.js list 17 | ``` 18 | 4. Remove a note 19 | ```bash 20 | node index.js remove --title="Node.js" 21 | ``` 22 | ## App usage 🔧 23 | After Cloning or downloading the repo, 24 | run the below command to install dependencies 25 | ```bash 26 | npm install 27 | ``` 28 | Now, you are good to go 💨 29 | 30 | ### #Lets always show ❤ everywhere we go 31 | 32 | -------------------------------------------------------------------------------- /components/dataStorage/notes.json: -------------------------------------------------------------------------------- 1 | [{"title":"Note 1","body":"I love Node.js server"},{"title":"Note 2","body":"I love Node.js server"}] -------------------------------------------------------------------------------- /components/index.js: -------------------------------------------------------------------------------- 1 | const yargs = require('yargs/yargs'); 2 | const {hideBin} = require('yargs/helpers'); 3 | const {addNote,readNote,listNotes,removeNote} = require('./notes-functions') 4 | const argv = yargs(hideBin(process.argv)) 5 | .command('add','Add a note',{ 6 | title:{ 7 | describe:"Note title", 8 | demand:true, 9 | type:'string' 10 | }, 11 | body:{ 12 | describe:"Note body", 13 | demand:true, 14 | type:'string' 15 | } 16 | },(argv)=>addNote(argv.title,argv.body)) 17 | .command('read','Read a note',{ 18 | title:{ 19 | describe:'Note title', 20 | demand:true, 21 | type:'string' 22 | } 23 | },(argv)=>readNote(argv.title)) 24 | .command('list','List all notes',()=>listNotes()) 25 | .command('remove',"Remove a note",{ 26 | title:{ 27 | describe:"note title", 28 | demand:true, 29 | type:'string' 30 | } 31 | },(argv)=>removeNote(argv.title)) 32 | .help() 33 | .argv -------------------------------------------------------------------------------- /components/notes-functions.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const chalk = require('chalk'); 3 | 4 | //COLOR VARIABLES 5 | const success = chalk.bgGreen; 6 | const error = chalk.bgRed; 7 | 8 | //Load notes 9 | const loadNotes =()=>{ 10 | try{ 11 | const dataBuffer = fs.readFileSync('./dataStorage/notes.json'); 12 | const dataJSON = dataBuffer.toString(); 13 | const data = JSON.parse(dataJSON); 14 | return data 15 | }catch(e){ 16 | return [] 17 | } 18 | } 19 | 20 | //Save new note 21 | const saveNote =(note)=>{ 22 | const dataJSON = JSON.stringify(note); 23 | fs.writeFileSync('./dataStorage/notes.json',dataJSON) 24 | } 25 | 26 | // Add a new note 27 | const addNote = (title,body)=>{ 28 | const notes = loadNotes(); 29 | const duplicateNote = notes.find(note=> note.title === title); 30 | if(duplicateNote){ 31 | console.log(error('Note already exists!!!')); 32 | }else{ 33 | notes.push({ 34 | title, 35 | body 36 | }) 37 | saveNote(notes) 38 | console.log(success('New note saved!!!')) 39 | } 40 | } 41 | 42 | //Read the contents of a note 43 | const readNote =(title)=>{ 44 | const notes = loadNotes(); 45 | const foundNote = notes.find(note=> note.title === title); 46 | if(foundNote){ 47 | console.log(chalk.underline(foundNote.title)); 48 | console.log(foundNote.body); 49 | }else{ 50 | console.log(error('No such note exists!')) 51 | } 52 | } 53 | 54 | // List all notes 55 | const listNotes =()=>{ 56 | const notes = loadNotes(); 57 | console.log(chalk.underline('Your Notes')); 58 | notes.forEach(note=>console.log(note.title)) 59 | } 60 | 61 | // Remove a note 62 | const removeNote =(title)=>{ 63 | const notes = loadNotes(); 64 | const remainingNotes = notes.filter(note=>note.title !== title); 65 | if(notes > remainingNotes){ 66 | saveNote(remainingNotes); 67 | console.log(success('Note removed successfully!')) 68 | }else{ 69 | console.log(error('No such title exits')) 70 | } 71 | } 72 | 73 | // Export the functions to be consumed in other files 74 | module.exports = { 75 | addNote, 76 | readNote, 77 | listNotes, 78 | removeNote, 79 | } 80 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/index.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace ansiRegex { 2 | interface Options { 3 | /** 4 | Match only the first ANSI escape. 5 | 6 | @default false 7 | */ 8 | onlyFirst: boolean; 9 | } 10 | } 11 | 12 | /** 13 | Regular expression for matching ANSI escape codes. 14 | 15 | @example 16 | ``` 17 | import ansiRegex = require('ansi-regex'); 18 | 19 | ansiRegex().test('\u001B[4mcake\u001B[0m'); 20 | //=> true 21 | 22 | ansiRegex().test('cake'); 23 | //=> false 24 | 25 | '\u001B[4mcake\u001B[0m'.match(ansiRegex()); 26 | //=> ['\u001B[4m', '\u001B[0m'] 27 | 28 | '\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); 29 | //=> ['\u001B[4m'] 30 | 31 | '\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); 32 | //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] 33 | ``` 34 | */ 35 | declare function ansiRegex(options?: ansiRegex.Options): RegExp; 36 | 37 | export = ansiRegex; 38 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = ({onlyFirst = false} = {}) => { 4 | const pattern = [ 5 | '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', 6 | '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' 7 | ].join('|'); 8 | 9 | return new RegExp(pattern, onlyFirst ? undefined : 'g'); 10 | }; 11 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ansi-regex", 3 | "version": "5.0.1", 4 | "description": "Regular expression for matching ANSI escape codes", 5 | "license": "MIT", 6 | "repository": "chalk/ansi-regex", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd", 17 | "view-supported": "node fixtures/view-codes.js" 18 | }, 19 | "files": [ 20 | "index.js", 21 | "index.d.ts" 22 | ], 23 | "keywords": [ 24 | "ansi", 25 | "styles", 26 | "color", 27 | "colour", 28 | "colors", 29 | "terminal", 30 | "console", 31 | "cli", 32 | "string", 33 | "tty", 34 | "escape", 35 | "formatting", 36 | "rgb", 37 | "256", 38 | "shell", 39 | "xterm", 40 | "command-line", 41 | "text", 42 | "regex", 43 | "regexp", 44 | "re", 45 | "match", 46 | "test", 47 | "find", 48 | "pattern" 49 | ], 50 | "devDependencies": { 51 | "ava": "^2.4.0", 52 | "tsd": "^0.9.0", 53 | "xo": "^0.25.3" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /node_modules/ansi-regex/readme.md: -------------------------------------------------------------------------------- 1 | # ansi-regex 2 | 3 | > Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install ansi-regex 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const ansiRegex = require('ansi-regex'); 17 | 18 | ansiRegex().test('\u001B[4mcake\u001B[0m'); 19 | //=> true 20 | 21 | ansiRegex().test('cake'); 22 | //=> false 23 | 24 | '\u001B[4mcake\u001B[0m'.match(ansiRegex()); 25 | //=> ['\u001B[4m', '\u001B[0m'] 26 | 27 | '\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); 28 | //=> ['\u001B[4m'] 29 | 30 | '\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); 31 | //=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] 32 | ``` 33 | 34 | 35 | ## API 36 | 37 | ### ansiRegex(options?) 38 | 39 | Returns a regex for matching ANSI escape codes. 40 | 41 | #### options 42 | 43 | Type: `object` 44 | 45 | ##### onlyFirst 46 | 47 | Type: `boolean`
48 | Default: `false` *(Matches any ANSI escape codes in a string)* 49 | 50 | Match only the first ANSI escape. 51 | 52 | 53 | ## FAQ 54 | 55 | ### Why do you test for codes not in the ECMA 48 standard? 56 | 57 | Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. 58 | 59 | On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. 60 | 61 | 62 | ## Maintainers 63 | 64 | - [Sindre Sorhus](https://github.com/sindresorhus) 65 | - [Josh Junon](https://github.com/qix-) 66 | 67 | 68 | --- 69 | 70 |
71 | 72 | Get professional support for this package with a Tidelift subscription 73 | 74 |
75 | 76 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 77 |
78 |
79 | -------------------------------------------------------------------------------- /node_modules/ansi-styles/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/ansi-styles/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ansi-styles", 3 | "version": "4.3.0", 4 | "description": "ANSI escape codes for styling strings in the terminal", 5 | "license": "MIT", 6 | "repository": "chalk/ansi-styles", 7 | "funding": "https://github.com/chalk/ansi-styles?sponsor=1", 8 | "author": { 9 | "name": "Sindre Sorhus", 10 | "email": "sindresorhus@gmail.com", 11 | "url": "sindresorhus.com" 12 | }, 13 | "engines": { 14 | "node": ">=8" 15 | }, 16 | "scripts": { 17 | "test": "xo && ava && tsd", 18 | "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" 19 | }, 20 | "files": [ 21 | "index.js", 22 | "index.d.ts" 23 | ], 24 | "keywords": [ 25 | "ansi", 26 | "styles", 27 | "color", 28 | "colour", 29 | "colors", 30 | "terminal", 31 | "console", 32 | "cli", 33 | "string", 34 | "tty", 35 | "escape", 36 | "formatting", 37 | "rgb", 38 | "256", 39 | "shell", 40 | "xterm", 41 | "log", 42 | "logging", 43 | "command-line", 44 | "text" 45 | ], 46 | "dependencies": { 47 | "color-convert": "^2.0.1" 48 | }, 49 | "devDependencies": { 50 | "@types/color-convert": "^1.9.0", 51 | "ava": "^2.3.0", 52 | "svg-term-cli": "^2.1.1", 53 | "tsd": "^0.11.0", 54 | "xo": "^0.25.3" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /node_modules/chalk/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/chalk/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chalk", 3 | "version": "4.1.2", 4 | "description": "Terminal string styling done right", 5 | "license": "MIT", 6 | "repository": "chalk/chalk", 7 | "funding": "https://github.com/chalk/chalk?sponsor=1", 8 | "main": "source", 9 | "engines": { 10 | "node": ">=10" 11 | }, 12 | "scripts": { 13 | "test": "xo && nyc ava && tsd", 14 | "bench": "matcha benchmark.js" 15 | }, 16 | "files": [ 17 | "source", 18 | "index.d.ts" 19 | ], 20 | "keywords": [ 21 | "color", 22 | "colour", 23 | "colors", 24 | "terminal", 25 | "console", 26 | "cli", 27 | "string", 28 | "str", 29 | "ansi", 30 | "style", 31 | "styles", 32 | "tty", 33 | "formatting", 34 | "rgb", 35 | "256", 36 | "shell", 37 | "xterm", 38 | "log", 39 | "logging", 40 | "command-line", 41 | "text" 42 | ], 43 | "dependencies": { 44 | "ansi-styles": "^4.1.0", 45 | "supports-color": "^7.1.0" 46 | }, 47 | "devDependencies": { 48 | "ava": "^2.4.0", 49 | "coveralls": "^3.0.7", 50 | "execa": "^4.0.0", 51 | "import-fresh": "^3.1.0", 52 | "matcha": "^0.7.0", 53 | "nyc": "^15.0.0", 54 | "resolve-from": "^5.0.0", 55 | "tsd": "^0.7.4", 56 | "xo": "^0.28.2" 57 | }, 58 | "xo": { 59 | "rules": { 60 | "unicorn/prefer-string-slice": "off", 61 | "unicorn/prefer-includes": "off", 62 | "@typescript-eslint/member-ordering": "off", 63 | "no-redeclare": "off", 64 | "unicorn/string-content": "off", 65 | "unicorn/better-regex": "off" 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /node_modules/chalk/source/templates.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; 3 | const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; 4 | const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; 5 | const ESCAPE_REGEX = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; 6 | 7 | const ESCAPES = new Map([ 8 | ['n', '\n'], 9 | ['r', '\r'], 10 | ['t', '\t'], 11 | ['b', '\b'], 12 | ['f', '\f'], 13 | ['v', '\v'], 14 | ['0', '\0'], 15 | ['\\', '\\'], 16 | ['e', '\u001B'], 17 | ['a', '\u0007'] 18 | ]); 19 | 20 | function unescape(c) { 21 | const u = c[0] === 'u'; 22 | const bracket = c[1] === '{'; 23 | 24 | if ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) { 25 | return String.fromCharCode(parseInt(c.slice(1), 16)); 26 | } 27 | 28 | if (u && bracket) { 29 | return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); 30 | } 31 | 32 | return ESCAPES.get(c) || c; 33 | } 34 | 35 | function parseArguments(name, arguments_) { 36 | const results = []; 37 | const chunks = arguments_.trim().split(/\s*,\s*/g); 38 | let matches; 39 | 40 | for (const chunk of chunks) { 41 | const number = Number(chunk); 42 | if (!Number.isNaN(number)) { 43 | results.push(number); 44 | } else if ((matches = chunk.match(STRING_REGEX))) { 45 | results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character)); 46 | } else { 47 | throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); 48 | } 49 | } 50 | 51 | return results; 52 | } 53 | 54 | function parseStyle(style) { 55 | STYLE_REGEX.lastIndex = 0; 56 | 57 | const results = []; 58 | let matches; 59 | 60 | while ((matches = STYLE_REGEX.exec(style)) !== null) { 61 | const name = matches[1]; 62 | 63 | if (matches[2]) { 64 | const args = parseArguments(name, matches[2]); 65 | results.push([name].concat(args)); 66 | } else { 67 | results.push([name]); 68 | } 69 | } 70 | 71 | return results; 72 | } 73 | 74 | function buildStyle(chalk, styles) { 75 | const enabled = {}; 76 | 77 | for (const layer of styles) { 78 | for (const style of layer.styles) { 79 | enabled[style[0]] = layer.inverse ? null : style.slice(1); 80 | } 81 | } 82 | 83 | let current = chalk; 84 | for (const [styleName, styles] of Object.entries(enabled)) { 85 | if (!Array.isArray(styles)) { 86 | continue; 87 | } 88 | 89 | if (!(styleName in current)) { 90 | throw new Error(`Unknown Chalk style: ${styleName}`); 91 | } 92 | 93 | current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; 94 | } 95 | 96 | return current; 97 | } 98 | 99 | module.exports = (chalk, temporary) => { 100 | const styles = []; 101 | const chunks = []; 102 | let chunk = []; 103 | 104 | // eslint-disable-next-line max-params 105 | temporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => { 106 | if (escapeCharacter) { 107 | chunk.push(unescape(escapeCharacter)); 108 | } else if (style) { 109 | const string = chunk.join(''); 110 | chunk = []; 111 | chunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string)); 112 | styles.push({inverse, styles: parseStyle(style)}); 113 | } else if (close) { 114 | if (styles.length === 0) { 115 | throw new Error('Found extraneous } in Chalk template literal'); 116 | } 117 | 118 | chunks.push(buildStyle(chalk, styles)(chunk.join(''))); 119 | chunk = []; 120 | styles.pop(); 121 | } else { 122 | chunk.push(character); 123 | } 124 | }); 125 | 126 | chunks.push(chunk.join('')); 127 | 128 | if (styles.length > 0) { 129 | const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; 130 | throw new Error(errMessage); 131 | } 132 | 133 | return chunks.join(''); 134 | }; 135 | -------------------------------------------------------------------------------- /node_modules/chalk/source/util.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const stringReplaceAll = (string, substring, replacer) => { 4 | let index = string.indexOf(substring); 5 | if (index === -1) { 6 | return string; 7 | } 8 | 9 | const substringLength = substring.length; 10 | let endIndex = 0; 11 | let returnValue = ''; 12 | do { 13 | returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; 14 | endIndex = index + substringLength; 15 | index = string.indexOf(substring, endIndex); 16 | } while (index !== -1); 17 | 18 | returnValue += string.substr(endIndex); 19 | return returnValue; 20 | }; 21 | 22 | const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { 23 | let endIndex = 0; 24 | let returnValue = ''; 25 | do { 26 | const gotCR = string[index - 1] === '\r'; 27 | returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; 28 | endIndex = index + 1; 29 | index = string.indexOf('\n', endIndex); 30 | } while (index !== -1); 31 | 32 | returnValue += string.substr(endIndex); 33 | return returnValue; 34 | }; 35 | 36 | module.exports = { 37 | stringReplaceAll, 38 | stringEncaseCRLFWithFirstIndex 39 | }; 40 | -------------------------------------------------------------------------------- /node_modules/cliui/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | ### [7.0.4](https://www.github.com/yargs/cliui/compare/v7.0.3...v7.0.4) (2020-11-08) 6 | 7 | 8 | ### Bug Fixes 9 | 10 | * **deno:** import UIOptions from definitions ([#97](https://www.github.com/yargs/cliui/issues/97)) ([f04f343](https://www.github.com/yargs/cliui/commit/f04f3439bc78114c7e90f82ff56f5acf16268ea8)) 11 | 12 | ### [7.0.3](https://www.github.com/yargs/cliui/compare/v7.0.2...v7.0.3) (2020-10-16) 13 | 14 | 15 | ### Bug Fixes 16 | 17 | * **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#93](https://www.github.com/yargs/cliui/issues/93)) ([eca16fc](https://www.github.com/yargs/cliui/commit/eca16fc05d26255df3280906c36d7f0e5b05c6e9)) 18 | 19 | ### [7.0.2](https://www.github.com/yargs/cliui/compare/v7.0.1...v7.0.2) (2020-10-14) 20 | 21 | 22 | ### Bug Fixes 23 | 24 | * **exports:** node 13.0-13.6 require a string fallback ([#91](https://www.github.com/yargs/cliui/issues/91)) ([b529d7e](https://www.github.com/yargs/cliui/commit/b529d7e432901af1af7848b23ed6cf634497d961)) 25 | 26 | ### [7.0.1](https://www.github.com/yargs/cliui/compare/v7.0.0...v7.0.1) (2020-08-16) 27 | 28 | 29 | ### Bug Fixes 30 | 31 | * **build:** main should be build/index.cjs ([dc29a3c](https://www.github.com/yargs/cliui/commit/dc29a3cc617a410aa850e06337b5954b04f2cb4d)) 32 | 33 | ## [7.0.0](https://www.github.com/yargs/cliui/compare/v6.0.0...v7.0.0) (2020-08-16) 34 | 35 | 36 | ### ⚠ BREAKING CHANGES 37 | 38 | * tsc/ESM/Deno support (#82) 39 | * modernize deps and build (#80) 40 | 41 | ### Build System 42 | 43 | * modernize deps and build ([#80](https://www.github.com/yargs/cliui/issues/80)) ([339d08d](https://www.github.com/yargs/cliui/commit/339d08dc71b15a3928aeab09042af94db2f43743)) 44 | 45 | 46 | ### Code Refactoring 47 | 48 | * tsc/ESM/Deno support ([#82](https://www.github.com/yargs/cliui/issues/82)) ([4b777a5](https://www.github.com/yargs/cliui/commit/4b777a5fe01c5d8958c6708695d6aab7dbe5706c)) 49 | 50 | ## [6.0.0](https://www.github.com/yargs/cliui/compare/v5.0.0...v6.0.0) (2019-11-10) 51 | 52 | 53 | ### ⚠ BREAKING CHANGES 54 | 55 | * update deps, drop Node 6 56 | 57 | ### Code Refactoring 58 | 59 | * update deps, drop Node 6 ([62056df](https://www.github.com/yargs/cliui/commit/62056df)) 60 | 61 | ## [5.0.0](https://github.com/yargs/cliui/compare/v4.1.0...v5.0.0) (2019-04-10) 62 | 63 | 64 | ### Bug Fixes 65 | 66 | * Update wrap-ansi to fix compatibility with latest versions of chalk. ([#60](https://github.com/yargs/cliui/issues/60)) ([7bf79ae](https://github.com/yargs/cliui/commit/7bf79ae)) 67 | 68 | 69 | ### BREAKING CHANGES 70 | 71 | * Drop support for node < 6. 72 | 73 | 74 | 75 | 76 | ## [4.1.0](https://github.com/yargs/cliui/compare/v4.0.0...v4.1.0) (2018-04-23) 77 | 78 | 79 | ### Features 80 | 81 | * add resetOutput method ([#57](https://github.com/yargs/cliui/issues/57)) ([7246902](https://github.com/yargs/cliui/commit/7246902)) 82 | 83 | 84 | 85 | 86 | ## [4.0.0](https://github.com/yargs/cliui/compare/v3.2.0...v4.0.0) (2017-12-18) 87 | 88 | 89 | ### Bug Fixes 90 | 91 | * downgrades strip-ansi to version 3.0.1 ([#54](https://github.com/yargs/cliui/issues/54)) ([5764c46](https://github.com/yargs/cliui/commit/5764c46)) 92 | * set env variable FORCE_COLOR. ([#56](https://github.com/yargs/cliui/issues/56)) ([7350e36](https://github.com/yargs/cliui/commit/7350e36)) 93 | 94 | 95 | ### Chores 96 | 97 | * drop support for node < 4 ([#53](https://github.com/yargs/cliui/issues/53)) ([b105376](https://github.com/yargs/cliui/commit/b105376)) 98 | 99 | 100 | ### Features 101 | 102 | * add fallback for window width ([#45](https://github.com/yargs/cliui/issues/45)) ([d064922](https://github.com/yargs/cliui/commit/d064922)) 103 | 104 | 105 | ### BREAKING CHANGES 106 | 107 | * officially drop support for Node < 4 108 | 109 | 110 | 111 | 112 | ## [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11) 113 | 114 | 115 | ### Bug Fixes 116 | 117 | * reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33)) 118 | 119 | ### Features 120 | 121 | * adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32)) 122 | -------------------------------------------------------------------------------- /node_modules/cliui/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software 4 | for any purpose with or without fee is hereby granted, provided 5 | that the above copyright notice and this permission notice 6 | appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 10 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE 11 | LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES 12 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 13 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 14 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | -------------------------------------------------------------------------------- /node_modules/cliui/README.md: -------------------------------------------------------------------------------- 1 | # cliui 2 | 3 | ![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg) 4 | [![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) 5 | [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) 6 | ![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui) 7 | 8 | easily create complex multi-column command-line-interfaces. 9 | 10 | ## Example 11 | 12 | ```js 13 | const ui = require('cliui')() 14 | 15 | ui.div('Usage: $0 [command] [options]') 16 | 17 | ui.div({ 18 | text: 'Options:', 19 | padding: [2, 0, 1, 0] 20 | }) 21 | 22 | ui.div( 23 | { 24 | text: "-f, --file", 25 | width: 20, 26 | padding: [0, 4, 0, 4] 27 | }, 28 | { 29 | text: "the file to load." + 30 | chalk.green("(if this description is long it wraps).") 31 | , 32 | width: 20 33 | }, 34 | { 35 | text: chalk.red("[required]"), 36 | align: 'right' 37 | } 38 | ) 39 | 40 | console.log(ui.toString()) 41 | ``` 42 | 43 | ## Deno/ESM Support 44 | 45 | As of `v7` `cliui` supports [Deno](https://github.com/denoland/deno) and 46 | [ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules): 47 | 48 | ```typescript 49 | import cliui from "https://deno.land/x/cliui/deno.ts"; 50 | 51 | const ui = cliui({}) 52 | 53 | ui.div('Usage: $0 [command] [options]') 54 | 55 | ui.div({ 56 | text: 'Options:', 57 | padding: [2, 0, 1, 0] 58 | }) 59 | 60 | ui.div({ 61 | text: "-f, --file", 62 | width: 20, 63 | padding: [0, 4, 0, 4] 64 | }) 65 | 66 | console.log(ui.toString()) 67 | ``` 68 | 69 | 70 | 71 | ## Layout DSL 72 | 73 | cliui exposes a simple layout DSL: 74 | 75 | If you create a single `ui.div`, passing a string rather than an 76 | object: 77 | 78 | * `\n`: characters will be interpreted as new rows. 79 | * `\t`: characters will be interpreted as new columns. 80 | * `\s`: characters will be interpreted as padding. 81 | 82 | **as an example...** 83 | 84 | ```js 85 | var ui = require('./')({ 86 | width: 60 87 | }) 88 | 89 | ui.div( 90 | 'Usage: node ./bin/foo.js\n' + 91 | ' \t provide a regex\n' + 92 | ' \t provide a glob\t [required]' 93 | ) 94 | 95 | console.log(ui.toString()) 96 | ``` 97 | 98 | **will output:** 99 | 100 | ```shell 101 | Usage: node ./bin/foo.js 102 | provide a regex 103 | provide a glob [required] 104 | ``` 105 | 106 | ## Methods 107 | 108 | ```js 109 | cliui = require('cliui') 110 | ``` 111 | 112 | ### cliui({width: integer}) 113 | 114 | Specify the maximum width of the UI being generated. 115 | If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`. 116 | 117 | ### cliui({wrap: boolean}) 118 | 119 | Enable or disable the wrapping of text in a column. 120 | 121 | ### cliui.div(column, column, column) 122 | 123 | Create a row with any number of columns, a column 124 | can either be a string, or an object with the following 125 | options: 126 | 127 | * **text:** some text to place in the column. 128 | * **width:** the width of a column. 129 | * **align:** alignment, `right` or `center`. 130 | * **padding:** `[top, right, bottom, left]`. 131 | * **border:** should a border be placed around the div? 132 | 133 | ### cliui.span(column, column, column) 134 | 135 | Similar to `div`, except the next row will be appended without 136 | a new line being created. 137 | 138 | ### cliui.resetOutput() 139 | 140 | Resets the UI elements of the current cliui instance, maintaining the values 141 | set for `width` and `wrap`. 142 | -------------------------------------------------------------------------------- /node_modules/cliui/build/lib/string-utils.js: -------------------------------------------------------------------------------- 1 | // Minimal replacement for ansi string helpers "wrap-ansi" and "strip-ansi". 2 | // to facilitate ESM and Deno modules. 3 | // TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM. 4 | // The npm application 5 | // Copyright (c) npm, Inc. and Contributors 6 | // Licensed on the terms of The Artistic License 2.0 7 | // See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js 8 | const ansi = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + 9 | '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g'); 10 | export function stripAnsi(str) { 11 | return str.replace(ansi, ''); 12 | } 13 | export function wrap(str, width) { 14 | const [start, end] = str.match(ansi) || ['', '']; 15 | str = stripAnsi(str); 16 | let wrapped = ''; 17 | for (let i = 0; i < str.length; i++) { 18 | if (i !== 0 && (i % width) === 0) { 19 | wrapped += '\n'; 20 | } 21 | wrapped += str.charAt(i); 22 | } 23 | if (start && end) { 24 | wrapped = `${start}${wrapped}${end}`; 25 | } 26 | return wrapped; 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/cliui/index.mjs: -------------------------------------------------------------------------------- 1 | // Bootstrap cliui with CommonJS dependencies: 2 | import { cliui } from './build/lib/index.js' 3 | import { wrap, stripAnsi } from './build/lib/string-utils.js' 4 | 5 | export default function ui (opts) { 6 | return cliui(opts, { 7 | stringWidth: (str) => { 8 | return [...str].length 9 | }, 10 | stripAnsi, 11 | wrap 12 | }) 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/cliui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cliui", 3 | "version": "7.0.4", 4 | "description": "easily create complex multi-column command-line-interfaces", 5 | "main": "build/index.cjs", 6 | "exports": { 7 | ".": [ 8 | { 9 | "import": "./index.mjs", 10 | "require": "./build/index.cjs" 11 | }, 12 | "./build/index.cjs" 13 | ] 14 | }, 15 | "type": "module", 16 | "module": "./index.mjs", 17 | "scripts": { 18 | "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", 19 | "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", 20 | "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", 21 | "test": "c8 mocha ./test/*.cjs", 22 | "test:esm": "c8 mocha ./test/esm/cliui-test.mjs", 23 | "postest": "check", 24 | "coverage": "c8 report --check-coverage", 25 | "precompile": "rimraf build", 26 | "compile": "tsc", 27 | "postcompile": "npm run build:cjs", 28 | "build:cjs": "rollup -c", 29 | "prepare": "npm run compile" 30 | }, 31 | "repository": "yargs/cliui", 32 | "standard": { 33 | "ignore": [ 34 | "**/example/**" 35 | ], 36 | "globals": [ 37 | "it" 38 | ] 39 | }, 40 | "keywords": [ 41 | "cli", 42 | "command-line", 43 | "layout", 44 | "design", 45 | "console", 46 | "wrap", 47 | "table" 48 | ], 49 | "author": "Ben Coe ", 50 | "license": "ISC", 51 | "dependencies": { 52 | "string-width": "^4.2.0", 53 | "strip-ansi": "^6.0.0", 54 | "wrap-ansi": "^7.0.0" 55 | }, 56 | "devDependencies": { 57 | "@types/node": "^14.0.27", 58 | "@typescript-eslint/eslint-plugin": "^4.0.0", 59 | "@typescript-eslint/parser": "^4.0.0", 60 | "@wessberg/rollup-plugin-ts": "^1.3.2", 61 | "c8": "^7.3.0", 62 | "chai": "^4.2.0", 63 | "chalk": "^4.1.0", 64 | "cross-env": "^7.0.2", 65 | "eslint": "^7.6.0", 66 | "eslint-plugin-import": "^2.22.0", 67 | "eslint-plugin-node": "^11.1.0", 68 | "gts": "^3.0.0", 69 | "mocha": "^8.1.1", 70 | "rimraf": "^3.0.2", 71 | "rollup": "^2.23.1", 72 | "standardx": "^7.0.0", 73 | "typescript": "^4.0.0" 74 | }, 75 | "files": [ 76 | "build", 77 | "index.mjs", 78 | "!*.d.ts" 79 | ], 80 | "engine": { 81 | "node": ">=10" 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /node_modules/color-convert/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 1.0.0 - 2016-01-07 2 | 3 | - Removed: unused speed test 4 | - Added: Automatic routing between previously unsupported conversions 5 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 6 | - Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions 7 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 8 | - Removed: `convert()` class 9 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 10 | - Changed: all functions to lookup dictionary 11 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 12 | - Changed: `ansi` to `ansi256` 13 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 14 | - Fixed: argument grouping for functions requiring only one argument 15 | ([#27](https://github.com/Qix-/color-convert/pull/27)) 16 | 17 | # 0.6.0 - 2015-07-23 18 | 19 | - Added: methods to handle 20 | [ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: 21 | - rgb2ansi16 22 | - rgb2ansi 23 | - hsl2ansi16 24 | - hsl2ansi 25 | - hsv2ansi16 26 | - hsv2ansi 27 | - hwb2ansi16 28 | - hwb2ansi 29 | - cmyk2ansi16 30 | - cmyk2ansi 31 | - keyword2ansi16 32 | - keyword2ansi 33 | - ansi162rgb 34 | - ansi162hsl 35 | - ansi162hsv 36 | - ansi162hwb 37 | - ansi162cmyk 38 | - ansi162keyword 39 | - ansi2rgb 40 | - ansi2hsl 41 | - ansi2hsv 42 | - ansi2hwb 43 | - ansi2cmyk 44 | - ansi2keyword 45 | ([#18](https://github.com/harthur/color-convert/pull/18)) 46 | 47 | # 0.5.3 - 2015-06-02 48 | 49 | - Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` 50 | ([#15](https://github.com/harthur/color-convert/issues/15)) 51 | 52 | --- 53 | 54 | Check out commit logs for older releases 55 | -------------------------------------------------------------------------------- /node_modules/color-convert/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2016 Heather Arthur 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /node_modules/color-convert/README.md: -------------------------------------------------------------------------------- 1 | # color-convert 2 | 3 | [![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) 4 | 5 | Color-convert is a color conversion library for JavaScript and node. 6 | It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): 7 | 8 | ```js 9 | var convert = require('color-convert'); 10 | 11 | convert.rgb.hsl(140, 200, 100); // [96, 48, 59] 12 | convert.keyword.rgb('blue'); // [0, 0, 255] 13 | 14 | var rgbChannels = convert.rgb.channels; // 3 15 | var cmykChannels = convert.cmyk.channels; // 4 16 | var ansiChannels = convert.ansi16.channels; // 1 17 | ``` 18 | 19 | # Install 20 | 21 | ```console 22 | $ npm install color-convert 23 | ``` 24 | 25 | # API 26 | 27 | Simply get the property of the _from_ and _to_ conversion that you're looking for. 28 | 29 | All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. 30 | 31 | All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). 32 | 33 | ```js 34 | var convert = require('color-convert'); 35 | 36 | // Hex to LAB 37 | convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] 38 | convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] 39 | 40 | // RGB to CMYK 41 | convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] 42 | convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] 43 | ``` 44 | 45 | ### Arrays 46 | All functions that accept multiple arguments also support passing an array. 47 | 48 | Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) 49 | 50 | ```js 51 | var convert = require('color-convert'); 52 | 53 | convert.rgb.hex(123, 45, 67); // '7B2D43' 54 | convert.rgb.hex([123, 45, 67]); // '7B2D43' 55 | ``` 56 | 57 | ## Routing 58 | 59 | Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). 60 | 61 | Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). 62 | 63 | # Contribute 64 | 65 | If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. 66 | 67 | # License 68 | Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). 69 | -------------------------------------------------------------------------------- /node_modules/color-convert/index.js: -------------------------------------------------------------------------------- 1 | const conversions = require('./conversions'); 2 | const route = require('./route'); 3 | 4 | const convert = {}; 5 | 6 | const models = Object.keys(conversions); 7 | 8 | function wrapRaw(fn) { 9 | const wrappedFn = function (...args) { 10 | const arg0 = args[0]; 11 | if (arg0 === undefined || arg0 === null) { 12 | return arg0; 13 | } 14 | 15 | if (arg0.length > 1) { 16 | args = arg0; 17 | } 18 | 19 | return fn(args); 20 | }; 21 | 22 | // Preserve .conversion property if there is one 23 | if ('conversion' in fn) { 24 | wrappedFn.conversion = fn.conversion; 25 | } 26 | 27 | return wrappedFn; 28 | } 29 | 30 | function wrapRounded(fn) { 31 | const wrappedFn = function (...args) { 32 | const arg0 = args[0]; 33 | 34 | if (arg0 === undefined || arg0 === null) { 35 | return arg0; 36 | } 37 | 38 | if (arg0.length > 1) { 39 | args = arg0; 40 | } 41 | 42 | const result = fn(args); 43 | 44 | // We're assuming the result is an array here. 45 | // see notice in conversions.js; don't use box types 46 | // in conversion functions. 47 | if (typeof result === 'object') { 48 | for (let len = result.length, i = 0; i < len; i++) { 49 | result[i] = Math.round(result[i]); 50 | } 51 | } 52 | 53 | return result; 54 | }; 55 | 56 | // Preserve .conversion property if there is one 57 | if ('conversion' in fn) { 58 | wrappedFn.conversion = fn.conversion; 59 | } 60 | 61 | return wrappedFn; 62 | } 63 | 64 | models.forEach(fromModel => { 65 | convert[fromModel] = {}; 66 | 67 | Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); 68 | Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); 69 | 70 | const routes = route(fromModel); 71 | const routeModels = Object.keys(routes); 72 | 73 | routeModels.forEach(toModel => { 74 | const fn = routes[toModel]; 75 | 76 | convert[fromModel][toModel] = wrapRounded(fn); 77 | convert[fromModel][toModel].raw = wrapRaw(fn); 78 | }); 79 | }); 80 | 81 | module.exports = convert; 82 | -------------------------------------------------------------------------------- /node_modules/color-convert/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "color-convert", 3 | "description": "Plain color conversion functions", 4 | "version": "2.0.1", 5 | "author": "Heather Arthur ", 6 | "license": "MIT", 7 | "repository": "Qix-/color-convert", 8 | "scripts": { 9 | "pretest": "xo", 10 | "test": "node test/basic.js" 11 | }, 12 | "engines": { 13 | "node": ">=7.0.0" 14 | }, 15 | "keywords": [ 16 | "color", 17 | "colour", 18 | "convert", 19 | "converter", 20 | "conversion", 21 | "rgb", 22 | "hsl", 23 | "hsv", 24 | "hwb", 25 | "cmyk", 26 | "ansi", 27 | "ansi16" 28 | ], 29 | "files": [ 30 | "index.js", 31 | "conversions.js", 32 | "route.js" 33 | ], 34 | "xo": { 35 | "rules": { 36 | "default-case": 0, 37 | "no-inline-comments": 0, 38 | "operator-linebreak": 0 39 | } 40 | }, 41 | "devDependencies": { 42 | "chalk": "^2.4.2", 43 | "xo": "^0.24.0" 44 | }, 45 | "dependencies": { 46 | "color-name": "~1.1.4" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/color-convert/route.js: -------------------------------------------------------------------------------- 1 | const conversions = require('./conversions'); 2 | 3 | /* 4 | This function routes a model to all other models. 5 | 6 | all functions that are routed have a property `.conversion` attached 7 | to the returned synthetic function. This property is an array 8 | of strings, each with the steps in between the 'from' and 'to' 9 | color models (inclusive). 10 | 11 | conversions that are not possible simply are not included. 12 | */ 13 | 14 | function buildGraph() { 15 | const graph = {}; 16 | // https://jsperf.com/object-keys-vs-for-in-with-closure/3 17 | const models = Object.keys(conversions); 18 | 19 | for (let len = models.length, i = 0; i < len; i++) { 20 | graph[models[i]] = { 21 | // http://jsperf.com/1-vs-infinity 22 | // micro-opt, but this is simple. 23 | distance: -1, 24 | parent: null 25 | }; 26 | } 27 | 28 | return graph; 29 | } 30 | 31 | // https://en.wikipedia.org/wiki/Breadth-first_search 32 | function deriveBFS(fromModel) { 33 | const graph = buildGraph(); 34 | const queue = [fromModel]; // Unshift -> queue -> pop 35 | 36 | graph[fromModel].distance = 0; 37 | 38 | while (queue.length) { 39 | const current = queue.pop(); 40 | const adjacents = Object.keys(conversions[current]); 41 | 42 | for (let len = adjacents.length, i = 0; i < len; i++) { 43 | const adjacent = adjacents[i]; 44 | const node = graph[adjacent]; 45 | 46 | if (node.distance === -1) { 47 | node.distance = graph[current].distance + 1; 48 | node.parent = current; 49 | queue.unshift(adjacent); 50 | } 51 | } 52 | } 53 | 54 | return graph; 55 | } 56 | 57 | function link(from, to) { 58 | return function (args) { 59 | return to(from(args)); 60 | }; 61 | } 62 | 63 | function wrapConversion(toModel, graph) { 64 | const path = [graph[toModel].parent, toModel]; 65 | let fn = conversions[graph[toModel].parent][toModel]; 66 | 67 | let cur = graph[toModel].parent; 68 | while (graph[cur].parent) { 69 | path.unshift(graph[cur].parent); 70 | fn = link(conversions[graph[cur].parent][cur], fn); 71 | cur = graph[cur].parent; 72 | } 73 | 74 | fn.conversion = path; 75 | return fn; 76 | } 77 | 78 | module.exports = function (fromModel) { 79 | const graph = deriveBFS(fromModel); 80 | const conversion = {}; 81 | 82 | const models = Object.keys(graph); 83 | for (let len = models.length, i = 0; i < len; i++) { 84 | const toModel = models[i]; 85 | const node = graph[toModel]; 86 | 87 | if (node.parent === null) { 88 | // No possible conversion, or this node is the source model. 89 | continue; 90 | } 91 | 92 | conversion[toModel] = wrapConversion(toModel, graph); 93 | } 94 | 95 | return conversion; 96 | }; 97 | 98 | -------------------------------------------------------------------------------- /node_modules/color-name/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2015 Dmitry Ivanov 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /node_modules/color-name/README.md: -------------------------------------------------------------------------------- 1 | A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. 2 | 3 | [![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) 4 | 5 | 6 | ```js 7 | var colors = require('color-name'); 8 | colors.red //[255,0,0] 9 | ``` 10 | 11 | 12 | -------------------------------------------------------------------------------- /node_modules/color-name/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "color-name", 3 | "version": "1.1.4", 4 | "description": "A list of color names and its values", 5 | "main": "index.js", 6 | "files": [ 7 | "index.js" 8 | ], 9 | "scripts": { 10 | "test": "node test.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git@github.com:colorjs/color-name.git" 15 | }, 16 | "keywords": [ 17 | "color-name", 18 | "color", 19 | "color-keyword", 20 | "keyword" 21 | ], 22 | "author": "DY ", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/colorjs/color-name/issues" 26 | }, 27 | "homepage": "https://github.com/colorjs/color-name" 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/emoji-regex/LICENSE-MIT.txt: -------------------------------------------------------------------------------- 1 | Copyright Mathias Bynens 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /node_modules/emoji-regex/README.md: -------------------------------------------------------------------------------- 1 | # emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex) 2 | 3 | _emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard. 4 | 5 | This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard. 6 | 7 | ## Installation 8 | 9 | Via [npm](https://www.npmjs.com/): 10 | 11 | ```bash 12 | npm install emoji-regex 13 | ``` 14 | 15 | In [Node.js](https://nodejs.org/): 16 | 17 | ```js 18 | const emojiRegex = require('emoji-regex'); 19 | // Note: because the regular expression has the global flag set, this module 20 | // exports a function that returns the regex rather than exporting the regular 21 | // expression itself, to make it impossible to (accidentally) mutate the 22 | // original regular expression. 23 | 24 | const text = ` 25 | \u{231A}: ⌚ default emoji presentation character (Emoji_Presentation) 26 | \u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji 27 | \u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base) 28 | \u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier 29 | `; 30 | 31 | const regex = emojiRegex(); 32 | let match; 33 | while (match = regex.exec(text)) { 34 | const emoji = match[0]; 35 | console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`); 36 | } 37 | ``` 38 | 39 | Console output: 40 | 41 | ``` 42 | Matched sequence ⌚ — code points: 1 43 | Matched sequence ⌚ — code points: 1 44 | Matched sequence ↔️ — code points: 2 45 | Matched sequence ↔️ — code points: 2 46 | Matched sequence 👩 — code points: 1 47 | Matched sequence 👩 — code points: 1 48 | Matched sequence 👩🏿 — code points: 2 49 | Matched sequence 👩🏿 — code points: 2 50 | ``` 51 | 52 | To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex: 53 | 54 | ```js 55 | const emojiRegex = require('emoji-regex/text.js'); 56 | ``` 57 | 58 | Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes: 59 | 60 | ```js 61 | const emojiRegex = require('emoji-regex/es2015/index.js'); 62 | const emojiRegexText = require('emoji-regex/es2015/text.js'); 63 | ``` 64 | 65 | ## Author 66 | 67 | | [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | 68 | |---| 69 | | [Mathias Bynens](https://mathiasbynens.be/) | 70 | 71 | ## License 72 | 73 | _emoji-regex_ is available under the [MIT](https://mths.be/mit) license. 74 | -------------------------------------------------------------------------------- /node_modules/emoji-regex/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'emoji-regex' { 2 | function emojiRegex(): RegExp; 3 | 4 | export default emojiRegex; 5 | } 6 | 7 | declare module 'emoji-regex/text' { 8 | function emojiRegex(): RegExp; 9 | 10 | export default emojiRegex; 11 | } 12 | 13 | declare module 'emoji-regex/es2015' { 14 | function emojiRegex(): RegExp; 15 | 16 | export default emojiRegex; 17 | } 18 | 19 | declare module 'emoji-regex/es2015/text' { 20 | function emojiRegex(): RegExp; 21 | 22 | export default emojiRegex; 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/emoji-regex/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emoji-regex", 3 | "version": "8.0.0", 4 | "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", 5 | "homepage": "https://mths.be/emoji-regex", 6 | "main": "index.js", 7 | "types": "index.d.ts", 8 | "keywords": [ 9 | "unicode", 10 | "regex", 11 | "regexp", 12 | "regular expressions", 13 | "code points", 14 | "symbols", 15 | "characters", 16 | "emoji" 17 | ], 18 | "license": "MIT", 19 | "author": { 20 | "name": "Mathias Bynens", 21 | "url": "https://mathiasbynens.be/" 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "https://github.com/mathiasbynens/emoji-regex.git" 26 | }, 27 | "bugs": "https://github.com/mathiasbynens/emoji-regex/issues", 28 | "files": [ 29 | "LICENSE-MIT.txt", 30 | "index.js", 31 | "index.d.ts", 32 | "text.js", 33 | "es2015/index.js", 34 | "es2015/text.js" 35 | ], 36 | "scripts": { 37 | "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", 38 | "test": "mocha", 39 | "test:watch": "npm run test -- --watch" 40 | }, 41 | "devDependencies": { 42 | "@babel/cli": "^7.2.3", 43 | "@babel/core": "^7.3.4", 44 | "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", 45 | "@babel/preset-env": "^7.3.4", 46 | "mocha": "^6.0.2", 47 | "regexgen": "^1.3.0", 48 | "unicode-12.0.0": "^0.7.9" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /node_modules/escalade/dist/index.js: -------------------------------------------------------------------------------- 1 | const { dirname, resolve } = require('path'); 2 | const { readdir, stat } = require('fs'); 3 | const { promisify } = require('util'); 4 | 5 | const toStats = promisify(stat); 6 | const toRead = promisify(readdir); 7 | 8 | module.exports = async function (start, callback) { 9 | let dir = resolve('.', start); 10 | let tmp, stats = await toStats(dir); 11 | 12 | if (!stats.isDirectory()) { 13 | dir = dirname(dir); 14 | } 15 | 16 | while (true) { 17 | tmp = await callback(dir, await toRead(dir)); 18 | if (tmp) return resolve(dir, tmp); 19 | dir = dirname(tmp = dir); 20 | if (tmp === dir) break; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/escalade/dist/index.mjs: -------------------------------------------------------------------------------- 1 | import { dirname, resolve } from 'path'; 2 | import { readdir, stat } from 'fs'; 3 | import { promisify } from 'util'; 4 | 5 | const toStats = promisify(stat); 6 | const toRead = promisify(readdir); 7 | 8 | export default async function (start, callback) { 9 | let dir = resolve('.', start); 10 | let tmp, stats = await toStats(dir); 11 | 12 | if (!stats.isDirectory()) { 13 | dir = dirname(dir); 14 | } 15 | 16 | while (true) { 17 | tmp = await callback(dir, await toRead(dir)); 18 | if (tmp) return resolve(dir, tmp); 19 | dir = dirname(tmp = dir); 20 | if (tmp === dir) break; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/escalade/index.d.ts: -------------------------------------------------------------------------------- 1 | type Promisable = T | Promise; 2 | export type Callback = (directory: string, files: string[]) => Promisable; 3 | export default function (directory: string, callback: Callback): Promise; 4 | -------------------------------------------------------------------------------- /node_modules/escalade/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Luke Edwards (lukeed.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/escalade/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "escalade", 3 | "version": "3.1.1", 4 | "repository": "lukeed/escalade", 5 | "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", 6 | "module": "dist/index.mjs", 7 | "main": "dist/index.js", 8 | "types": "index.d.ts", 9 | "license": "MIT", 10 | "author": { 11 | "name": "Luke Edwards", 12 | "email": "luke.edwards05@gmail.com", 13 | "url": "https://lukeed.com" 14 | }, 15 | "exports": { 16 | ".": [ 17 | { 18 | "import": "./dist/index.mjs", 19 | "require": "./dist/index.js" 20 | }, 21 | "./dist/index.js" 22 | ], 23 | "./sync": [ 24 | { 25 | "import": "./sync/index.mjs", 26 | "require": "./sync/index.js" 27 | }, 28 | "./sync/index.js" 29 | ] 30 | }, 31 | "files": [ 32 | "*.d.ts", 33 | "dist", 34 | "sync" 35 | ], 36 | "modes": { 37 | "sync": "src/sync.js", 38 | "default": "src/async.js" 39 | }, 40 | "engines": { 41 | "node": ">=6" 42 | }, 43 | "scripts": { 44 | "build": "bundt", 45 | "pretest": "npm run build", 46 | "test": "uvu -r esm test -i fixtures" 47 | }, 48 | "keywords": [ 49 | "find", 50 | "parent", 51 | "parents", 52 | "directory", 53 | "search", 54 | "walk" 55 | ], 56 | "devDependencies": { 57 | "bundt": "1.1.1", 58 | "esm": "3.2.25", 59 | "uvu": "0.3.3" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /node_modules/escalade/sync/index.d.ts: -------------------------------------------------------------------------------- 1 | export type Callback = (directory: string, files: string[]) => string | false | void; 2 | export default function (directory: string, callback: Callback): string | void; 3 | -------------------------------------------------------------------------------- /node_modules/escalade/sync/index.js: -------------------------------------------------------------------------------- 1 | const { dirname, resolve } = require('path'); 2 | const { readdirSync, statSync } = require('fs'); 3 | 4 | module.exports = function (start, callback) { 5 | let dir = resolve('.', start); 6 | let tmp, stats = statSync(dir); 7 | 8 | if (!stats.isDirectory()) { 9 | dir = dirname(dir); 10 | } 11 | 12 | while (true) { 13 | tmp = callback(dir, readdirSync(dir)); 14 | if (tmp) return resolve(dir, tmp); 15 | dir = dirname(tmp = dir); 16 | if (tmp === dir) break; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/escalade/sync/index.mjs: -------------------------------------------------------------------------------- 1 | import { dirname, resolve } from 'path'; 2 | import { readdirSync, statSync } from 'fs'; 3 | 4 | export default function (start, callback) { 5 | let dir = resolve('.', start); 6 | let tmp, stats = statSync(dir); 7 | 8 | if (!stats.isDirectory()) { 9 | dir = dirname(dir); 10 | } 11 | 12 | while (true) { 13 | tmp = callback(dir, readdirSync(dir)); 14 | if (tmp) return resolve(dir, tmp); 15 | dir = dirname(tmp = dir); 16 | if (tmp === dir) break; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/get-caller-file/LICENSE.md: -------------------------------------------------------------------------------- 1 | ISC License (ISC) 2 | Copyright 2018 Stefan Penner 3 | 4 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 5 | 6 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 7 | -------------------------------------------------------------------------------- /node_modules/get-caller-file/README.md: -------------------------------------------------------------------------------- 1 | # get-caller-file 2 | 3 | [![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) 4 | [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master) 5 | 6 | This is a utility, which allows a function to figure out from which file it was invoked. It does so by inspecting v8's stack trace at the time it is invoked. 7 | 8 | Inspired by http://stackoverflow.com/questions/13227489 9 | 10 | *note: this relies on Node/V8 specific APIs, as such other runtimes may not work* 11 | 12 | ## Installation 13 | 14 | ```bash 15 | yarn add get-caller-file 16 | ``` 17 | 18 | ## Usage 19 | 20 | Given: 21 | 22 | ```js 23 | // ./foo.js 24 | const getCallerFile = require('get-caller-file'); 25 | 26 | module.exports = function() { 27 | return getCallerFile(); // figures out who called it 28 | }; 29 | ``` 30 | 31 | ```js 32 | // index.js 33 | const foo = require('./foo'); 34 | 35 | foo() // => /full/path/to/this/file/index.js 36 | ``` 37 | 38 | 39 | ## Options: 40 | 41 | * `getCallerFile(position = 2)`: where position is stack frame whos fileName we want. 42 | -------------------------------------------------------------------------------- /node_modules/get-caller-file/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const _default: (position?: number) => any; 2 | export = _default; 3 | -------------------------------------------------------------------------------- /node_modules/get-caller-file/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | // Call this function in a another function to find out the file from 3 | // which that function was called from. (Inspects the v8 stack trace) 4 | // 5 | // Inspired by http://stackoverflow.com/questions/13227489 6 | module.exports = function getCallerFile(position) { 7 | if (position === void 0) { position = 2; } 8 | if (position >= Error.stackTraceLimit) { 9 | throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`'); 10 | } 11 | var oldPrepareStackTrace = Error.prepareStackTrace; 12 | Error.prepareStackTrace = function (_, stack) { return stack; }; 13 | var stack = new Error().stack; 14 | Error.prepareStackTrace = oldPrepareStackTrace; 15 | if (stack !== null && typeof stack === 'object') { 16 | // stack[0] holds this file 17 | // stack[1] holds where this function was called 18 | // stack[2] holds the file we're interested in 19 | return stack[position] ? stack[position].getFileName() : undefined; 20 | } 21 | }; 22 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /node_modules/get-caller-file/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,qEAAqE;AACrE,EAAE;AACF,0DAA0D;AAE1D,iBAAS,SAAS,aAAa,CAAC,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAC1C,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,kGAAkG,GAAG,QAAQ,GAAG,oCAAoC,GAAG,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;KACzM;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,UAAC,CAAC,EAAE,KAAK,IAAM,OAAA,KAAK,EAAL,CAAK,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAG/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC/C,2BAA2B;QAC3B,gDAAgD;QAChD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7E;AACH,CAAC,CAAC"} -------------------------------------------------------------------------------- /node_modules/get-caller-file/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "get-caller-file", 3 | "version": "2.0.5", 4 | "description": "", 5 | "main": "index.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "files": [ 10 | "index.js", 11 | "index.js.map", 12 | "index.d.ts" 13 | ], 14 | "scripts": { 15 | "prepare": "tsc", 16 | "test": "mocha test", 17 | "test:debug": "mocha test" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/stefanpenner/get-caller-file.git" 22 | }, 23 | "author": "Stefan Penner", 24 | "license": "ISC", 25 | "bugs": { 26 | "url": "https://github.com/stefanpenner/get-caller-file/issues" 27 | }, 28 | "homepage": "https://github.com/stefanpenner/get-caller-file#readme", 29 | "devDependencies": { 30 | "@types/chai": "^4.1.7", 31 | "@types/ensure-posix-path": "^1.0.0", 32 | "@types/mocha": "^5.2.6", 33 | "@types/node": "^11.10.5", 34 | "chai": "^4.1.2", 35 | "ensure-posix-path": "^1.0.1", 36 | "mocha": "^5.2.0", 37 | "typescript": "^3.3.3333" 38 | }, 39 | "engines": { 40 | "node": "6.* || 8.* || >= 10.*" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /node_modules/has-flag/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag. 3 | 4 | @param flag - CLI flag to look for. The `--` prefix is optional. 5 | @param argv - CLI arguments. Default: `process.argv`. 6 | @returns Whether the flag exists. 7 | 8 | @example 9 | ``` 10 | // $ ts-node foo.ts -f --unicorn --foo=bar -- --rainbow 11 | 12 | // foo.ts 13 | import hasFlag = require('has-flag'); 14 | 15 | hasFlag('unicorn'); 16 | //=> true 17 | 18 | hasFlag('--unicorn'); 19 | //=> true 20 | 21 | hasFlag('f'); 22 | //=> true 23 | 24 | hasFlag('-f'); 25 | //=> true 26 | 27 | hasFlag('foo=bar'); 28 | //=> true 29 | 30 | hasFlag('foo'); 31 | //=> false 32 | 33 | hasFlag('rainbow'); 34 | //=> false 35 | ``` 36 | */ 37 | declare function hasFlag(flag: string, argv?: string[]): boolean; 38 | 39 | export = hasFlag; 40 | -------------------------------------------------------------------------------- /node_modules/has-flag/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = (flag, argv = process.argv) => { 4 | const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); 5 | const position = argv.indexOf(prefix + flag); 6 | const terminatorPosition = argv.indexOf('--'); 7 | return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); 8 | }; 9 | -------------------------------------------------------------------------------- /node_modules/has-flag/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/has-flag/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "has-flag", 3 | "version": "4.0.0", 4 | "description": "Check if argv has a specific flag", 5 | "license": "MIT", 6 | "repository": "sindresorhus/has-flag", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "has", 24 | "check", 25 | "detect", 26 | "contains", 27 | "find", 28 | "flag", 29 | "cli", 30 | "command-line", 31 | "argv", 32 | "process", 33 | "arg", 34 | "args", 35 | "argument", 36 | "arguments", 37 | "getopt", 38 | "minimist", 39 | "optimist" 40 | ], 41 | "devDependencies": { 42 | "ava": "^1.4.1", 43 | "tsd": "^0.7.2", 44 | "xo": "^0.24.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/has-flag/readme.md: -------------------------------------------------------------------------------- 1 | # has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) 2 | 3 | > Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag 4 | 5 | Correctly stops looking after an `--` argument terminator. 6 | 7 | --- 8 | 9 |
10 | 11 | Get professional support for this package with a Tidelift subscription 12 | 13 |
14 | 15 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 16 |
17 |
18 | 19 | --- 20 | 21 | 22 | ## Install 23 | 24 | ``` 25 | $ npm install has-flag 26 | ``` 27 | 28 | 29 | ## Usage 30 | 31 | ```js 32 | // foo.js 33 | const hasFlag = require('has-flag'); 34 | 35 | hasFlag('unicorn'); 36 | //=> true 37 | 38 | hasFlag('--unicorn'); 39 | //=> true 40 | 41 | hasFlag('f'); 42 | //=> true 43 | 44 | hasFlag('-f'); 45 | //=> true 46 | 47 | hasFlag('foo=bar'); 48 | //=> true 49 | 50 | hasFlag('foo'); 51 | //=> false 52 | 53 | hasFlag('rainbow'); 54 | //=> false 55 | ``` 56 | 57 | ``` 58 | $ node foo.js -f --unicorn --foo=bar -- --rainbow 59 | ``` 60 | 61 | 62 | ## API 63 | 64 | ### hasFlag(flag, [argv]) 65 | 66 | Returns a boolean for whether the flag exists. 67 | 68 | #### flag 69 | 70 | Type: `string` 71 | 72 | CLI flag to look for. The `--` prefix is optional. 73 | 74 | #### argv 75 | 76 | Type: `string[]`
77 | Default: `process.argv` 78 | 79 | CLI arguments. 80 | 81 | 82 | ## Security 83 | 84 | To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. 85 | 86 | 87 | ## License 88 | 89 | MIT © [Sindre Sorhus](https://sindresorhus.com) 90 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms). 3 | 4 | @param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. 5 | 6 | @example 7 | ``` 8 | import isFullwidthCodePoint from 'is-fullwidth-code-point'; 9 | 10 | isFullwidthCodePoint('谢'.codePointAt(0)); 11 | //=> true 12 | 13 | isFullwidthCodePoint('a'.codePointAt(0)); 14 | //=> false 15 | ``` 16 | */ 17 | export default function isFullwidthCodePoint(codePoint: number): boolean; 18 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable yoda */ 2 | 'use strict'; 3 | 4 | const isFullwidthCodePoint = codePoint => { 5 | if (Number.isNaN(codePoint)) { 6 | return false; 7 | } 8 | 9 | // Code points are derived from: 10 | // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt 11 | if ( 12 | codePoint >= 0x1100 && ( 13 | codePoint <= 0x115F || // Hangul Jamo 14 | codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET 15 | codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET 16 | // CJK Radicals Supplement .. Enclosed CJK Letters and Months 17 | (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || 18 | // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A 19 | (0x3250 <= codePoint && codePoint <= 0x4DBF) || 20 | // CJK Unified Ideographs .. Yi Radicals 21 | (0x4E00 <= codePoint && codePoint <= 0xA4C6) || 22 | // Hangul Jamo Extended-A 23 | (0xA960 <= codePoint && codePoint <= 0xA97C) || 24 | // Hangul Syllables 25 | (0xAC00 <= codePoint && codePoint <= 0xD7A3) || 26 | // CJK Compatibility Ideographs 27 | (0xF900 <= codePoint && codePoint <= 0xFAFF) || 28 | // Vertical Forms 29 | (0xFE10 <= codePoint && codePoint <= 0xFE19) || 30 | // CJK Compatibility Forms .. Small Form Variants 31 | (0xFE30 <= codePoint && codePoint <= 0xFE6B) || 32 | // Halfwidth and Fullwidth Forms 33 | (0xFF01 <= codePoint && codePoint <= 0xFF60) || 34 | (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || 35 | // Kana Supplement 36 | (0x1B000 <= codePoint && codePoint <= 0x1B001) || 37 | // Enclosed Ideographic Supplement 38 | (0x1F200 <= codePoint && codePoint <= 0x1F251) || 39 | // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane 40 | (0x20000 <= codePoint && codePoint <= 0x3FFFD) 41 | ) 42 | ) { 43 | return true; 44 | } 45 | 46 | return false; 47 | }; 48 | 49 | module.exports = isFullwidthCodePoint; 50 | module.exports.default = isFullwidthCodePoint; 51 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-fullwidth-code-point", 3 | "version": "3.0.0", 4 | "description": "Check if the character represented by a given Unicode code point is fullwidth", 5 | "license": "MIT", 6 | "repository": "sindresorhus/is-fullwidth-code-point", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd-check" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "fullwidth", 24 | "full-width", 25 | "full", 26 | "width", 27 | "unicode", 28 | "character", 29 | "string", 30 | "codepoint", 31 | "code", 32 | "point", 33 | "is", 34 | "detect", 35 | "check" 36 | ], 37 | "devDependencies": { 38 | "ava": "^1.3.1", 39 | "tsd-check": "^0.5.0", 40 | "xo": "^0.24.0" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /node_modules/is-fullwidth-code-point/readme.md: -------------------------------------------------------------------------------- 1 | # is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) 2 | 3 | > Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install is-fullwidth-code-point 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 17 | 18 | isFullwidthCodePoint('谢'.codePointAt(0)); 19 | //=> true 20 | 21 | isFullwidthCodePoint('a'.codePointAt(0)); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## API 27 | 28 | ### isFullwidthCodePoint(codePoint) 29 | 30 | #### codePoint 31 | 32 | Type: `number` 33 | 34 | The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. 35 | 36 | 37 | ## License 38 | 39 | MIT © [Sindre Sorhus](https://sindresorhus.com) 40 | -------------------------------------------------------------------------------- /node_modules/require-directory/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "maxerr" : 50, 3 | "bitwise" : true, 4 | "camelcase" : true, 5 | "curly" : true, 6 | "eqeqeq" : true, 7 | "forin" : true, 8 | "immed" : true, 9 | "indent" : 2, 10 | "latedef" : true, 11 | "newcap" : true, 12 | "noarg" : true, 13 | "noempty" : true, 14 | "nonew" : true, 15 | "plusplus" : true, 16 | "quotmark" : true, 17 | "undef" : true, 18 | "unused" : true, 19 | "strict" : true, 20 | "trailing" : true, 21 | "maxparams" : false, 22 | "maxdepth" : false, 23 | "maxstatements" : false, 24 | "maxcomplexity" : false, 25 | "maxlen" : false, 26 | "asi" : false, 27 | "boss" : false, 28 | "debug" : false, 29 | "eqnull" : true, 30 | "es5" : false, 31 | "esnext" : false, 32 | "moz" : false, 33 | "evil" : false, 34 | "expr" : true, 35 | "funcscope" : true, 36 | "globalstrict" : true, 37 | "iterator" : true, 38 | "lastsemic" : false, 39 | "laxbreak" : false, 40 | "laxcomma" : false, 41 | "loopfunc" : false, 42 | "multistr" : false, 43 | "proto" : false, 44 | "scripturl" : false, 45 | "smarttabs" : false, 46 | "shadow" : false, 47 | "sub" : false, 48 | "supernew" : false, 49 | "validthis" : false, 50 | "browser" : true, 51 | "couch" : false, 52 | "devel" : true, 53 | "dojo" : false, 54 | "jquery" : false, 55 | "mootools" : false, 56 | "node" : true, 57 | "nonstandard" : false, 58 | "prototypejs" : false, 59 | "rhino" : false, 60 | "worker" : false, 61 | "wsh" : false, 62 | "yui" : false, 63 | "nomen" : true, 64 | "onevar" : true, 65 | "passfail" : false, 66 | "white" : true 67 | } 68 | -------------------------------------------------------------------------------- /node_modules/require-directory/.npmignore: -------------------------------------------------------------------------------- 1 | test/** 2 | -------------------------------------------------------------------------------- /node_modules/require-directory/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.10 4 | -------------------------------------------------------------------------------- /node_modules/require-directory/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011 Troy Goode 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a 6 | copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included 14 | in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /node_modules/require-directory/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var fs = require('fs'), 4 | join = require('path').join, 5 | resolve = require('path').resolve, 6 | dirname = require('path').dirname, 7 | defaultOptions = { 8 | extensions: ['js', 'json', 'coffee'], 9 | recurse: true, 10 | rename: function (name) { 11 | return name; 12 | }, 13 | visit: function (obj) { 14 | return obj; 15 | } 16 | }; 17 | 18 | function checkFileInclusion(path, filename, options) { 19 | return ( 20 | // verify file has valid extension 21 | (new RegExp('\\.(' + options.extensions.join('|') + ')$', 'i').test(filename)) && 22 | 23 | // if options.include is a RegExp, evaluate it and make sure the path passes 24 | !(options.include && options.include instanceof RegExp && !options.include.test(path)) && 25 | 26 | // if options.include is a function, evaluate it and make sure the path passes 27 | !(options.include && typeof options.include === 'function' && !options.include(path, filename)) && 28 | 29 | // if options.exclude is a RegExp, evaluate it and make sure the path doesn't pass 30 | !(options.exclude && options.exclude instanceof RegExp && options.exclude.test(path)) && 31 | 32 | // if options.exclude is a function, evaluate it and make sure the path doesn't pass 33 | !(options.exclude && typeof options.exclude === 'function' && options.exclude(path, filename)) 34 | ); 35 | } 36 | 37 | function requireDirectory(m, path, options) { 38 | var retval = {}; 39 | 40 | // path is optional 41 | if (path && !options && typeof path !== 'string') { 42 | options = path; 43 | path = null; 44 | } 45 | 46 | // default options 47 | options = options || {}; 48 | for (var prop in defaultOptions) { 49 | if (typeof options[prop] === 'undefined') { 50 | options[prop] = defaultOptions[prop]; 51 | } 52 | } 53 | 54 | // if no path was passed in, assume the equivelant of __dirname from caller 55 | // otherwise, resolve path relative to the equivalent of __dirname 56 | path = !path ? dirname(m.filename) : resolve(dirname(m.filename), path); 57 | 58 | // get the path of each file in specified directory, append to current tree node, recurse 59 | fs.readdirSync(path).forEach(function (filename) { 60 | var joined = join(path, filename), 61 | files, 62 | key, 63 | obj; 64 | 65 | if (fs.statSync(joined).isDirectory() && options.recurse) { 66 | // this node is a directory; recurse 67 | files = requireDirectory(m, joined, options); 68 | // exclude empty directories 69 | if (Object.keys(files).length) { 70 | retval[options.rename(filename, joined, filename)] = files; 71 | } 72 | } else { 73 | if (joined !== m.filename && checkFileInclusion(joined, filename, options)) { 74 | // hash node key shouldn't include file extension 75 | key = filename.substring(0, filename.lastIndexOf('.')); 76 | obj = m.require(joined); 77 | retval[options.rename(key, joined, filename)] = options.visit(obj, joined, filename) || obj; 78 | } 79 | } 80 | }); 81 | 82 | return retval; 83 | } 84 | 85 | module.exports = requireDirectory; 86 | module.exports.defaults = defaultOptions; 87 | -------------------------------------------------------------------------------- /node_modules/require-directory/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Troy Goode (http://github.com/troygoode/)", 3 | "name": "require-directory", 4 | "version": "2.1.1", 5 | "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", 6 | "keywords": [ 7 | "require", 8 | "directory", 9 | "library", 10 | "recursive" 11 | ], 12 | "homepage": "https://github.com/troygoode/node-require-directory/", 13 | "main": "index.js", 14 | "repository": { 15 | "type": "git", 16 | "url": "git://github.com/troygoode/node-require-directory.git" 17 | }, 18 | "contributors": [ 19 | { 20 | "name": "Troy Goode", 21 | "email": "troygoode@gmail.com", 22 | "web": "http://github.com/troygoode/" 23 | } 24 | ], 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "http://github.com/troygoode/node-require-directory/issues/" 28 | }, 29 | "engines": { 30 | "node": ">=0.10.0" 31 | }, 32 | "devDependencies": { 33 | "jshint": "^2.6.0", 34 | "mocha": "^2.1.0" 35 | }, 36 | "scripts": { 37 | "test": "mocha", 38 | "lint": "jshint index.js test/test.js" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/string-width/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const stringWidth: { 2 | /** 3 | Get the visual width of a string - the number of columns required to display it. 4 | 5 | Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. 6 | 7 | @example 8 | ``` 9 | import stringWidth = require('string-width'); 10 | 11 | stringWidth('a'); 12 | //=> 1 13 | 14 | stringWidth('古'); 15 | //=> 2 16 | 17 | stringWidth('\u001B[1m古\u001B[22m'); 18 | //=> 2 19 | ``` 20 | */ 21 | (string: string): number; 22 | 23 | // TODO: remove this in the next major version, refactor the whole definition to: 24 | // declare function stringWidth(string: string): number; 25 | // export = stringWidth; 26 | default: typeof stringWidth; 27 | } 28 | 29 | export = stringWidth; 30 | -------------------------------------------------------------------------------- /node_modules/string-width/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const stripAnsi = require('strip-ansi'); 3 | const isFullwidthCodePoint = require('is-fullwidth-code-point'); 4 | const emojiRegex = require('emoji-regex'); 5 | 6 | const stringWidth = string => { 7 | if (typeof string !== 'string' || string.length === 0) { 8 | return 0; 9 | } 10 | 11 | string = stripAnsi(string); 12 | 13 | if (string.length === 0) { 14 | return 0; 15 | } 16 | 17 | string = string.replace(emojiRegex(), ' '); 18 | 19 | let width = 0; 20 | 21 | for (let i = 0; i < string.length; i++) { 22 | const code = string.codePointAt(i); 23 | 24 | // Ignore control characters 25 | if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { 26 | continue; 27 | } 28 | 29 | // Ignore combining characters 30 | if (code >= 0x300 && code <= 0x36F) { 31 | continue; 32 | } 33 | 34 | // Surrogates 35 | if (code > 0xFFFF) { 36 | i++; 37 | } 38 | 39 | width += isFullwidthCodePoint(code) ? 2 : 1; 40 | } 41 | 42 | return width; 43 | }; 44 | 45 | module.exports = stringWidth; 46 | // TODO: remove this in the next major version 47 | module.exports.default = stringWidth; 48 | -------------------------------------------------------------------------------- /node_modules/string-width/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/string-width/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "string-width", 3 | "version": "4.2.3", 4 | "description": "Get the visual width of a string - the number of columns required to display it", 5 | "license": "MIT", 6 | "repository": "sindresorhus/string-width", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "string", 24 | "character", 25 | "unicode", 26 | "width", 27 | "visual", 28 | "column", 29 | "columns", 30 | "fullwidth", 31 | "full-width", 32 | "full", 33 | "ansi", 34 | "escape", 35 | "codes", 36 | "cli", 37 | "command-line", 38 | "terminal", 39 | "console", 40 | "cjk", 41 | "chinese", 42 | "japanese", 43 | "korean", 44 | "fixed-width" 45 | ], 46 | "dependencies": { 47 | "emoji-regex": "^8.0.0", 48 | "is-fullwidth-code-point": "^3.0.0", 49 | "strip-ansi": "^6.0.1" 50 | }, 51 | "devDependencies": { 52 | "ava": "^1.4.1", 53 | "tsd": "^0.7.1", 54 | "xo": "^0.24.0" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /node_modules/string-width/readme.md: -------------------------------------------------------------------------------- 1 | # string-width 2 | 3 | > Get the visual width of a string - the number of columns required to display it 4 | 5 | Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. 6 | 7 | Useful to be able to measure the actual width of command-line output. 8 | 9 | 10 | ## Install 11 | 12 | ``` 13 | $ npm install string-width 14 | ``` 15 | 16 | 17 | ## Usage 18 | 19 | ```js 20 | const stringWidth = require('string-width'); 21 | 22 | stringWidth('a'); 23 | //=> 1 24 | 25 | stringWidth('古'); 26 | //=> 2 27 | 28 | stringWidth('\u001B[1m古\u001B[22m'); 29 | //=> 2 30 | ``` 31 | 32 | 33 | ## Related 34 | 35 | - [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module 36 | - [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string 37 | - [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string 38 | 39 | 40 | --- 41 | 42 |
43 | 44 | Get professional support for this package with a Tidelift subscription 45 | 46 |
47 | 48 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 49 |
50 |
51 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. 3 | 4 | @example 5 | ``` 6 | import stripAnsi = require('strip-ansi'); 7 | 8 | stripAnsi('\u001B[4mUnicorn\u001B[0m'); 9 | //=> 'Unicorn' 10 | 11 | stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); 12 | //=> 'Click' 13 | ``` 14 | */ 15 | declare function stripAnsi(string: string): string; 16 | 17 | export = stripAnsi; 18 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const ansiRegex = require('ansi-regex'); 3 | 4 | module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; 5 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "strip-ansi", 3 | "version": "6.0.1", 4 | "description": "Strip ANSI escape codes from a string", 5 | "license": "MIT", 6 | "repository": "chalk/strip-ansi", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "strip", 24 | "trim", 25 | "remove", 26 | "ansi", 27 | "styles", 28 | "color", 29 | "colour", 30 | "colors", 31 | "terminal", 32 | "console", 33 | "string", 34 | "tty", 35 | "escape", 36 | "formatting", 37 | "rgb", 38 | "256", 39 | "shell", 40 | "xterm", 41 | "log", 42 | "logging", 43 | "command-line", 44 | "text" 45 | ], 46 | "dependencies": { 47 | "ansi-regex": "^5.0.1" 48 | }, 49 | "devDependencies": { 50 | "ava": "^2.4.0", 51 | "tsd": "^0.10.0", 52 | "xo": "^0.25.3" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /node_modules/strip-ansi/readme.md: -------------------------------------------------------------------------------- 1 | # strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) 2 | 3 | > Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install strip-ansi 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const stripAnsi = require('strip-ansi'); 17 | 18 | stripAnsi('\u001B[4mUnicorn\u001B[0m'); 19 | //=> 'Unicorn' 20 | 21 | stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); 22 | //=> 'Click' 23 | ``` 24 | 25 | 26 | ## strip-ansi for enterprise 27 | 28 | Available as part of the Tidelift Subscription. 29 | 30 | The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) 31 | 32 | 33 | ## Related 34 | 35 | - [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module 36 | - [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module 37 | - [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes 38 | - [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes 39 | - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 40 | 41 | 42 | ## Maintainers 43 | 44 | - [Sindre Sorhus](https://github.com/sindresorhus) 45 | - [Josh Junon](https://github.com/qix-) 46 | 47 | -------------------------------------------------------------------------------- /node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/supports-color/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const os = require('os'); 3 | const tty = require('tty'); 4 | const hasFlag = require('has-flag'); 5 | 6 | const {env} = process; 7 | 8 | let forceColor; 9 | if (hasFlag('no-color') || 10 | hasFlag('no-colors') || 11 | hasFlag('color=false') || 12 | hasFlag('color=never')) { 13 | forceColor = 0; 14 | } else if (hasFlag('color') || 15 | hasFlag('colors') || 16 | hasFlag('color=true') || 17 | hasFlag('color=always')) { 18 | forceColor = 1; 19 | } 20 | 21 | if ('FORCE_COLOR' in env) { 22 | if (env.FORCE_COLOR === 'true') { 23 | forceColor = 1; 24 | } else if (env.FORCE_COLOR === 'false') { 25 | forceColor = 0; 26 | } else { 27 | forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); 28 | } 29 | } 30 | 31 | function translateLevel(level) { 32 | if (level === 0) { 33 | return false; 34 | } 35 | 36 | return { 37 | level, 38 | hasBasic: true, 39 | has256: level >= 2, 40 | has16m: level >= 3 41 | }; 42 | } 43 | 44 | function supportsColor(haveStream, streamIsTTY) { 45 | if (forceColor === 0) { 46 | return 0; 47 | } 48 | 49 | if (hasFlag('color=16m') || 50 | hasFlag('color=full') || 51 | hasFlag('color=truecolor')) { 52 | return 3; 53 | } 54 | 55 | if (hasFlag('color=256')) { 56 | return 2; 57 | } 58 | 59 | if (haveStream && !streamIsTTY && forceColor === undefined) { 60 | return 0; 61 | } 62 | 63 | const min = forceColor || 0; 64 | 65 | if (env.TERM === 'dumb') { 66 | return min; 67 | } 68 | 69 | if (process.platform === 'win32') { 70 | // Windows 10 build 10586 is the first Windows release that supports 256 colors. 71 | // Windows 10 build 14931 is the first release that supports 16m/TrueColor. 72 | const osRelease = os.release().split('.'); 73 | if ( 74 | Number(osRelease[0]) >= 10 && 75 | Number(osRelease[2]) >= 10586 76 | ) { 77 | return Number(osRelease[2]) >= 14931 ? 3 : 2; 78 | } 79 | 80 | return 1; 81 | } 82 | 83 | if ('CI' in env) { 84 | if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { 85 | return 1; 86 | } 87 | 88 | return min; 89 | } 90 | 91 | if ('TEAMCITY_VERSION' in env) { 92 | return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; 93 | } 94 | 95 | if (env.COLORTERM === 'truecolor') { 96 | return 3; 97 | } 98 | 99 | if ('TERM_PROGRAM' in env) { 100 | const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); 101 | 102 | switch (env.TERM_PROGRAM) { 103 | case 'iTerm.app': 104 | return version >= 3 ? 3 : 2; 105 | case 'Apple_Terminal': 106 | return 2; 107 | // No default 108 | } 109 | } 110 | 111 | if (/-256(color)?$/i.test(env.TERM)) { 112 | return 2; 113 | } 114 | 115 | if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { 116 | return 1; 117 | } 118 | 119 | if ('COLORTERM' in env) { 120 | return 1; 121 | } 122 | 123 | return min; 124 | } 125 | 126 | function getSupportLevel(stream) { 127 | const level = supportsColor(stream, stream && stream.isTTY); 128 | return translateLevel(level); 129 | } 130 | 131 | module.exports = { 132 | supportsColor: getSupportLevel, 133 | stdout: translateLevel(supportsColor(true, tty.isatty(1))), 134 | stderr: translateLevel(supportsColor(true, tty.isatty(2))) 135 | }; 136 | -------------------------------------------------------------------------------- /node_modules/supports-color/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/supports-color/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "supports-color", 3 | "version": "7.2.0", 4 | "description": "Detect whether a terminal supports color", 5 | "license": "MIT", 6 | "repository": "chalk/supports-color", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "browser.js" 21 | ], 22 | "keywords": [ 23 | "color", 24 | "colour", 25 | "colors", 26 | "terminal", 27 | "console", 28 | "cli", 29 | "ansi", 30 | "styles", 31 | "tty", 32 | "rgb", 33 | "256", 34 | "shell", 35 | "xterm", 36 | "command-line", 37 | "support", 38 | "supports", 39 | "capability", 40 | "detect", 41 | "truecolor", 42 | "16m" 43 | ], 44 | "dependencies": { 45 | "has-flag": "^4.0.0" 46 | }, 47 | "devDependencies": { 48 | "ava": "^1.4.1", 49 | "import-fresh": "^3.0.0", 50 | "xo": "^0.24.0" 51 | }, 52 | "browser": "browser.js" 53 | } 54 | -------------------------------------------------------------------------------- /node_modules/supports-color/readme.md: -------------------------------------------------------------------------------- 1 | # supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) 2 | 3 | > Detect whether a terminal supports color 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install supports-color 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const supportsColor = require('supports-color'); 17 | 18 | if (supportsColor.stdout) { 19 | console.log('Terminal stdout supports color'); 20 | } 21 | 22 | if (supportsColor.stdout.has256) { 23 | console.log('Terminal stdout supports 256 colors'); 24 | } 25 | 26 | if (supportsColor.stderr.has16m) { 27 | console.log('Terminal stderr supports 16 million colors (truecolor)'); 28 | } 29 | ``` 30 | 31 | 32 | ## API 33 | 34 | Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. 35 | 36 | The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: 37 | 38 | - `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) 39 | - `.level = 2` and `.has256 = true`: 256 color support 40 | - `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) 41 | 42 | 43 | ## Info 44 | 45 | It obeys the `--color` and `--no-color` CLI flags. 46 | 47 | For situations where using `--color` is not possible, use the environment variable `FORCE_COLOR=1` (level 1), `FORCE_COLOR=2` (level 2), or `FORCE_COLOR=3` (level 3) to forcefully enable color, or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. 48 | 49 | Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. 50 | 51 | 52 | ## Related 53 | 54 | - [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module 55 | - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 56 | 57 | 58 | ## Maintainers 59 | 60 | - [Sindre Sorhus](https://github.com/sindresorhus) 61 | - [Josh Junon](https://github.com/qix-) 62 | 63 | 64 | --- 65 | 66 |
67 | 68 | Get professional support for this package with a Tidelift subscription 69 | 70 |
71 | 72 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 73 |
74 |
75 | 76 | --- 77 | -------------------------------------------------------------------------------- /node_modules/wrap-ansi/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (https://sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /node_modules/wrap-ansi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wrap-ansi", 3 | "version": "7.0.0", 4 | "description": "Wordwrap a string with ANSI escape codes", 5 | "license": "MIT", 6 | "repository": "chalk/wrap-ansi", 7 | "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", 8 | "author": { 9 | "name": "Sindre Sorhus", 10 | "email": "sindresorhus@gmail.com", 11 | "url": "https://sindresorhus.com" 12 | }, 13 | "engines": { 14 | "node": ">=10" 15 | }, 16 | "scripts": { 17 | "test": "xo && nyc ava" 18 | }, 19 | "files": [ 20 | "index.js" 21 | ], 22 | "keywords": [ 23 | "wrap", 24 | "break", 25 | "wordwrap", 26 | "wordbreak", 27 | "linewrap", 28 | "ansi", 29 | "styles", 30 | "color", 31 | "colour", 32 | "colors", 33 | "terminal", 34 | "console", 35 | "cli", 36 | "string", 37 | "tty", 38 | "escape", 39 | "formatting", 40 | "rgb", 41 | "256", 42 | "shell", 43 | "xterm", 44 | "log", 45 | "logging", 46 | "command-line", 47 | "text" 48 | ], 49 | "dependencies": { 50 | "ansi-styles": "^4.0.0", 51 | "string-width": "^4.1.0", 52 | "strip-ansi": "^6.0.0" 53 | }, 54 | "devDependencies": { 55 | "ava": "^2.1.0", 56 | "chalk": "^4.0.0", 57 | "coveralls": "^3.0.3", 58 | "has-ansi": "^4.0.0", 59 | "nyc": "^15.0.1", 60 | "xo": "^0.29.1" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /node_modules/wrap-ansi/readme.md: -------------------------------------------------------------------------------- 1 | # wrap-ansi [![Build Status](https://travis-ci.com/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.com/chalk/wrap-ansi) [![Coverage Status](https://coveralls.io/repos/github/chalk/wrap-ansi/badge.svg?branch=master)](https://coveralls.io/github/chalk/wrap-ansi?branch=master) 2 | 3 | > Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) 4 | 5 | ## Install 6 | 7 | ``` 8 | $ npm install wrap-ansi 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | const chalk = require('chalk'); 15 | const wrapAnsi = require('wrap-ansi'); 16 | 17 | const input = 'The quick brown ' + chalk.red('fox jumped over ') + 18 | 'the lazy ' + chalk.green('dog and then ran away with the unicorn.'); 19 | 20 | console.log(wrapAnsi(input, 20)); 21 | ``` 22 | 23 | 24 | 25 | ## API 26 | 27 | ### wrapAnsi(string, columns, options?) 28 | 29 | Wrap words to the specified column width. 30 | 31 | #### string 32 | 33 | Type: `string` 34 | 35 | String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`. 36 | 37 | #### columns 38 | 39 | Type: `number` 40 | 41 | Number of columns to wrap the text to. 42 | 43 | #### options 44 | 45 | Type: `object` 46 | 47 | ##### hard 48 | 49 | Type: `boolean`\ 50 | Default: `false` 51 | 52 | By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width. 53 | 54 | ##### wordWrap 55 | 56 | Type: `boolean`\ 57 | Default: `true` 58 | 59 | By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary. 60 | 61 | ##### trim 62 | 63 | Type: `boolean`\ 64 | Default: `true` 65 | 66 | Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim. 67 | 68 | ## Related 69 | 70 | - [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes 71 | - [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal 72 | - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 73 | - [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures. 74 | 75 | ## Maintainers 76 | 77 | - [Sindre Sorhus](https://github.com/sindresorhus) 78 | - [Josh Junon](https://github.com/qix-) 79 | - [Benjamin Coe](https://github.com/bcoe) 80 | 81 | --- 82 | 83 |
84 | 85 | Get professional support for this package with a Tidelift subscription 86 | 87 |
88 | 89 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 90 |
91 |
92 | -------------------------------------------------------------------------------- /node_modules/y18n/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | ### [5.0.8](https://www.github.com/yargs/y18n/compare/v5.0.7...v5.0.8) (2021-04-07) 6 | 7 | 8 | ### Bug Fixes 9 | 10 | * **deno:** force modern release for Deno ([b1c215a](https://www.github.com/yargs/y18n/commit/b1c215aed714bee5830e76de3e335504dc2c4dab)) 11 | 12 | ### [5.0.7](https://www.github.com/yargs/y18n/compare/v5.0.6...v5.0.7) (2021-04-07) 13 | 14 | 15 | ### Bug Fixes 16 | 17 | * **deno:** force release for deno ([#121](https://www.github.com/yargs/y18n/issues/121)) ([d3f2560](https://www.github.com/yargs/y18n/commit/d3f2560e6cedf2bfa2352e9eec044da53f9a06b2)) 18 | 19 | ### [5.0.6](https://www.github.com/yargs/y18n/compare/v5.0.5...v5.0.6) (2021-04-05) 20 | 21 | 22 | ### Bug Fixes 23 | 24 | * **webpack:** skip readFileSync if not defined ([#117](https://www.github.com/yargs/y18n/issues/117)) ([6966fa9](https://www.github.com/yargs/y18n/commit/6966fa91d2881cc6a6c531e836099e01f4da1616)) 25 | 26 | ### [5.0.5](https://www.github.com/yargs/y18n/compare/v5.0.4...v5.0.5) (2020-10-25) 27 | 28 | 29 | ### Bug Fixes 30 | 31 | * address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/a9ac604abf756dec9687be3843e2c93bfe581f25)) 32 | 33 | ### [5.0.4](https://www.github.com/yargs/y18n/compare/v5.0.3...v5.0.4) (2020-10-16) 34 | 35 | 36 | ### Bug Fixes 37 | 38 | * **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#105](https://www.github.com/yargs/y18n/issues/105)) ([4f85d80](https://www.github.com/yargs/y18n/commit/4f85d80dbaae6d2c7899ae394f7ad97805df4886)) 39 | 40 | ### [5.0.3](https://www.github.com/yargs/y18n/compare/v5.0.2...v5.0.3) (2020-10-16) 41 | 42 | 43 | ### Bug Fixes 44 | 45 | * **exports:** node 13.0-13.6 require a string fallback ([#103](https://www.github.com/yargs/y18n/issues/103)) ([e39921e](https://www.github.com/yargs/y18n/commit/e39921e1017f88f5d8ea97ddea854ffe92d68e74)) 46 | 47 | ### [5.0.2](https://www.github.com/yargs/y18n/compare/v5.0.1...v5.0.2) (2020-10-01) 48 | 49 | 50 | ### Bug Fixes 51 | 52 | * **deno:** update types for deno ^1.4.0 ([#100](https://www.github.com/yargs/y18n/issues/100)) ([3834d9a](https://www.github.com/yargs/y18n/commit/3834d9ab1332f2937c935ada5e76623290efae81)) 53 | 54 | ### [5.0.1](https://www.github.com/yargs/y18n/compare/v5.0.0...v5.0.1) (2020-09-05) 55 | 56 | 57 | ### Bug Fixes 58 | 59 | * main had old index path ([#98](https://www.github.com/yargs/y18n/issues/98)) ([124f7b0](https://www.github.com/yargs/y18n/commit/124f7b047ba9596bdbdf64459988304e77f3de1b)) 60 | 61 | ## [5.0.0](https://www.github.com/yargs/y18n/compare/v4.0.0...v5.0.0) (2020-09-05) 62 | 63 | 64 | ### ⚠ BREAKING CHANGES 65 | 66 | * exports maps are now used, which modifies import behavior. 67 | * drops Node 6 and 4. begin following Node.js LTS schedule (#89) 68 | 69 | ### Features 70 | 71 | * add support for ESM and Deno [#95](https://www.github.com/yargs/y18n/issues/95)) ([4d7ae94](https://www.github.com/yargs/y18n/commit/4d7ae94bcb42e84164e2180366474b1cd321ed94)) 72 | 73 | 74 | ### Build System 75 | 76 | * drops Node 6 and 4. begin following Node.js LTS schedule ([#89](https://www.github.com/yargs/y18n/issues/89)) ([3cc0c28](https://www.github.com/yargs/y18n/commit/3cc0c287240727b84eaf1927f903612ec80f5e43)) 77 | 78 | ### 4.0.1 (2020-10-25) 79 | 80 | 81 | ### Bug Fixes 82 | 83 | * address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/7de58ca0d315990cdb38234e97fc66254cdbcd71)) 84 | 85 | ## [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10) 86 | 87 | 88 | ### Bug Fixes 89 | 90 | * allow support for falsy values like 0 in tagged literal ([#45](https://github.com/yargs/y18n/issues/45)) ([c926123](https://github.com/yargs/y18n/commit/c926123)) 91 | 92 | 93 | ### Features 94 | 95 | * **__:** added tagged template literal support ([#44](https://github.com/yargs/y18n/issues/44)) ([0598daf](https://github.com/yargs/y18n/commit/0598daf)) 96 | 97 | 98 | ### BREAKING CHANGES 99 | 100 | * **__:** dropping Node 0.10/Node 0.12 support 101 | -------------------------------------------------------------------------------- /node_modules/y18n/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose 4 | with or without fee is hereby granted, provided that the above copyright notice 5 | and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 11 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 12 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 13 | THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /node_modules/y18n/README.md: -------------------------------------------------------------------------------- 1 | # y18n 2 | 3 | [![NPM version][npm-image]][npm-url] 4 | [![js-standard-style][standard-image]][standard-url] 5 | [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) 6 | 7 | The bare-bones internationalization library used by yargs. 8 | 9 | Inspired by [i18n](https://www.npmjs.com/package/i18n). 10 | 11 | ## Examples 12 | 13 | _simple string translation:_ 14 | 15 | ```js 16 | const __ = require('y18n')().__; 17 | 18 | console.log(__('my awesome string %s', 'foo')); 19 | ``` 20 | 21 | output: 22 | 23 | `my awesome string foo` 24 | 25 | _using tagged template literals_ 26 | 27 | ```js 28 | const __ = require('y18n')().__; 29 | 30 | const str = 'foo'; 31 | 32 | console.log(__`my awesome string ${str}`); 33 | ``` 34 | 35 | output: 36 | 37 | `my awesome string foo` 38 | 39 | _pluralization support:_ 40 | 41 | ```js 42 | const __n = require('y18n')().__n; 43 | 44 | console.log(__n('one fish %s', '%d fishes %s', 2, 'foo')); 45 | ``` 46 | 47 | output: 48 | 49 | `2 fishes foo` 50 | 51 | ## Deno Example 52 | 53 | As of `v5` `y18n` supports [Deno](https://github.com/denoland/deno): 54 | 55 | ```typescript 56 | import y18n from "https://deno.land/x/y18n/deno.ts"; 57 | 58 | const __ = y18n({ 59 | locale: 'pirate', 60 | directory: './test/locales' 61 | }).__ 62 | 63 | console.info(__`Hi, ${'Ben'} ${'Coe'}!`) 64 | ``` 65 | 66 | You will need to run with `--allow-read` to load alternative locales. 67 | 68 | ## JSON Language Files 69 | 70 | The JSON language files should be stored in a `./locales` folder. 71 | File names correspond to locales, e.g., `en.json`, `pirate.json`. 72 | 73 | When strings are observed for the first time they will be 74 | added to the JSON file corresponding to the current locale. 75 | 76 | ## Methods 77 | 78 | ### require('y18n')(config) 79 | 80 | Create an instance of y18n with the config provided, options include: 81 | 82 | * `directory`: the locale directory, default `./locales`. 83 | * `updateFiles`: should newly observed strings be updated in file, default `true`. 84 | * `locale`: what locale should be used. 85 | * `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`) 86 | be allowed if a file matching the locale does not exist (e.g. `en_US.json`), 87 | default `true`. 88 | 89 | ### y18n.\_\_(str, arg, arg, arg) 90 | 91 | Print a localized string, `%s` will be replaced with `arg`s. 92 | 93 | This function can also be used as a tag for a template literal. You can use it 94 | like this: __`hello ${'world'}`. This will be equivalent to 95 | `__('hello %s', 'world')`. 96 | 97 | ### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg) 98 | 99 | Print a localized string with appropriate pluralization. If `%d` is provided 100 | in the string, the `count` will replace this placeholder. 101 | 102 | ### y18n.setLocale(str) 103 | 104 | Set the current locale being used. 105 | 106 | ### y18n.getLocale() 107 | 108 | What locale is currently being used? 109 | 110 | ### y18n.updateLocale(obj) 111 | 112 | Update the current locale with the key value pairs in `obj`. 113 | 114 | ## Supported Node.js Versions 115 | 116 | Libraries in this ecosystem make a best effort to track 117 | [Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a 118 | post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). 119 | 120 | ## License 121 | 122 | ISC 123 | 124 | [npm-url]: https://npmjs.org/package/y18n 125 | [npm-image]: https://img.shields.io/npm/v/y18n.svg 126 | [standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg 127 | [standard-url]: https://github.com/feross/standard 128 | -------------------------------------------------------------------------------- /node_modules/y18n/build/lib/cjs.js: -------------------------------------------------------------------------------- 1 | import { y18n as _y18n } from './index.js'; 2 | import nodePlatformShim from './platform-shims/node.js'; 3 | const y18n = (opts) => { 4 | return _y18n(opts, nodePlatformShim); 5 | }; 6 | export default y18n; 7 | -------------------------------------------------------------------------------- /node_modules/y18n/build/lib/platform-shims/node.js: -------------------------------------------------------------------------------- 1 | import { readFileSync, statSync, writeFile } from 'fs'; 2 | import { format } from 'util'; 3 | import { resolve } from 'path'; 4 | export default { 5 | fs: { 6 | readFileSync, 7 | writeFile 8 | }, 9 | format, 10 | resolve, 11 | exists: (file) => { 12 | try { 13 | return statSync(file).isFile(); 14 | } 15 | catch (err) { 16 | return false; 17 | } 18 | } 19 | }; 20 | -------------------------------------------------------------------------------- /node_modules/y18n/index.mjs: -------------------------------------------------------------------------------- 1 | import shim from './build/lib/platform-shims/node.js' 2 | import { y18n as _y18n } from './build/lib/index.js' 3 | 4 | const y18n = (opts) => { 5 | return _y18n(opts, shim) 6 | } 7 | 8 | export default y18n 9 | -------------------------------------------------------------------------------- /node_modules/y18n/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "y18n", 3 | "version": "5.0.8", 4 | "description": "the bare-bones internationalization library used by yargs", 5 | "exports": { 6 | ".": [ 7 | { 8 | "import": "./index.mjs", 9 | "require": "./build/index.cjs" 10 | }, 11 | "./build/index.cjs" 12 | ] 13 | }, 14 | "type": "module", 15 | "module": "./build/lib/index.js", 16 | "keywords": [ 17 | "i18n", 18 | "internationalization", 19 | "yargs" 20 | ], 21 | "homepage": "https://github.com/yargs/y18n", 22 | "bugs": { 23 | "url": "https://github.com/yargs/y18n/issues" 24 | }, 25 | "repository": "yargs/y18n", 26 | "license": "ISC", 27 | "author": "Ben Coe ", 28 | "main": "./build/index.cjs", 29 | "scripts": { 30 | "check": "standardx **/*.ts **/*.cjs **/*.mjs", 31 | "fix": "standardx --fix **/*.ts **/*.cjs **/*.mjs", 32 | "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", 33 | "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", 34 | "test:esm": "c8 --reporter=text --reporter=html mocha test/esm/*.mjs", 35 | "posttest": "npm run check", 36 | "coverage": "c8 report --check-coverage", 37 | "precompile": "rimraf build", 38 | "compile": "tsc", 39 | "postcompile": "npm run build:cjs", 40 | "build:cjs": "rollup -c", 41 | "prepare": "npm run compile" 42 | }, 43 | "devDependencies": { 44 | "@types/node": "^14.6.4", 45 | "@wessberg/rollup-plugin-ts": "^1.3.1", 46 | "c8": "^7.3.0", 47 | "chai": "^4.0.1", 48 | "cross-env": "^7.0.2", 49 | "gts": "^3.0.0", 50 | "mocha": "^8.0.0", 51 | "rimraf": "^3.0.2", 52 | "rollup": "^2.26.10", 53 | "standardx": "^7.0.0", 54 | "ts-transform-default-export": "^1.0.2", 55 | "typescript": "^4.0.0" 56 | }, 57 | "files": [ 58 | "build", 59 | "index.mjs", 60 | "!*.d.ts" 61 | ], 62 | "engines": { 63 | "node": ">=10" 64 | }, 65 | "standardx": { 66 | "ignore": [ 67 | "build" 68 | ] 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Contributors 2 | 3 | Permission to use, copy, modify, and/or distribute this software 4 | for any purpose with or without fee is hereby granted, provided 5 | that the above copyright notice and this permission notice 6 | appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 10 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE 11 | LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES 12 | OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 13 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 14 | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/browser.js: -------------------------------------------------------------------------------- 1 | // Main entrypoint for ESM web browser environments. Avoids using Node.js 2 | // specific libraries, such as "path". 3 | // 4 | // TODO: figure out reasonable web equivalents for "resolve", "normalize", etc. 5 | import { camelCase, decamelize, looksLikeNumber } from './build/lib/string-utils.js' 6 | import { YargsParser } from './build/lib/yargs-parser.js' 7 | const parser = new YargsParser({ 8 | cwd: () => { return '' }, 9 | format: (str, arg) => { return str.replace('%s', arg) }, 10 | normalize: (str) => { return str }, 11 | resolve: (str) => { return str }, 12 | require: () => { 13 | throw Error('loading config from files not currently supported in browser') 14 | }, 15 | env: () => {} 16 | }) 17 | 18 | const yargsParser = function Parser (args, opts) { 19 | const result = parser.parse(args.slice(), opts) 20 | return result.argv 21 | } 22 | yargsParser.detailed = function (args, opts) { 23 | return parser.parse(args.slice(), opts) 24 | } 25 | yargsParser.camelCase = camelCase 26 | yargsParser.decamelize = decamelize 27 | yargsParser.looksLikeNumber = looksLikeNumber 28 | 29 | export default yargsParser 30 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/build/lib/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js 3 | * CJS and ESM environments. 4 | * 5 | * @license 6 | * Copyright (c) 2016, Contributors 7 | * SPDX-License-Identifier: ISC 8 | */ 9 | import { format } from 'util'; 10 | import { normalize, resolve } from 'path'; 11 | import { camelCase, decamelize, looksLikeNumber } from './string-utils.js'; 12 | import { YargsParser } from './yargs-parser.js'; 13 | import { readFileSync } from 'fs'; 14 | // See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our 15 | // version support policy. The YARGS_MIN_NODE_VERSION is used for testing only. 16 | const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION) 17 | ? Number(process.env.YARGS_MIN_NODE_VERSION) 18 | : 12; 19 | if (process && process.version) { 20 | const major = Number(process.version.match(/v([^.]+)/)[1]); 21 | if (major < minNodeVersion) { 22 | throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`); 23 | } 24 | } 25 | // Creates a yargs-parser instance using Node.js standard libraries: 26 | const env = process ? process.env : {}; 27 | const parser = new YargsParser({ 28 | cwd: process.cwd, 29 | env: () => { 30 | return env; 31 | }, 32 | format, 33 | normalize, 34 | resolve, 35 | // TODO: figure out a way to combine ESM and CJS coverage, such that 36 | // we can exercise all the lines below: 37 | require: (path) => { 38 | if (typeof require !== 'undefined') { 39 | return require(path); 40 | } 41 | else if (path.match(/\.json$/)) { 42 | // Addresses: https://github.com/yargs/yargs/issues/2040 43 | return JSON.parse(readFileSync(path, 'utf8')); 44 | } 45 | else { 46 | throw Error('only .json config files are supported in ESM'); 47 | } 48 | } 49 | }); 50 | const yargsParser = function Parser(args, opts) { 51 | const result = parser.parse(args.slice(), opts); 52 | return result.argv; 53 | }; 54 | yargsParser.detailed = function (args, opts) { 55 | return parser.parse(args.slice(), opts); 56 | }; 57 | yargsParser.camelCase = camelCase; 58 | yargsParser.decamelize = decamelize; 59 | yargsParser.looksLikeNumber = looksLikeNumber; 60 | export default yargsParser; 61 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/build/lib/string-utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright (c) 2016, Contributors 4 | * SPDX-License-Identifier: ISC 5 | */ 6 | export function camelCase(str) { 7 | // Handle the case where an argument is provided as camel case, e.g., fooBar. 8 | // by ensuring that the string isn't already mixed case: 9 | const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); 10 | if (!isCamelCase) { 11 | str = str.toLowerCase(); 12 | } 13 | if (str.indexOf('-') === -1 && str.indexOf('_') === -1) { 14 | return str; 15 | } 16 | else { 17 | let camelcase = ''; 18 | let nextChrUpper = false; 19 | const leadingHyphens = str.match(/^-+/); 20 | for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) { 21 | let chr = str.charAt(i); 22 | if (nextChrUpper) { 23 | nextChrUpper = false; 24 | chr = chr.toUpperCase(); 25 | } 26 | if (i !== 0 && (chr === '-' || chr === '_')) { 27 | nextChrUpper = true; 28 | } 29 | else if (chr !== '-' && chr !== '_') { 30 | camelcase += chr; 31 | } 32 | } 33 | return camelcase; 34 | } 35 | } 36 | export function decamelize(str, joinString) { 37 | const lowercase = str.toLowerCase(); 38 | joinString = joinString || '-'; 39 | let notCamelcase = ''; 40 | for (let i = 0; i < str.length; i++) { 41 | const chrLower = lowercase.charAt(i); 42 | const chrString = str.charAt(i); 43 | if (chrLower !== chrString && i > 0) { 44 | notCamelcase += `${joinString}${lowercase.charAt(i)}`; 45 | } 46 | else { 47 | notCamelcase += chrString; 48 | } 49 | } 50 | return notCamelcase; 51 | } 52 | export function looksLikeNumber(x) { 53 | if (x === null || x === undefined) 54 | return false; 55 | // if loaded from config, may already be a number. 56 | if (typeof x === 'number') 57 | return true; 58 | // hexadecimal. 59 | if (/^0x[0-9a-f]+$/i.test(x)) 60 | return true; 61 | // don't treat 0123 as a number; as it drops the leading '0'. 62 | if (/^0[^.]/.test(x)) 63 | return false; 64 | return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); 65 | } 66 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/build/lib/tokenize-arg-string.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright (c) 2016, Contributors 4 | * SPDX-License-Identifier: ISC 5 | */ 6 | // take an un-split argv string and tokenize it. 7 | export function tokenizeArgString(argString) { 8 | if (Array.isArray(argString)) { 9 | return argString.map(e => typeof e !== 'string' ? e + '' : e); 10 | } 11 | argString = argString.trim(); 12 | let i = 0; 13 | let prevC = null; 14 | let c = null; 15 | let opening = null; 16 | const args = []; 17 | for (let ii = 0; ii < argString.length; ii++) { 18 | prevC = c; 19 | c = argString.charAt(ii); 20 | // split on spaces unless we're in quotes. 21 | if (c === ' ' && !opening) { 22 | if (!(prevC === ' ')) { 23 | i++; 24 | } 25 | continue; 26 | } 27 | // don't split the string if we're in matching 28 | // opening or closing single and double quotes. 29 | if (c === opening) { 30 | opening = null; 31 | } 32 | else if ((c === "'" || c === '"') && !opening) { 33 | opening = c; 34 | } 35 | if (!args[i]) 36 | args[i] = ''; 37 | args[i] += c; 38 | } 39 | return args; 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/build/lib/yargs-parser-types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license 3 | * Copyright (c) 2016, Contributors 4 | * SPDX-License-Identifier: ISC 5 | */ 6 | export var DefaultValuesForTypeKey; 7 | (function (DefaultValuesForTypeKey) { 8 | DefaultValuesForTypeKey["BOOLEAN"] = "boolean"; 9 | DefaultValuesForTypeKey["STRING"] = "string"; 10 | DefaultValuesForTypeKey["NUMBER"] = "number"; 11 | DefaultValuesForTypeKey["ARRAY"] = "array"; 12 | })(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); 13 | -------------------------------------------------------------------------------- /node_modules/yargs-parser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yargs-parser", 3 | "version": "21.0.1", 4 | "description": "the mighty option parser used by yargs", 5 | "main": "build/index.cjs", 6 | "exports": { 7 | ".": [ 8 | { 9 | "import": "./build/lib/index.js", 10 | "require": "./build/index.cjs" 11 | }, 12 | "./build/index.cjs" 13 | ] 14 | }, 15 | "type": "module", 16 | "module": "./build/lib/index.js", 17 | "scripts": { 18 | "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", 19 | "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", 20 | "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", 21 | "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", 22 | "test:esm": "c8 --reporter=text --reporter=html mocha test/*.mjs", 23 | "test:browser": "start-server-and-test 'serve ./ -p 8080' http://127.0.0.1:8080/package.json 'node ./test/browser/yargs-test.cjs'", 24 | "pretest:typescript": "npm run pretest", 25 | "test:typescript": "c8 mocha ./build/test/typescript/*.js", 26 | "coverage": "c8 report --check-coverage", 27 | "precompile": "rimraf build", 28 | "compile": "tsc", 29 | "postcompile": "npm run build:cjs", 30 | "build:cjs": "rollup -c", 31 | "prepare": "npm run compile" 32 | }, 33 | "repository": { 34 | "type": "git", 35 | "url": "https://github.com/yargs/yargs-parser.git" 36 | }, 37 | "keywords": [ 38 | "argument", 39 | "parser", 40 | "yargs", 41 | "command", 42 | "cli", 43 | "parsing", 44 | "option", 45 | "args", 46 | "argument" 47 | ], 48 | "author": "Ben Coe ", 49 | "license": "ISC", 50 | "devDependencies": { 51 | "@types/chai": "^4.2.11", 52 | "@types/mocha": "^9.0.0", 53 | "@types/node": "^16.11.4", 54 | "@typescript-eslint/eslint-plugin": "^3.10.1", 55 | "@typescript-eslint/parser": "^3.10.1", 56 | "c8": "^7.3.0", 57 | "chai": "^4.2.0", 58 | "cross-env": "^7.0.2", 59 | "eslint": "^7.0.0", 60 | "eslint-plugin-import": "^2.20.1", 61 | "eslint-plugin-node": "^11.0.0", 62 | "gts": "^3.0.0", 63 | "mocha": "^9.0.0", 64 | "puppeteer": "^13.4.0", 65 | "rimraf": "^3.0.2", 66 | "rollup": "^2.22.1", 67 | "rollup-plugin-cleanup": "^3.1.1", 68 | "rollup-plugin-ts": "^2.0.5", 69 | "serve": "^13.0.0", 70 | "standardx": "^7.0.0", 71 | "start-server-and-test": "^1.11.2", 72 | "ts-transform-default-export": "^1.0.2", 73 | "typescript": "^4.0.0" 74 | }, 75 | "files": [ 76 | "browser.js", 77 | "build", 78 | "!*.d.ts" 79 | ], 80 | "engines": { 81 | "node": ">=12" 82 | }, 83 | "standardx": { 84 | "ignore": [ 85 | "build" 86 | ] 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /node_modules/yargs/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /node_modules/yargs/browser.mjs: -------------------------------------------------------------------------------- 1 | // Bootstrap yargs for browser: 2 | import browserPlatformShim from './lib/platform-shims/browser.mjs'; 3 | import {YargsFactory} from './build/lib/yargs-factory.js'; 4 | 5 | const Yargs = YargsFactory(browserPlatformShim); 6 | 7 | export default Yargs; 8 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/argsert.js: -------------------------------------------------------------------------------- 1 | import { YError } from './yerror.js'; 2 | import { parseCommand } from './parse-command.js'; 3 | const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']; 4 | export function argsert(arg1, arg2, arg3) { 5 | function parseArgs() { 6 | return typeof arg1 === 'object' 7 | ? [{ demanded: [], optional: [] }, arg1, arg2] 8 | : [ 9 | parseCommand(`cmd ${arg1}`), 10 | arg2, 11 | arg3, 12 | ]; 13 | } 14 | try { 15 | let position = 0; 16 | const [parsed, callerArguments, _length] = parseArgs(); 17 | const args = [].slice.call(callerArguments); 18 | while (args.length && args[args.length - 1] === undefined) 19 | args.pop(); 20 | const length = _length || args.length; 21 | if (length < parsed.demanded.length) { 22 | throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`); 23 | } 24 | const totalCommands = parsed.demanded.length + parsed.optional.length; 25 | if (length > totalCommands) { 26 | throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`); 27 | } 28 | parsed.demanded.forEach(demanded => { 29 | const arg = args.shift(); 30 | const observedType = guessType(arg); 31 | const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*'); 32 | if (matchingTypes.length === 0) 33 | argumentTypeError(observedType, demanded.cmd, position); 34 | position += 1; 35 | }); 36 | parsed.optional.forEach(optional => { 37 | if (args.length === 0) 38 | return; 39 | const arg = args.shift(); 40 | const observedType = guessType(arg); 41 | const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*'); 42 | if (matchingTypes.length === 0) 43 | argumentTypeError(observedType, optional.cmd, position); 44 | position += 1; 45 | }); 46 | } 47 | catch (err) { 48 | console.warn(err.stack); 49 | } 50 | } 51 | function guessType(arg) { 52 | if (Array.isArray(arg)) { 53 | return 'array'; 54 | } 55 | else if (arg === null) { 56 | return 'null'; 57 | } 58 | return typeof arg; 59 | } 60 | function argumentTypeError(observedType, allowedTypes, position) { 61 | throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`); 62 | } 63 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/completion-templates.js: -------------------------------------------------------------------------------- 1 | export const completionShTemplate = `###-begin-{{app_name}}-completions-### 2 | # 3 | # yargs command completion script 4 | # 5 | # Installation: {{app_path}} {{completion_command}} >> ~/.bashrc 6 | # or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX. 7 | # 8 | _{{app_name}}_yargs_completions() 9 | { 10 | local cur_word args type_list 11 | 12 | cur_word="\${COMP_WORDS[COMP_CWORD]}" 13 | args=("\${COMP_WORDS[@]}") 14 | 15 | # ask yargs to generate completions. 16 | type_list=$({{app_path}} --get-yargs-completions "\${args[@]}") 17 | 18 | COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) ) 19 | 20 | # if no match was found, fall back to filename completion 21 | if [ \${#COMPREPLY[@]} -eq 0 ]; then 22 | COMPREPLY=() 23 | fi 24 | 25 | return 0 26 | } 27 | complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}} 28 | ###-end-{{app_name}}-completions-### 29 | `; 30 | export const completionZshTemplate = `#compdef {{app_name}} 31 | ###-begin-{{app_name}}-completions-### 32 | # 33 | # yargs command completion script 34 | # 35 | # Installation: {{app_path}} {{completion_command}} >> ~/.zshrc 36 | # or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX. 37 | # 38 | _{{app_name}}_yargs_completions() 39 | { 40 | local reply 41 | local si=$IFS 42 | IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}")) 43 | IFS=$si 44 | _describe 'values' reply 45 | } 46 | compdef _{{app_name}}_yargs_completions {{app_name}} 47 | ###-end-{{app_name}}-completions-### 48 | `; 49 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/middleware.js: -------------------------------------------------------------------------------- 1 | import { argsert } from './argsert.js'; 2 | import { isPromise } from './utils/is-promise.js'; 3 | export class GlobalMiddleware { 4 | constructor(yargs) { 5 | this.globalMiddleware = []; 6 | this.frozens = []; 7 | this.yargs = yargs; 8 | } 9 | addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) { 10 | argsert(' [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length); 11 | if (Array.isArray(callback)) { 12 | for (let i = 0; i < callback.length; i++) { 13 | if (typeof callback[i] !== 'function') { 14 | throw Error('middleware must be a function'); 15 | } 16 | const m = callback[i]; 17 | m.applyBeforeValidation = applyBeforeValidation; 18 | m.global = global; 19 | } 20 | Array.prototype.push.apply(this.globalMiddleware, callback); 21 | } 22 | else if (typeof callback === 'function') { 23 | const m = callback; 24 | m.applyBeforeValidation = applyBeforeValidation; 25 | m.global = global; 26 | m.mutates = mutates; 27 | this.globalMiddleware.push(callback); 28 | } 29 | return this.yargs; 30 | } 31 | addCoerceMiddleware(callback, option) { 32 | const aliases = this.yargs.getAliases(); 33 | this.globalMiddleware = this.globalMiddleware.filter(m => { 34 | const toCheck = [...(aliases[option] || []), option]; 35 | if (!m.option) 36 | return true; 37 | else 38 | return !toCheck.includes(m.option); 39 | }); 40 | callback.option = option; 41 | return this.addMiddleware(callback, true, true, true); 42 | } 43 | getMiddleware() { 44 | return this.globalMiddleware; 45 | } 46 | freeze() { 47 | this.frozens.push([...this.globalMiddleware]); 48 | } 49 | unfreeze() { 50 | const frozen = this.frozens.pop(); 51 | if (frozen !== undefined) 52 | this.globalMiddleware = frozen; 53 | } 54 | reset() { 55 | this.globalMiddleware = this.globalMiddleware.filter(m => m.global); 56 | } 57 | } 58 | export function commandMiddlewareFactory(commandMiddleware) { 59 | if (!commandMiddleware) 60 | return []; 61 | return commandMiddleware.map(middleware => { 62 | middleware.applyBeforeValidation = false; 63 | return middleware; 64 | }); 65 | } 66 | export function applyMiddleware(argv, yargs, middlewares, beforeValidation) { 67 | return middlewares.reduce((acc, middleware) => { 68 | if (middleware.applyBeforeValidation !== beforeValidation) { 69 | return acc; 70 | } 71 | if (middleware.mutates) { 72 | if (middleware.applied) 73 | return acc; 74 | middleware.applied = true; 75 | } 76 | if (isPromise(acc)) { 77 | return acc 78 | .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)])) 79 | .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj)); 80 | } 81 | else { 82 | const result = middleware(acc, yargs); 83 | return isPromise(result) 84 | ? result.then(middlewareObj => Object.assign(acc, middlewareObj)) 85 | : Object.assign(acc, result); 86 | } 87 | }, argv); 88 | } 89 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/parse-command.js: -------------------------------------------------------------------------------- 1 | export function parseCommand(cmd) { 2 | const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' '); 3 | const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/); 4 | const bregex = /\.*[\][<>]/g; 5 | const firstCommand = splitCommand.shift(); 6 | if (!firstCommand) 7 | throw new Error(`No command found in: ${cmd}`); 8 | const parsedCommand = { 9 | cmd: firstCommand.replace(bregex, ''), 10 | demanded: [], 11 | optional: [], 12 | }; 13 | splitCommand.forEach((cmd, i) => { 14 | let variadic = false; 15 | cmd = cmd.replace(/\s/g, ''); 16 | if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) 17 | variadic = true; 18 | if (/^\[/.test(cmd)) { 19 | parsedCommand.optional.push({ 20 | cmd: cmd.replace(bregex, '').split('|'), 21 | variadic, 22 | }); 23 | } 24 | else { 25 | parsedCommand.demanded.push({ 26 | cmd: cmd.replace(bregex, '').split('|'), 27 | variadic, 28 | }); 29 | } 30 | }); 31 | return parsedCommand; 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/typings/common-types.js: -------------------------------------------------------------------------------- 1 | export function assertNotStrictEqual(actual, expected, shim, message) { 2 | shim.assert.notStrictEqual(actual, expected, message); 3 | } 4 | export function assertSingleKey(actual, shim) { 5 | shim.assert.strictEqual(typeof actual, 'string'); 6 | } 7 | export function objectKeys(object) { 8 | return Object.keys(object); 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/typings/yargs-parser-types.js: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/apply-extends.js: -------------------------------------------------------------------------------- 1 | import { YError } from '../yerror.js'; 2 | let previouslyVisitedConfigs = []; 3 | let shim; 4 | export function applyExtends(config, cwd, mergeExtends, _shim) { 5 | shim = _shim; 6 | let defaultConfig = {}; 7 | if (Object.prototype.hasOwnProperty.call(config, 'extends')) { 8 | if (typeof config.extends !== 'string') 9 | return defaultConfig; 10 | const isPath = /\.json|\..*rc$/.test(config.extends); 11 | let pathToDefault = null; 12 | if (!isPath) { 13 | try { 14 | pathToDefault = require.resolve(config.extends); 15 | } 16 | catch (_err) { 17 | return config; 18 | } 19 | } 20 | else { 21 | pathToDefault = getPathToDefaultConfig(cwd, config.extends); 22 | } 23 | checkForCircularExtends(pathToDefault); 24 | previouslyVisitedConfigs.push(pathToDefault); 25 | defaultConfig = isPath 26 | ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8')) 27 | : require(config.extends); 28 | delete config.extends; 29 | defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim); 30 | } 31 | previouslyVisitedConfigs = []; 32 | return mergeExtends 33 | ? mergeDeep(defaultConfig, config) 34 | : Object.assign({}, defaultConfig, config); 35 | } 36 | function checkForCircularExtends(cfgPath) { 37 | if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { 38 | throw new YError(`Circular extended configurations: '${cfgPath}'.`); 39 | } 40 | } 41 | function getPathToDefaultConfig(cwd, pathToExtend) { 42 | return shim.path.resolve(cwd, pathToExtend); 43 | } 44 | function mergeDeep(config1, config2) { 45 | const target = {}; 46 | function isObject(obj) { 47 | return obj && typeof obj === 'object' && !Array.isArray(obj); 48 | } 49 | Object.assign(target, config1); 50 | for (const key of Object.keys(config2)) { 51 | if (isObject(config2[key]) && isObject(target[key])) { 52 | target[key] = mergeDeep(config1[key], config2[key]); 53 | } 54 | else { 55 | target[key] = config2[key]; 56 | } 57 | } 58 | return target; 59 | } 60 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/is-promise.js: -------------------------------------------------------------------------------- 1 | export function isPromise(maybePromise) { 2 | return (!!maybePromise && 3 | !!maybePromise.then && 4 | typeof maybePromise.then === 'function'); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/levenshtein.js: -------------------------------------------------------------------------------- 1 | export function levenshtein(a, b) { 2 | if (a.length === 0) 3 | return b.length; 4 | if (b.length === 0) 5 | return a.length; 6 | const matrix = []; 7 | let i; 8 | for (i = 0; i <= b.length; i++) { 9 | matrix[i] = [i]; 10 | } 11 | let j; 12 | for (j = 0; j <= a.length; j++) { 13 | matrix[0][j] = j; 14 | } 15 | for (i = 1; i <= b.length; i++) { 16 | for (j = 1; j <= a.length; j++) { 17 | if (b.charAt(i - 1) === a.charAt(j - 1)) { 18 | matrix[i][j] = matrix[i - 1][j - 1]; 19 | } 20 | else { 21 | if (i > 1 && 22 | j > 1 && 23 | b.charAt(i - 2) === a.charAt(j - 1) && 24 | b.charAt(i - 1) === a.charAt(j - 2)) { 25 | matrix[i][j] = matrix[i - 2][j - 2] + 1; 26 | } 27 | else { 28 | matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); 29 | } 30 | } 31 | } 32 | } 33 | return matrix[b.length][a.length]; 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/maybe-async-result.js: -------------------------------------------------------------------------------- 1 | import { isPromise } from './is-promise.js'; 2 | export function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => { 3 | throw err; 4 | }) { 5 | try { 6 | const result = isFunction(getResult) ? getResult() : getResult; 7 | return isPromise(result) 8 | ? result.then((result) => resultHandler(result)) 9 | : resultHandler(result); 10 | } 11 | catch (err) { 12 | return errorHandler(err); 13 | } 14 | } 15 | function isFunction(arg) { 16 | return typeof arg === 'function'; 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/obj-filter.js: -------------------------------------------------------------------------------- 1 | import { objectKeys } from '../typings/common-types.js'; 2 | export function objFilter(original = {}, filter = () => true) { 3 | const obj = {}; 4 | objectKeys(original).forEach(key => { 5 | if (filter(key, original[key])) { 6 | obj[key] = original[key]; 7 | } 8 | }); 9 | return obj; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/process-argv.js: -------------------------------------------------------------------------------- 1 | function getProcessArgvBinIndex() { 2 | if (isBundledElectronApp()) 3 | return 0; 4 | return 1; 5 | } 6 | function isBundledElectronApp() { 7 | return isElectronApp() && !process.defaultApp; 8 | } 9 | function isElectronApp() { 10 | return !!process.versions.electron; 11 | } 12 | export function hideBin(argv) { 13 | return argv.slice(getProcessArgvBinIndex() + 1); 14 | } 15 | export function getProcessArgvBin() { 16 | return process.argv[getProcessArgvBinIndex()]; 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/set-blocking.js: -------------------------------------------------------------------------------- 1 | export default function setBlocking(blocking) { 2 | if (typeof process === 'undefined') 3 | return; 4 | [process.stdout, process.stderr].forEach(_stream => { 5 | const stream = _stream; 6 | if (stream._handle && 7 | stream.isTTY && 8 | typeof stream._handle.setBlocking === 'function') { 9 | stream._handle.setBlocking(blocking); 10 | } 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/utils/which-module.js: -------------------------------------------------------------------------------- 1 | export default function whichModule(exported) { 2 | if (typeof require === 'undefined') 3 | return null; 4 | for (let i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) { 5 | mod = require.cache[files[i]]; 6 | if (mod.exports === exported) 7 | return mod; 8 | } 9 | return null; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/yargs/build/lib/yerror.js: -------------------------------------------------------------------------------- 1 | export class YError extends Error { 2 | constructor(msg) { 3 | super(msg || 'yargs error'); 4 | this.name = 'YError'; 5 | if (Error.captureStackTrace) { 6 | Error.captureStackTrace(this, YError); 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/yargs/helpers/helpers.mjs: -------------------------------------------------------------------------------- 1 | import {applyExtends as _applyExtends} from '../build/lib/utils/apply-extends.js'; 2 | import {hideBin} from '../build/lib/utils/process-argv.js'; 3 | import Parser from 'yargs-parser'; 4 | import shim from '../lib/platform-shims/esm.mjs'; 5 | 6 | const applyExtends = (config, cwd, mergeExtends) => { 7 | return _applyExtends(config, cwd, mergeExtends, shim); 8 | }; 9 | 10 | export {applyExtends, hideBin, Parser}; 11 | -------------------------------------------------------------------------------- /node_modules/yargs/helpers/index.js: -------------------------------------------------------------------------------- 1 | const { 2 | applyExtends, 3 | cjsPlatformShim, 4 | Parser, 5 | processArgv, 6 | } = require('../build/index.cjs'); 7 | 8 | module.exports = { 9 | applyExtends: (config, cwd, mergeExtends) => { 10 | return applyExtends(config, cwd, mergeExtends, cjsPlatformShim); 11 | }, 12 | hideBin: processArgv.hideBin, 13 | Parser, 14 | }; 15 | -------------------------------------------------------------------------------- /node_modules/yargs/helpers/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/yargs/index.cjs: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | // classic singleton yargs API, to use yargs 3 | // without running as a singleton do: 4 | // require('yargs/yargs')(process.argv.slice(2)) 5 | const {Yargs, processArgv} = require('./build/index.cjs'); 6 | 7 | Argv(processArgv.hideBin(process.argv)); 8 | 9 | module.exports = Argv; 10 | 11 | function Argv(processArgs, cwd) { 12 | const argv = Yargs(processArgs, cwd, require); 13 | singletonify(argv); 14 | // TODO(bcoe): warn if argv.parse() or argv.argv is used directly. 15 | return argv; 16 | } 17 | 18 | function defineGetter(obj, key, getter) { 19 | Object.defineProperty(obj, key, { 20 | configurable: true, 21 | enumerable: true, 22 | get: getter, 23 | }); 24 | } 25 | function lookupGetter(obj, key) { 26 | const desc = Object.getOwnPropertyDescriptor(obj, key); 27 | if (typeof desc !== 'undefined') { 28 | return desc.get; 29 | } 30 | } 31 | 32 | /* Hack an instance of Argv with process.argv into Argv 33 | so people can do 34 | require('yargs')(['--beeble=1','-z','zizzle']).argv 35 | to parse a list of args and 36 | require('yargs').argv 37 | to get a parsed version of process.argv. 38 | */ 39 | function singletonify(inst) { 40 | [ 41 | ...Object.keys(inst), 42 | ...Object.getOwnPropertyNames(inst.constructor.prototype), 43 | ].forEach(key => { 44 | if (key === 'argv') { 45 | defineGetter(Argv, key, lookupGetter(inst, key)); 46 | } else if (typeof inst[key] === 'function') { 47 | Argv[key] = inst[key].bind(inst); 48 | } else { 49 | defineGetter(Argv, '$0', () => inst.$0); 50 | defineGetter(Argv, 'parsed', () => inst.parsed); 51 | } 52 | }); 53 | } 54 | -------------------------------------------------------------------------------- /node_modules/yargs/index.mjs: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Bootstraps yargs for ESM: 4 | import esmPlatformShim from './lib/platform-shims/esm.mjs'; 5 | import {YargsFactory} from './build/lib/yargs-factory.js'; 6 | 7 | const Yargs = YargsFactory(esmPlatformShim); 8 | export default Yargs; 9 | -------------------------------------------------------------------------------- /node_modules/yargs/lib/platform-shims/browser.mjs: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-vars */ 2 | 'use strict'; 3 | 4 | import cliui from 'https://unpkg.com/cliui@7.0.1/index.mjs'; // eslint-disable-line 5 | import Parser from 'https://unpkg.com/yargs-parser@19.0.0/browser.js'; // eslint-disable-line 6 | import {getProcessArgvBin} from '../../build/lib/utils/process-argv.js'; 7 | import {YError} from '../../build/lib/yerror.js'; 8 | 9 | const REQUIRE_ERROR = 'require is not supported in browser'; 10 | const REQUIRE_DIRECTORY_ERROR = 11 | 'loading a directory of commands is not supported in browser'; 12 | 13 | export default { 14 | assert: { 15 | notStrictEqual: (a, b) => { 16 | // noop. 17 | }, 18 | strictEqual: (a, b) => { 19 | // noop. 20 | }, 21 | }, 22 | cliui, 23 | findUp: () => undefined, 24 | getEnv: key => { 25 | // There is no environment in browser: 26 | return undefined; 27 | }, 28 | inspect: console.log, 29 | getCallerFile: () => { 30 | throw new YError(REQUIRE_DIRECTORY_ERROR); 31 | }, 32 | getProcessArgvBin, 33 | mainFilename: 'yargs', 34 | Parser, 35 | path: { 36 | basename: str => str, 37 | dirname: str => str, 38 | extname: str => str, 39 | relative: str => str, 40 | }, 41 | process: { 42 | argv: () => [], 43 | cwd: () => '', 44 | emitWarning: (warning, name) => {}, 45 | execPath: () => '', 46 | // exit is noop browser: 47 | exit: () => {}, 48 | nextTick: cb => { 49 | // eslint-disable-next-line no-undef 50 | window.setTimeout(cb, 1); 51 | }, 52 | stdColumns: 80, 53 | }, 54 | readFileSync: () => { 55 | return ''; 56 | }, 57 | require: () => { 58 | throw new YError(REQUIRE_ERROR); 59 | }, 60 | requireDirectory: () => { 61 | throw new YError(REQUIRE_DIRECTORY_ERROR); 62 | }, 63 | stringWidth: str => { 64 | return [...str].length; 65 | }, 66 | // TODO: replace this with y18n once it's ported to ESM: 67 | y18n: { 68 | __: (...str) => { 69 | if (str.length === 0) return ''; 70 | const args = str.slice(1); 71 | return sprintf(str[0], ...args); 72 | }, 73 | __n: (str1, str2, count, ...args) => { 74 | if (count === 1) { 75 | return sprintf(str1, ...args); 76 | } else { 77 | return sprintf(str2, ...args); 78 | } 79 | }, 80 | getLocale: () => { 81 | return 'en_US'; 82 | }, 83 | setLocale: () => {}, 84 | updateLocale: () => {}, 85 | }, 86 | }; 87 | 88 | function sprintf(_str, ...args) { 89 | let str = ''; 90 | const split = _str.split('%s'); 91 | split.forEach((token, i) => { 92 | str += `${token}${split[i + 1] !== undefined && args[i] ? args[i] : ''}`; 93 | }); 94 | return str; 95 | } 96 | -------------------------------------------------------------------------------- /node_modules/yargs/lib/platform-shims/esm.mjs: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | import { notStrictEqual, strictEqual } from 'assert' 4 | import cliui from 'cliui' 5 | import escalade from 'escalade/sync' 6 | import { inspect } from 'util' 7 | import { readFileSync } from 'fs' 8 | import { fileURLToPath } from 'url'; 9 | import Parser from 'yargs-parser' 10 | import { basename, dirname, extname, relative, resolve } from 'path' 11 | import { getProcessArgvBin } from '../../build/lib/utils/process-argv.js' 12 | import { YError } from '../../build/lib/yerror.js' 13 | import y18n from 'y18n' 14 | 15 | const REQUIRE_ERROR = 'require is not supported by ESM' 16 | const REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM' 17 | 18 | let __dirname; 19 | try { 20 | __dirname = fileURLToPath(import.meta.url); 21 | } catch (e) { 22 | __dirname = process.cwd(); 23 | } 24 | const mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules')); 25 | 26 | export default { 27 | assert: { 28 | notStrictEqual, 29 | strictEqual 30 | }, 31 | cliui, 32 | findUp: escalade, 33 | getEnv: (key) => { 34 | return process.env[key] 35 | }, 36 | inspect, 37 | getCallerFile: () => { 38 | throw new YError(REQUIRE_DIRECTORY_ERROR) 39 | }, 40 | getProcessArgvBin, 41 | mainFilename: mainFilename || process.cwd(), 42 | Parser, 43 | path: { 44 | basename, 45 | dirname, 46 | extname, 47 | relative, 48 | resolve 49 | }, 50 | process: { 51 | argv: () => process.argv, 52 | cwd: process.cwd, 53 | emitWarning: (warning, type) => process.emitWarning(warning, type), 54 | execPath: () => process.execPath, 55 | exit: process.exit, 56 | nextTick: process.nextTick, 57 | stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null 58 | }, 59 | readFileSync, 60 | require: () => { 61 | throw new YError(REQUIRE_ERROR) 62 | }, 63 | requireDirectory: () => { 64 | throw new YError(REQUIRE_DIRECTORY_ERROR) 65 | }, 66 | stringWidth: (str) => { 67 | return [...str].length 68 | }, 69 | y18n: y18n({ 70 | directory: resolve(__dirname, '../../../locales'), 71 | updateFiles: false 72 | }) 73 | } 74 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/be.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Каманды:", 3 | "Options:": "Опцыі:", 4 | "Examples:": "Прыклады:", 5 | "boolean": "булевы тып", 6 | "count": "падлік", 7 | "string": "радковы тып", 8 | "number": "лік", 9 | "array": "масіў", 10 | "required": "неабходна", 11 | "default": "па змаўчанні", 12 | "default:": "па змаўчанні:", 13 | "choices:": "магчымасці:", 14 | "aliases:": "аліасы:", 15 | "generated-value": "згенераванае значэнне", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s", 18 | "other": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s", 22 | "other": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Не хапае значэння аргументу: %s", 26 | "other": "Не хапае значэнняў аргументаў: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Не хапае неабходнага аргументу: %s", 30 | "other": "Не хапае неабходных аргументаў: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Невядомы аргумент: %s", 34 | "other": "Невядомыя аргументы: %s" 35 | }, 36 | "Invalid values:": "Несапраўдныя значэння:", 37 | "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s", 38 | "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s", 39 | "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:", 40 | "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s", 41 | "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s", 42 | "Path to JSON config file": "Шлях да файла канфігурацыі JSON", 43 | "Show help": "Паказаць дапамогу", 44 | "Show version number": "Паказаць нумар версіі", 45 | "Did you mean %s?": "Вы мелі на ўвазе %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Kommandos:", 3 | "Options:": "Optionen:", 4 | "Examples:": "Beispiele:", 5 | "boolean": "boolean", 6 | "count": "Zähler", 7 | "string": "string", 8 | "number": "Zahl", 9 | "array": "array", 10 | "required": "erforderlich", 11 | "default": "Standard", 12 | "default:": "Standard:", 13 | "choices:": "Möglichkeiten:", 14 | "aliases:": "Aliase:", 15 | "generated-value": "Generierter-Wert", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt", 18 | "other": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt", 22 | "other": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Fehlender Argumentwert: %s", 26 | "other": "Fehlende Argumentwerte: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Fehlendes Argument: %s", 30 | "other": "Fehlende Argumente: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Unbekanntes Argument: %s", 34 | "other": "Unbekannte Argumente: %s" 35 | }, 36 | "Invalid values:": "Unzulässige Werte:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s", 38 | "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s", 39 | "Implications failed:": "Fehlende abhängige Argumente:", 40 | "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s", 41 | "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s", 42 | "Path to JSON config file": "Pfad zur JSON-Config Datei", 43 | "Show help": "Hilfe anzeigen", 44 | "Show version number": "Version anzeigen", 45 | "Did you mean %s?": "Meintest du %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Commands:", 3 | "Options:": "Options:", 4 | "Examples:": "Examples:", 5 | "boolean": "boolean", 6 | "count": "count", 7 | "string": "string", 8 | "number": "number", 9 | "array": "array", 10 | "required": "required", 11 | "default": "default", 12 | "default:": "default:", 13 | "choices:": "choices:", 14 | "aliases:": "aliases:", 15 | "generated-value": "generated-value", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Not enough non-option arguments: got %s, need at least %s", 18 | "other": "Not enough non-option arguments: got %s, need at least %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Too many non-option arguments: got %s, maximum of %s", 22 | "other": "Too many non-option arguments: got %s, maximum of %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Missing argument value: %s", 26 | "other": "Missing argument values: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Missing required argument: %s", 30 | "other": "Missing required arguments: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Unknown argument: %s", 34 | "other": "Unknown arguments: %s" 35 | }, 36 | "Invalid values:": "Invalid values:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s", 38 | "Argument check failed: %s": "Argument check failed: %s", 39 | "Implications failed:": "Missing dependent arguments:", 40 | "Not enough arguments following: %s": "Not enough arguments following: %s", 41 | "Invalid JSON config file: %s": "Invalid JSON config file: %s", 42 | "Path to JSON config file": "Path to JSON config file", 43 | "Show help": "Show help", 44 | "Show version number": "Show version number", 45 | "Did you mean %s?": "Did you mean %s?", 46 | "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive", 47 | "Positionals:": "Positionals:", 48 | "command": "command", 49 | "deprecated": "deprecated", 50 | "deprecated: %s": "deprecated: %s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Comandos:", 3 | "Options:": "Opciones:", 4 | "Examples:": "Ejemplos:", 5 | "boolean": "booleano", 6 | "count": "cuenta", 7 | "string": "cadena de caracteres", 8 | "number": "número", 9 | "array": "tabla", 10 | "required": "requerido", 11 | "default": "defecto", 12 | "default:": "defecto:", 13 | "choices:": "selección:", 14 | "aliases:": "alias:", 15 | "generated-value": "valor-generado", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s", 18 | "other": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s", 22 | "other": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Falta argumento: %s", 26 | "other": "Faltan argumentos: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Falta argumento requerido: %s", 30 | "other": "Faltan argumentos requeridos: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Argumento desconocido: %s", 34 | "other": "Argumentos desconocidos: %s" 35 | }, 36 | "Invalid values:": "Valores inválidos:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s", 38 | "Argument check failed: %s": "Verificación de argumento ha fallado: %s", 39 | "Implications failed:": "Implicaciones fallidas:", 40 | "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s", 41 | "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s", 42 | "Path to JSON config file": "Ruta al archivo de configuración JSON", 43 | "Show help": "Muestra ayuda", 44 | "Show version number": "Muestra número de versión", 45 | "Did you mean %s?": "Quisiste decir %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Komennot:", 3 | "Options:": "Valinnat:", 4 | "Examples:": "Esimerkkejä:", 5 | "boolean": "totuusarvo", 6 | "count": "lukumäärä", 7 | "string": "merkkijono", 8 | "number": "numero", 9 | "array": "taulukko", 10 | "required": "pakollinen", 11 | "default": "oletusarvo", 12 | "default:": "oletusarvo:", 13 | "choices:": "vaihtoehdot:", 14 | "aliases:": "aliakset:", 15 | "generated-value": "generoitu-arvo", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s", 18 | "other": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s", 22 | "other": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Argumentin arvo puuttuu: %s", 26 | "other": "Argumentin arvot puuttuvat: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Pakollinen argumentti puuttuu: %s", 30 | "other": "Pakollisia argumentteja puuttuu: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Tuntematon argumenttn: %s", 34 | "other": "Tuntemattomia argumentteja: %s" 35 | }, 36 | "Invalid values:": "Virheelliset arvot:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argumentti: %s, Annettu: %s, Vaihtoehdot: %s", 38 | "Argument check failed: %s": "Argumentin tarkistus epäonnistui: %s", 39 | "Implications failed:": "Riippuvia argumentteja puuttuu:", 40 | "Not enough arguments following: %s": "Argumentin perässä ei ole tarpeeksi argumentteja: %s", 41 | "Invalid JSON config file: %s": "Epävalidi JSON-asetustiedosto: %s", 42 | "Path to JSON config file": "JSON-asetustiedoston polku", 43 | "Show help": "Näytä ohje", 44 | "Show version number": "Näytä versionumero", 45 | "Did you mean %s?": "Tarkoititko %s?", 46 | "Arguments %s and %s are mutually exclusive" : "Argumentit %s ja %s eivät ole yhteensopivat", 47 | "Positionals:": "Sijaintiparametrit:", 48 | "command": "komento" 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Commandes :", 3 | "Options:": "Options :", 4 | "Examples:": "Exemples :", 5 | "boolean": "booléen", 6 | "count": "compteur", 7 | "string": "chaîne de caractères", 8 | "number": "nombre", 9 | "array": "tableau", 10 | "required": "requis", 11 | "default": "défaut", 12 | "default:": "défaut :", 13 | "choices:": "choix :", 14 | "aliases:": "alias :", 15 | "generated-value": "valeur générée", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Pas assez d'arguments (hors options) : reçu %s, besoin d'au moins %s", 18 | "other": "Pas assez d'arguments (hors options) : reçus %s, besoin d'au moins %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Trop d'arguments (hors options) : reçu %s, maximum de %s", 22 | "other": "Trop d'arguments (hors options) : reçus %s, maximum de %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Argument manquant : %s", 26 | "other": "Arguments manquants : %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Argument requis manquant : %s", 30 | "other": "Arguments requis manquants : %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Argument inconnu : %s", 34 | "other": "Arguments inconnus : %s" 35 | }, 36 | "Unknown command: %s": { 37 | "one": "Commande inconnue : %s", 38 | "other": "Commandes inconnues : %s" 39 | }, 40 | "Invalid values:": "Valeurs invalides :", 41 | "Argument: %s, Given: %s, Choices: %s": "Argument : %s, donné : %s, choix : %s", 42 | "Argument check failed: %s": "Echec de la vérification de l'argument : %s", 43 | "Implications failed:": "Arguments dépendants manquants :", 44 | "Not enough arguments following: %s": "Pas assez d'arguments après : %s", 45 | "Invalid JSON config file: %s": "Fichier de configuration JSON invalide : %s", 46 | "Path to JSON config file": "Chemin du fichier de configuration JSON", 47 | "Show help": "Affiche l'aide", 48 | "Show version number": "Affiche le numéro de version", 49 | "Did you mean %s?": "Vouliez-vous dire %s ?", 50 | "Arguments %s and %s are mutually exclusive" : "Les arguments %s et %s sont mutuellement exclusifs", 51 | "Positionals:": "Arguments positionnels :", 52 | "command": "commande" 53 | } 54 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/hi.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "आदेश:", 3 | "Options:": "विकल्प:", 4 | "Examples:": "उदाहरण:", 5 | "boolean": "सत्यता", 6 | "count": "संख्या", 7 | "string": "वर्णों का तार ", 8 | "number": "अंक", 9 | "array": "सरणी", 10 | "required": "आवश्यक", 11 | "default": "डिफॉल्ट", 12 | "default:": "डिफॉल्ट:", 13 | "choices:": "विकल्प:", 14 | "aliases:": "उपनाम:", 15 | "generated-value": "उत्पन्न-मूल्य", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है", 18 | "other": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य", 22 | "other": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "कुछ तर्को के मूल्य गुम हैं: %s", 26 | "other": "कुछ तर्को के मूल्य गुम हैं: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "आवश्यक तर्क गुम हैं: %s", 30 | "other": "आवश्यक तर्क गुम हैं: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "अज्ञात तर्क प्राप्त: %s", 34 | "other": "अज्ञात तर्क प्राप्त: %s" 35 | }, 36 | "Invalid values:": "अमान्य मूल्य:", 37 | "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s", 38 | "Argument check failed: %s": "तर्क जांच विफल: %s", 39 | "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:", 40 | "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s", 41 | "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s", 42 | "Path to JSON config file": "JSON config फाइल का पथ", 43 | "Show help": "सहायता दिखाएँ", 44 | "Show version number": "Version संख्या दिखाएँ", 45 | "Did you mean %s?": "क्या आपका मतलब है %s?", 46 | "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं", 47 | "Positionals:": "स्थानीय:", 48 | "command": "आदेश" 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/hu.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Parancsok:", 3 | "Options:": "Opciók:", 4 | "Examples:": "Példák:", 5 | "boolean": "boolean", 6 | "count": "számláló", 7 | "string": "szöveg", 8 | "number": "szám", 9 | "array": "tömb", 10 | "required": "kötelező", 11 | "default": "alapértelmezett", 12 | "default:": "alapértelmezett:", 13 | "choices:": "lehetőségek:", 14 | "aliases:": "aliaszok:", 15 | "generated-value": "generált-érték", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell", 18 | "other": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet", 22 | "other": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Hiányzó argumentum érték: %s", 26 | "other": "Hiányzó argumentum értékek: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Hiányzó kötelező argumentum: %s", 30 | "other": "Hiányzó kötelező argumentumok: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Ismeretlen argumentum: %s", 34 | "other": "Ismeretlen argumentumok: %s" 35 | }, 36 | "Invalid values:": "Érvénytelen érték:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s", 38 | "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s", 39 | "Implications failed:": "Implikációk sikertelenek:", 40 | "Not enough arguments following: %s": "Nem elég argumentum követi: %s", 41 | "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s", 42 | "Path to JSON config file": "JSON konfigurációs file helye", 43 | "Show help": "Súgo megjelenítése", 44 | "Show version number": "Verziószám megjelenítése", 45 | "Did you mean %s?": "Erre gondoltál %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/id.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "Commands:": "Perintah:", 4 | "Options:": "Pilihan:", 5 | "Examples:": "Contoh:", 6 | "boolean": "boolean", 7 | "count": "jumlah", 8 | "number": "nomor", 9 | "string": "string", 10 | "array": "larik", 11 | "required": "diperlukan", 12 | "default": "bawaan", 13 | "default:": "bawaan:", 14 | "aliases:": "istilah lain:", 15 | "choices:": "pilihan:", 16 | "generated-value": "nilai-yang-dihasilkan", 17 | "Not enough non-option arguments: got %s, need at least %s": { 18 | "one": "Argumen wajib kurang: hanya %s, minimal %s", 19 | "other": "Argumen wajib kurang: hanya %s, minimal %s" 20 | }, 21 | "Too many non-option arguments: got %s, maximum of %s": { 22 | "one": "Terlalu banyak argumen wajib: ada %s, maksimal %s", 23 | "other": "Terlalu banyak argumen wajib: ada %s, maksimal %s" 24 | }, 25 | "Missing argument value: %s": { 26 | "one": "Kurang argumen: %s", 27 | "other": "Kurang argumen: %s" 28 | }, 29 | "Missing required argument: %s": { 30 | "one": "Kurang argumen wajib: %s", 31 | "other": "Kurang argumen wajib: %s" 32 | }, 33 | "Unknown argument: %s": { 34 | "one": "Argumen tak diketahui: %s", 35 | "other": "Argumen tak diketahui: %s" 36 | }, 37 | "Invalid values:": "Nilai-nilai tidak valid:", 38 | "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s", 39 | "Argument check failed: %s": "Pemeriksaan argument gagal: %s", 40 | "Implications failed:": "Implikasi gagal:", 41 | "Not enough arguments following: %s": "Kurang argumen untuk: %s", 42 | "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s", 43 | "Path to JSON config file": "Alamat berkas konfigurasi JSON", 44 | "Show help": "Lihat bantuan", 45 | "Show version number": "Lihat nomor versi", 46 | "Did you mean %s?": "Maksud Anda: %s?", 47 | "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif", 48 | "Positionals:": "Posisional-posisional:", 49 | "command": "perintah" 50 | } 51 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Comandi:", 3 | "Options:": "Opzioni:", 4 | "Examples:": "Esempi:", 5 | "boolean": "booleano", 6 | "count": "contatore", 7 | "string": "stringa", 8 | "number": "numero", 9 | "array": "vettore", 10 | "required": "richiesto", 11 | "default": "predefinito", 12 | "default:": "predefinito:", 13 | "choices:": "scelte:", 14 | "aliases:": "alias:", 15 | "generated-value": "valore generato", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s", 18 | "other": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s", 22 | "other": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Argomento mancante: %s", 26 | "other": "Argomenti mancanti: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Argomento richiesto mancante: %s", 30 | "other": "Argomenti richiesti mancanti: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Argomento sconosciuto: %s", 34 | "other": "Argomenti sconosciuti: %s" 35 | }, 36 | "Invalid values:": "Valori non validi:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s", 38 | "Argument check failed: %s": "Controllo dell'argomento fallito: %s", 39 | "Implications failed:": "Argomenti dipendenti mancanti:", 40 | "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s", 41 | "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s", 42 | "Path to JSON config file": "Percorso del file di configurazione JSON", 43 | "Show help": "Mostra la schermata di aiuto", 44 | "Show version number": "Mostra il numero di versione", 45 | "Did you mean %s?": "Intendi forse %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "コマンド:", 3 | "Options:": "オプション:", 4 | "Examples:": "例:", 5 | "boolean": "真偽", 6 | "count": "カウント", 7 | "string": "文字列", 8 | "number": "数値", 9 | "array": "配列", 10 | "required": "必須", 11 | "default": "デフォルト", 12 | "default:": "デフォルト:", 13 | "choices:": "選択してください:", 14 | "aliases:": "エイリアス:", 15 | "generated-value": "生成された値", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:", 18 | "other": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:", 22 | "other": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "引数の値が見つかりません: %s", 26 | "other": "引数の値が見つかりません: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "必須の引数が見つかりません: %s", 30 | "other": "必須の引数が見つかりません: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "未知の引数です: %s", 34 | "other": "未知の引数です: %s" 35 | }, 36 | "Invalid values:": "不正な値です:", 37 | "Argument: %s, Given: %s, Choices: %s": "引数は %s です。与えられた値: %s, 選択してください: %s", 38 | "Argument check failed: %s": "引数のチェックに失敗しました: %s", 39 | "Implications failed:": "オプションの組み合わせで不正が生じました:", 40 | "Not enough arguments following: %s": "次の引数が不足しています。: %s", 41 | "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s", 42 | "Path to JSON config file": "JSONの設定ファイルまでのpath", 43 | "Show help": "ヘルプを表示", 44 | "Show version number": "バージョンを表示", 45 | "Did you mean %s?": "もしかして %s?", 46 | "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません", 47 | "Positionals:": "位置:", 48 | "command": "コマンド", 49 | "deprecated": "非推奨", 50 | "deprecated: %s": "非推奨: %s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/ko.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "명령:", 3 | "Options:": "옵션:", 4 | "Examples:": "예시:", 5 | "boolean": "불리언", 6 | "count": "개수", 7 | "string": "문자열", 8 | "number": "숫자", 9 | "array": "배열", 10 | "required": "필수", 11 | "default": "기본값", 12 | "default:": "기본값:", 13 | "choices:": "선택지:", 14 | "aliases:": "별칭:", 15 | "generated-value": "생성된 값", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요", 18 | "other": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능", 22 | "other": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "인수가 주어지지 않았습니다: %s", 26 | "other": "인수가 주어지지 않았습니다: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "필수 인수가 주어지지 않았습니다: %s", 30 | "other": "필수 인수가 주어지지 않았습니다: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "알 수 없는 인수입니다: %s", 34 | "other": "알 수 없는 인수입니다: %s" 35 | }, 36 | "Invalid values:": "유효하지 않은 값:", 37 | "Argument: %s, Given: %s, Choices: %s": "인수: %s, 주어진 값: %s, 선택지: %s", 38 | "Argument check failed: %s": "인수 체크에 실패했습니다: %s", 39 | "Implications failed:": "주어진 인수에 필요한 추가 인수가 주어지지 않았습니다:", 40 | "Not enough arguments following: %s": "다음 인수가 주어지지 않았습니다: %s", 41 | "Invalid JSON config file: %s": "유효하지 않은 JSON 설정 파일: %s", 42 | "Path to JSON config file": "JSON 설정 파일 경로", 43 | "Show help": "도움말 표시", 44 | "Show version number": "버전 표시", 45 | "Did you mean %s?": "%s을(를) 찾으시나요?", 46 | "Arguments %s and %s are mutually exclusive" : "인수 %s과(와) %s은(는) 동시에 지정할 수 없습니다", 47 | "Positionals:": "위치:", 48 | "command": "명령" 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/nb.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Kommandoer:", 3 | "Options:": "Alternativer:", 4 | "Examples:": "Eksempler:", 5 | "boolean": "boolsk", 6 | "count": "antall", 7 | "string": "streng", 8 | "number": "nummer", 9 | "array": "matrise", 10 | "required": "obligatorisk", 11 | "default": "standard", 12 | "default:": "standard:", 13 | "choices:": "valg:", 14 | "generated-value": "generert-verdi", 15 | "Not enough non-option arguments: got %s, need at least %s": { 16 | "one": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s", 17 | "other": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s" 18 | }, 19 | "Too many non-option arguments: got %s, maximum of %s": { 20 | "one": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s", 21 | "other": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s" 22 | }, 23 | "Missing argument value: %s": { 24 | "one": "Mangler argument verdi: %s", 25 | "other": "Mangler argument verdier: %s" 26 | }, 27 | "Missing required argument: %s": { 28 | "one": "Mangler obligatorisk argument: %s", 29 | "other": "Mangler obligatoriske argumenter: %s" 30 | }, 31 | "Unknown argument: %s": { 32 | "one": "Ukjent argument: %s", 33 | "other": "Ukjente argumenter: %s" 34 | }, 35 | "Invalid values:": "Ugyldige verdier:", 36 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s", 37 | "Argument check failed: %s": "Argumentsjekk mislyktes: %s", 38 | "Implications failed:": "Konsekvensene mislyktes:", 39 | "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s", 40 | "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", 41 | "Path to JSON config file": "Bane til JSON konfigurasjonsfil", 42 | "Show help": "Vis hjelp", 43 | "Show version number": "Vis versjonsnummer" 44 | } 45 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Commando's:", 3 | "Options:": "Opties:", 4 | "Examples:": "Voorbeelden:", 5 | "boolean": "booleaans", 6 | "count": "aantal", 7 | "string": "string", 8 | "number": "getal", 9 | "array": "lijst", 10 | "required": "verplicht", 11 | "default": "standaard", 12 | "default:": "standaard:", 13 | "choices:": "keuzes:", 14 | "aliases:": "aliassen:", 15 | "generated-value": "gegenereerde waarde", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig", 18 | "other": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s", 22 | "other": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Missende argumentwaarde: %s", 26 | "other": "Missende argumentwaarden: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Missend verplicht argument: %s", 30 | "other": "Missende verplichte argumenten: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Onbekend argument: %s", 34 | "other": "Onbekende argumenten: %s" 35 | }, 36 | "Invalid values:": "Ongeldige waarden:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s", 38 | "Argument check failed: %s": "Argumentcontrole mislukt: %s", 39 | "Implications failed:": "Ontbrekende afhankelijke argumenten:", 40 | "Not enough arguments following: %s": "Niet genoeg argumenten na: %s", 41 | "Invalid JSON config file: %s": "Ongeldig JSON-config-bestand: %s", 42 | "Path to JSON config file": "Pad naar JSON-config-bestand", 43 | "Show help": "Toon help", 44 | "Show version number": "Toon versienummer", 45 | "Did you mean %s?": "Bedoelde u misschien %s?", 46 | "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s kunnen niet tegelijk gebruikt worden", 47 | "Positionals:": "Positie-afhankelijke argumenten", 48 | "command": "commando" 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/nn.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Kommandoar:", 3 | "Options:": "Alternativ:", 4 | "Examples:": "Døme:", 5 | "boolean": "boolsk", 6 | "count": "mengd", 7 | "string": "streng", 8 | "number": "nummer", 9 | "array": "matrise", 10 | "required": "obligatorisk", 11 | "default": "standard", 12 | "default:": "standard:", 13 | "choices:": "val:", 14 | "generated-value": "generert-verdi", 15 | "Not enough non-option arguments: got %s, need at least %s": { 16 | "one": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s", 17 | "other": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s" 18 | }, 19 | "Too many non-option arguments: got %s, maximum of %s": { 20 | "one": "For mange ikkje-alternativ argument: fekk %s, maksimum %s", 21 | "other": "For mange ikkje-alternativ argument: fekk %s, maksimum %s" 22 | }, 23 | "Missing argument value: %s": { 24 | "one": "Manglar argumentverdi: %s", 25 | "other": "Manglar argumentverdiar: %s" 26 | }, 27 | "Missing required argument: %s": { 28 | "one": "Manglar obligatorisk argument: %s", 29 | "other": "Manglar obligatoriske argument: %s" 30 | }, 31 | "Unknown argument: %s": { 32 | "one": "Ukjent argument: %s", 33 | "other": "Ukjende argument: %s" 34 | }, 35 | "Invalid values:": "Ugyldige verdiar:", 36 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s", 37 | "Argument check failed: %s": "Argumentsjekk mislukkast: %s", 38 | "Implications failed:": "Konsekvensane mislukkast:", 39 | "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s", 40 | "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", 41 | "Path to JSON config file": "Bane til JSON konfigurasjonsfil", 42 | "Show help": "Vis hjelp", 43 | "Show version number": "Vis versjonsnummer" 44 | } 45 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/pirate.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Choose yer command:", 3 | "Options:": "Options for me hearties!", 4 | "Examples:": "Ex. marks the spot:", 5 | "required": "requi-yar-ed", 6 | "Missing required argument: %s": { 7 | "one": "Ye be havin' to set the followin' argument land lubber: %s", 8 | "other": "Ye be havin' to set the followin' arguments land lubber: %s" 9 | }, 10 | "Show help": "Parlay this here code of conduct", 11 | "Show version number": "'Tis the version ye be askin' fer", 12 | "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench" 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Polecenia:", 3 | "Options:": "Opcje:", 4 | "Examples:": "Przykłady:", 5 | "boolean": "boolean", 6 | "count": "ilość", 7 | "string": "ciąg znaków", 8 | "number": "liczba", 9 | "array": "tablica", 10 | "required": "wymagany", 11 | "default": "domyślny", 12 | "default:": "domyślny:", 13 | "choices:": "dostępne:", 14 | "aliases:": "aliasy:", 15 | "generated-value": "wygenerowana-wartość", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s", 18 | "other": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s", 22 | "other": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Brak wartości dla argumentu: %s", 26 | "other": "Brak wartości dla argumentów: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Brak wymaganego argumentu: %s", 30 | "other": "Brak wymaganych argumentów: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Nieznany argument: %s", 34 | "other": "Nieznane argumenty: %s" 35 | }, 36 | "Invalid values:": "Nieprawidłowe wartości:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s", 38 | "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s", 39 | "Implications failed:": "Założenia nie zostały spełnione:", 40 | "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s", 41 | "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s", 42 | "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON", 43 | "Show help": "Pokaż pomoc", 44 | "Show version number": "Pokaż numer wersji", 45 | "Did you mean %s?": "Czy chodziło Ci o %s?", 46 | "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają", 47 | "Positionals:": "Pozycyjne:", 48 | "command": "polecenie" 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Comandos:", 3 | "Options:": "Opções:", 4 | "Examples:": "Exemplos:", 5 | "boolean": "boolean", 6 | "count": "contagem", 7 | "string": "cadeia de caracteres", 8 | "number": "número", 9 | "array": "arranjo", 10 | "required": "requerido", 11 | "default": "padrão", 12 | "default:": "padrão:", 13 | "choices:": "escolhas:", 14 | "generated-value": "valor-gerado", 15 | "Not enough non-option arguments: got %s, need at least %s": { 16 | "one": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s", 17 | "other": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s" 18 | }, 19 | "Too many non-option arguments: got %s, maximum of %s": { 20 | "one": "Excesso de argumentos não opcionais: recebido %s, máximo de %s", 21 | "other": "Excesso de argumentos não opcionais: recebido %s, máximo de %s" 22 | }, 23 | "Missing argument value: %s": { 24 | "one": "Falta valor de argumento: %s", 25 | "other": "Falta valores de argumento: %s" 26 | }, 27 | "Missing required argument: %s": { 28 | "one": "Falta argumento obrigatório: %s", 29 | "other": "Faltando argumentos obrigatórios: %s" 30 | }, 31 | "Unknown argument: %s": { 32 | "one": "Argumento desconhecido: %s", 33 | "other": "Argumentos desconhecidos: %s" 34 | }, 35 | "Invalid values:": "Valores inválidos:", 36 | "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s", 37 | "Argument check failed: %s": "Verificação de argumento falhou: %s", 38 | "Implications failed:": "Implicações falharam:", 39 | "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s", 40 | "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s", 41 | "Path to JSON config file": "Caminho para o arquivo de configuração em JSON", 42 | "Show help": "Mostra ajuda", 43 | "Show version number": "Mostra número de versão", 44 | "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos" 45 | } 46 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/pt_BR.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Comandos:", 3 | "Options:": "Opções:", 4 | "Examples:": "Exemplos:", 5 | "boolean": "booleano", 6 | "count": "contagem", 7 | "string": "string", 8 | "number": "número", 9 | "array": "array", 10 | "required": "obrigatório", 11 | "default:": "padrão:", 12 | "choices:": "opções:", 13 | "aliases:": "sinônimos:", 14 | "generated-value": "valor-gerado", 15 | "Not enough non-option arguments: got %s, need at least %s": { 16 | "one": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s", 17 | "other": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s" 18 | }, 19 | "Too many non-option arguments: got %s, maximum of %s": { 20 | "one": "Excesso de argumentos: recebido %s, máximo de %s", 21 | "other": "Excesso de argumentos: recebido %s, máximo de %s" 22 | }, 23 | "Missing argument value: %s": { 24 | "one": "Falta valor de argumento: %s", 25 | "other": "Falta valores de argumento: %s" 26 | }, 27 | "Missing required argument: %s": { 28 | "one": "Falta argumento obrigatório: %s", 29 | "other": "Faltando argumentos obrigatórios: %s" 30 | }, 31 | "Unknown argument: %s": { 32 | "one": "Argumento desconhecido: %s", 33 | "other": "Argumentos desconhecidos: %s" 34 | }, 35 | "Invalid values:": "Valores inválidos:", 36 | "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s", 37 | "Argument check failed: %s": "Verificação de argumento falhou: %s", 38 | "Implications failed:": "Implicações falharam:", 39 | "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s", 40 | "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s", 41 | "Path to JSON config file": "Caminho para o arquivo JSON de configuração", 42 | "Show help": "Exibe ajuda", 43 | "Show version number": "Exibe a versão", 44 | "Did you mean %s?": "Você quis dizer %s?", 45 | "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos", 46 | "Positionals:": "Posicionais:", 47 | "command": "comando" 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Команды:", 3 | "Options:": "Опции:", 4 | "Examples:": "Примеры:", 5 | "boolean": "булевый тип", 6 | "count": "подсчет", 7 | "string": "строковой тип", 8 | "number": "число", 9 | "array": "массив", 10 | "required": "необходимо", 11 | "default": "по умолчанию", 12 | "default:": "по умолчанию:", 13 | "choices:": "возможности:", 14 | "aliases:": "алиасы:", 15 | "generated-value": "генерированное значение", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s", 18 | "other": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s", 22 | "other": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Не хватает значения аргумента: %s", 26 | "other": "Не хватает значений аргументов: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Не хватает необходимого аргумента: %s", 30 | "other": "Не хватает необходимых аргументов: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Неизвестный аргумент: %s", 34 | "other": "Неизвестные аргументы: %s" 35 | }, 36 | "Invalid values:": "Недействительные значения:", 37 | "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s", 38 | "Argument check failed: %s": "Проверка аргументов не удалась: %s", 39 | "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:", 40 | "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s", 41 | "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s", 42 | "Path to JSON config file": "Путь к файлу конфигурации JSON", 43 | "Show help": "Показать помощь", 44 | "Show version number": "Показать номер версии", 45 | "Did you mean %s?": "Вы имели в виду %s?", 46 | "Arguments %s and %s are mutually exclusive": "Аргументы %s и %s являются взаимоисключающими", 47 | "Positionals:": "Позиционные аргументы:", 48 | "command": "команда", 49 | "deprecated": "устар.", 50 | "deprecated: %s": "устар.: %s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/th.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "คอมมาน", 3 | "Options:": "ออฟชั่น", 4 | "Examples:": "ตัวอย่าง", 5 | "boolean": "บูลีน", 6 | "count": "นับ", 7 | "string": "สตริง", 8 | "number": "ตัวเลข", 9 | "array": "อาเรย์", 10 | "required": "จำเป็น", 11 | "default": "ค่าเริ่มต้", 12 | "default:": "ค่าเริ่มต้น", 13 | "choices:": "ตัวเลือก", 14 | "aliases:": "เอเลียส", 15 | "generated-value": "ค่าที่ถูกสร้างขึ้น", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า", 18 | "other": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า", 22 | "other": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s", 26 | "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s", 30 | "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s", 34 | "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s" 35 | }, 36 | "Invalid values:": "ค่าไม่ถูกต้อง:", 37 | "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s", 38 | "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s", 39 | "Implications failed:": "Implications ไม่สำเร็จ:", 40 | "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s", 41 | "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s", 42 | "Path to JSON config file": "พาทไฟล์คอนฟิค JSON", 43 | "Show help": "ขอความช่วยเหลือ", 44 | "Show version number": "แสดงตัวเลขเวอร์ชั่น", 45 | "Did you mean %s?": "คุณหมายถึง %s?" 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Komutlar:", 3 | "Options:": "Seçenekler:", 4 | "Examples:": "Örnekler:", 5 | "boolean": "boolean", 6 | "count": "sayı", 7 | "string": "string", 8 | "number": "numara", 9 | "array": "array", 10 | "required": "zorunlu", 11 | "default": "varsayılan", 12 | "default:": "varsayılan:", 13 | "choices:": "seçimler:", 14 | "aliases:": "takma adlar:", 15 | "generated-value": "oluşturulan-değer", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli", 18 | "other": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s", 22 | "other": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Eksik argüman değeri: %s", 26 | "other": "Eksik argüman değerleri: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Eksik zorunlu argüman: %s", 30 | "other": "Eksik zorunlu argümanlar: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Bilinmeyen argüman: %s", 34 | "other": "Bilinmeyen argümanlar: %s" 35 | }, 36 | "Invalid values:": "Geçersiz değerler:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s", 38 | "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s", 39 | "Implications failed:": "Sonuçlar başarısız oldu:", 40 | "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı", 41 | "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s", 42 | "Path to JSON config file": "JSON yapılandırma dosya konumu", 43 | "Show help": "Yardım detaylarını göster", 44 | "Show version number": "Versiyon detaylarını göster", 45 | "Did you mean %s?": "Bunu mu demek istediniz: %s?", 46 | "Positionals:": "Sıralılar:", 47 | "command": "komut" 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/uk_UA.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Команди:", 3 | "Options:": "Опції:", 4 | "Examples:": "Приклади:", 5 | "boolean": "boolean", 6 | "count": "кількість", 7 | "string": "строка", 8 | "number": "число", 9 | "array": "масива", 10 | "required": "обов'язково", 11 | "default": "за замовчуванням", 12 | "default:": "за замовчуванням:", 13 | "choices:": "доступні варіанти:", 14 | "aliases:": "псевдоніми:", 15 | "generated-value": "згенероване значення", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "Недостатньо аргументів: наразі %s, потрібно %s або більше", 18 | "other": "Недостатньо аргументів: наразі %s, потрібно %s або більше" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "Забагато аргументів: наразі %s, максимум %s", 22 | "other": "Too many non-option arguments: наразі %s, максимум of %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Відсутнє значення для аргументу: %s", 26 | "other": "Відсутні значення для аргументу: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Відсутній обов'язковий аргумент: %s", 30 | "other": "Відсутні обов'язкові аргументи: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Аргумент %s не підтримується", 34 | "other": "Аргументи %s не підтримуються" 35 | }, 36 | "Invalid values:": "Некоректні значення:", 37 | "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Введено: %s, Доступні варіанти: %s", 38 | "Argument check failed: %s": "Аргумент не пройшов перевірку: %s", 39 | "Implications failed:": "Відсутні залежні аргументи:", 40 | "Not enough arguments following: %s": "Не достатньо аргументів після: %s", 41 | "Invalid JSON config file: %s": "Некоректний JSON-файл конфігурації: %s", 42 | "Path to JSON config file": "Шлях до JSON-файлу конфігурації", 43 | "Show help": "Показати довідку", 44 | "Show version number": "Показати версію", 45 | "Did you mean %s?": "Можливо, ви мали на увазі %s?", 46 | "Arguments %s and %s are mutually exclusive" : "Аргументи %s та %s взаємовиключні", 47 | "Positionals:": "Позиційні:", 48 | "command": "команда", 49 | "deprecated": "застарілий", 50 | "deprecated: %s": "застарілий: %s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/uz.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "Buyruqlar:", 3 | "Options:": "Imkoniyatlar:", 4 | "Examples:": "Misollar:", 5 | "boolean": "boolean", 6 | "count": "sanoq", 7 | "string": "satr", 8 | "number": "raqam", 9 | "array": "massiv", 10 | "required": "majburiy", 11 | "default": "boshlang'ich", 12 | "default:": "boshlang'ich:", 13 | "choices:": "tanlovlar:", 14 | "aliases:": "taxalluslar:", 15 | "generated-value": "yaratilgan-qiymat", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s", 18 | "other": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "No-imkoniyat argumentlar juda ko'p: berilgan %s, maksimum %s", 22 | "other": "No-imkoniyat argumentlar juda ko'p: got %s, maksimum %s" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "Argument qiymati berilmagan: %s", 26 | "other": "Argument qiymatlari berilmagan: %s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "Majburiy argument berilmagan: %s", 30 | "other": "Majburiy argumentlar berilmagan: %s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "Noma'lum argument berilmagan: %s", 34 | "other": "Noma'lum argumentlar berilmagan: %s" 35 | }, 36 | "Invalid values:": "Nosoz qiymatlar:", 37 | "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Berilgan: %s, Tanlovlar: %s", 38 | "Argument check failed: %s": "Muvaffaqiyatsiz argument tekshiruvi: %s", 39 | "Implications failed:": "Bog'liq argumentlar berilmagan:", 40 | "Not enough arguments following: %s": "Quyidagi argumentlar yetarli emas: %s", 41 | "Invalid JSON config file: %s": "Nosoz JSON konfiguratsiya fayli: %s", 42 | "Path to JSON config file": "JSON konfiguratsiya fayli joylashuvi", 43 | "Show help": "Yordam ko'rsatish", 44 | "Show version number": "Versiyani ko'rsatish", 45 | "Did you mean %s?": "%s ni nazarda tutyapsizmi?", 46 | "Arguments %s and %s are mutually exclusive" : "%s va %s argumentlari alohida", 47 | "Positionals:": "Positsionallar:", 48 | "command": "buyruq", 49 | "deprecated": "eskirgan", 50 | "deprecated: %s": "eskirgan: %s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/zh_CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "命令:", 3 | "Options:": "选项:", 4 | "Examples:": "示例:", 5 | "boolean": "布尔", 6 | "count": "计数", 7 | "string": "字符串", 8 | "number": "数字", 9 | "array": "数组", 10 | "required": "必需", 11 | "default": "默认值", 12 | "default:": "默认值:", 13 | "choices:": "可选值:", 14 | "generated-value": "生成的值", 15 | "Not enough non-option arguments: got %s, need at least %s": { 16 | "one": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个", 17 | "other": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个" 18 | }, 19 | "Too many non-option arguments: got %s, maximum of %s": { 20 | "one": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个", 21 | "other": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个" 22 | }, 23 | "Missing argument value: %s": { 24 | "one": "没有给此选项指定值:%s", 25 | "other": "没有给这些选项指定值:%s" 26 | }, 27 | "Missing required argument: %s": { 28 | "one": "缺少必须的选项:%s", 29 | "other": "缺少这些必须的选项:%s" 30 | }, 31 | "Unknown argument: %s": { 32 | "one": "无法识别的选项:%s", 33 | "other": "无法识别这些选项:%s" 34 | }, 35 | "Invalid values:": "无效的选项值:", 36 | "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s", 37 | "Argument check failed: %s": "选项值验证失败:%s", 38 | "Implications failed:": "缺少依赖的选项:", 39 | "Not enough arguments following: %s": "没有提供足够的值给此选项:%s", 40 | "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s", 41 | "Path to JSON config file": "JSON 配置文件的路径", 42 | "Show help": "显示帮助信息", 43 | "Show version number": "显示版本号", 44 | "Did you mean %s?": "是指 %s?", 45 | "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的", 46 | "Positionals:": "位置:", 47 | "command": "命令" 48 | } 49 | -------------------------------------------------------------------------------- /node_modules/yargs/locales/zh_TW.json: -------------------------------------------------------------------------------- 1 | { 2 | "Commands:": "命令:", 3 | "Options:": "選項:", 4 | "Examples:": "範例:", 5 | "boolean": "布林", 6 | "count": "次數", 7 | "string": "字串", 8 | "number": "數字", 9 | "array": "陣列", 10 | "required": "必填", 11 | "default": "預設值", 12 | "default:": "預設值:", 13 | "choices:": "可選值:", 14 | "aliases:": "別名:", 15 | "generated-value": "生成的值", 16 | "Not enough non-option arguments: got %s, need at least %s": { 17 | "one": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個", 18 | "other": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個" 19 | }, 20 | "Too many non-option arguments: got %s, maximum of %s": { 21 | "one": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個", 22 | "other": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個" 23 | }, 24 | "Missing argument value: %s": { 25 | "one": "此引數無指定值:%s", 26 | "other": "這些引數無指定值:%s" 27 | }, 28 | "Missing required argument: %s": { 29 | "one": "缺少必須的引數:%s", 30 | "other": "缺少這些必須的引數:%s" 31 | }, 32 | "Unknown argument: %s": { 33 | "one": "未知的引數:%s", 34 | "other": "未知的引數:%s" 35 | }, 36 | "Invalid values:": "無效的選項值:", 37 | "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s", 38 | "Argument check failed: %s": "引數驗證失敗:%s", 39 | "Implications failed:": "缺少依賴引數:", 40 | "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s", 41 | "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s", 42 | "Path to JSON config file": "JSON 設置文件的路徑", 43 | "Show help": "顯示說明", 44 | "Show version number": "顯示版本", 45 | "Did you mean %s?": "您是指 %s 嗎?", 46 | "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 互斥", 47 | "Positionals:": "位置:", 48 | "command": "命令", 49 | "deprecated": "已淘汰", 50 | "deprecated: %s": "已淘汰:%s" 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/yargs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yargs", 3 | "version": "17.5.1", 4 | "description": "yargs the modern, pirate-themed, successor to optimist.", 5 | "main": "./index.cjs", 6 | "exports": { 7 | "./package.json": "./package.json", 8 | ".": [ 9 | { 10 | "import": "./index.mjs", 11 | "require": "./index.cjs" 12 | }, 13 | "./index.cjs" 14 | ], 15 | "./helpers": { 16 | "import": "./helpers/helpers.mjs", 17 | "require": "./helpers/index.js" 18 | }, 19 | "./browser": { 20 | "import": "./browser.mjs", 21 | "types": "./browser.d.ts" 22 | }, 23 | "./yargs": [ 24 | { 25 | "import": "./yargs.mjs", 26 | "require": "./yargs" 27 | }, 28 | "./yargs" 29 | ] 30 | }, 31 | "type": "module", 32 | "module": "./index.mjs", 33 | "contributors": [ 34 | { 35 | "name": "Yargs Contributors", 36 | "url": "https://github.com/yargs/yargs/graphs/contributors" 37 | } 38 | ], 39 | "files": [ 40 | "browser.mjs", 41 | "browser.d.ts", 42 | "index.cjs", 43 | "helpers/*.js", 44 | "helpers/*", 45 | "index.mjs", 46 | "yargs", 47 | "yargs.mjs", 48 | "build", 49 | "locales", 50 | "LICENSE", 51 | "lib/platform-shims/*.mjs", 52 | "!*.d.ts", 53 | "!**/*.d.ts" 54 | ], 55 | "dependencies": { 56 | "cliui": "^7.0.2", 57 | "escalade": "^3.1.1", 58 | "get-caller-file": "^2.0.5", 59 | "require-directory": "^2.1.1", 60 | "string-width": "^4.2.3", 61 | "y18n": "^5.0.5", 62 | "yargs-parser": "^21.0.0" 63 | }, 64 | "devDependencies": { 65 | "@types/chai": "^4.2.11", 66 | "@types/mocha": "^9.0.0", 67 | "@types/node": "^16.11.4", 68 | "c8": "^7.7.0", 69 | "chai": "^4.2.0", 70 | "chalk": "^4.0.0", 71 | "coveralls": "^3.0.9", 72 | "cpr": "^3.0.1", 73 | "cross-env": "^7.0.2", 74 | "cross-spawn": "^7.0.0", 75 | "eslint": "^7.23.0", 76 | "gts": "^3.0.0", 77 | "hashish": "0.0.4", 78 | "mocha": "^9.0.0", 79 | "rimraf": "^3.0.2", 80 | "rollup": "^2.23.0", 81 | "rollup-plugin-cleanup": "^3.1.1", 82 | "rollup-plugin-terser": "^7.0.2", 83 | "rollup-plugin-ts": "^2.0.4", 84 | "typescript": "^4.0.2", 85 | "which": "^2.0.0", 86 | "yargs-test-extends": "^1.0.1" 87 | }, 88 | "scripts": { 89 | "fix": "gts fix && npm run fix:js", 90 | "fix:js": "eslint . --ext cjs --ext mjs --ext js --fix", 91 | "posttest": "npm run check", 92 | "test": "c8 mocha --enable-source-maps ./test/*.cjs --require ./test/before.cjs --timeout=12000 --check-leaks", 93 | "test:esm": "c8 mocha --enable-source-maps ./test/esm/*.mjs --check-leaks", 94 | "coverage": "c8 report --check-coverage", 95 | "prepare": "npm run compile", 96 | "pretest": "npm run compile -- -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", 97 | "compile": "rimraf build && tsc", 98 | "postcompile": "npm run build:cjs", 99 | "build:cjs": "rollup -c rollup.config.cjs", 100 | "postbuild:cjs": "rimraf ./build/index.cjs.d.ts", 101 | "check": "gts lint && npm run check:js", 102 | "check:js": "eslint . --ext cjs --ext mjs --ext js", 103 | "clean": "gts clean" 104 | }, 105 | "repository": { 106 | "type": "git", 107 | "url": "https://github.com/yargs/yargs.git" 108 | }, 109 | "homepage": "https://yargs.js.org/", 110 | "keywords": [ 111 | "argument", 112 | "args", 113 | "option", 114 | "parser", 115 | "parsing", 116 | "cli", 117 | "command" 118 | ], 119 | "license": "MIT", 120 | "engines": { 121 | "node": ">=12" 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /node_modules/yargs/yargs: -------------------------------------------------------------------------------- 1 | // TODO: consolidate on using a helpers file at some point in the future, which 2 | // is the approach currently used to export Parser and applyExtends for ESM: 3 | const {applyExtends, cjsPlatformShim, Parser, Yargs, processArgv} = require('./build/index.cjs') 4 | Yargs.applyExtends = (config, cwd, mergeExtends) => { 5 | return applyExtends(config, cwd, mergeExtends, cjsPlatformShim) 6 | } 7 | Yargs.hideBin = processArgv.hideBin 8 | Yargs.Parser = Parser 9 | module.exports = Yargs 10 | -------------------------------------------------------------------------------- /node_modules/yargs/yargs.mjs: -------------------------------------------------------------------------------- 1 | // TODO: consolidate on using a helpers file at some point in the future, which 2 | // is the approach currently used to export Parser and applyExtends for ESM: 3 | import pkg from './build/index.cjs'; 4 | const {applyExtends, cjsPlatformShim, Parser, processArgv, Yargs} = pkg; 5 | Yargs.applyExtends = (config, cwd, mergeExtends) => { 6 | return applyExtends(config, cwd, mergeExtends, cjsPlatformShim); 7 | }; 8 | Yargs.hideBin = processArgv.hideBin; 9 | Yargs.Parser = Parser; 10 | export default Yargs; 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notes-app", 3 | "version": "1.0.0", 4 | "description": "A nodejs notes app", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "John Mwendwa", 10 | "license": "ISC", 11 | "dependencies": { 12 | "chalk": "^4.1.2", 13 | "yargs": "^17.5.1" 14 | } 15 | } 16 | --------------------------------------------------------------------------------