Changeset e29cc2e for trip-planner-front/node_modules/wrap-ansi
- Timestamp:
- 11/25/21 22:08:24 (3 years ago)
- Branches:
- master
- Children:
- 8d391a1
- Parents:
- 59329aa
- Location:
- trip-planner-front/node_modules/wrap-ansi
- Files:
-
- 14 added
- 4 deleted
- 4 edited
- 11 moved
Legend:
- Unmodified
- Added
- Removed
-
trip-planner-front/node_modules/wrap-ansi/index.js
r59329aa re29cc2e 11 11 const END_CODE = 39; 12 12 13 const ANSI_ESCAPE_BELL = '\u0007'; 14 const ANSI_CSI = '['; 15 const ANSI_OSC = ']'; 16 const ANSI_SGR_TERMINATOR = 'm'; 17 const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`; 18 19 const wrapAnsi = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`; 20 const wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`; 13 const wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`; 21 14 22 15 // Calculate the length of words split on ' ', ignoring … … 29 22 const characters = [...word]; 30 23 31 let isInsideEscape = false; 32 let isInsideLinkEscape = false; 24 let insideEscape = false; 33 25 let visible = stringWidth(stripAnsi(rows[rows.length - 1])); 34 26 … … 44 36 45 37 if (ESCAPES.has(character)) { 46 isInsideEscape = true; 47 isInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK); 38 insideEscape = true; 39 } else if (insideEscape && character === 'm') { 40 insideEscape = false; 41 continue; 48 42 } 49 43 50 if (isInsideEscape) { 51 if (isInsideLinkEscape) { 52 if (character === ANSI_ESCAPE_BELL) { 53 isInsideEscape = false; 54 isInsideLinkEscape = false; 55 } 56 } else if (character === ANSI_SGR_TERMINATOR) { 57 isInsideEscape = false; 58 } 59 44 if (insideEscape) { 60 45 continue; 61 46 } … … 77 62 78 63 // Trims spaces from a string ignoring invisible sequences 79 const stringVisibleTrimSpacesRight = str ing=> {80 const words = str ing.split(' ');64 const stringVisibleTrimSpacesRight = str => { 65 const words = str.split(' '); 81 66 let last = words.length; 82 67 … … 90 75 91 76 if (last === words.length) { 92 return str ing;77 return str; 93 78 } 94 79 … … 96 81 }; 97 82 98 // The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode 83 // The wrap-ansi module can be invoked 84 // in either 'hard' or 'soft' wrap mode 99 85 // 100 // 'hard' will never allow a string to take up more than columns characters 86 // 'hard' will never allow a string to take up more 87 // than columns characters 101 88 // 102 89 // 'soft' allows long words to expand past the column length … … 106 93 } 107 94 108 let returnValue = ''; 95 let pre = ''; 96 let ret = ''; 109 97 let escapeCode; 110 let escapeUrl;111 98 112 99 const lengths = wordLengths(string); … … 115 102 for (const [index, word] of string.split(' ').entries()) { 116 103 if (options.trim !== false) { 117 rows[rows.length - 1] = rows[rows.length - 1].trim Start();104 rows[rows.length - 1] = rows[rows.length - 1].trimLeft(); 118 105 } 119 106 … … 133 120 } 134 121 135 // In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns' 122 // In 'hard' wrap mode, the length of a line is 123 // never allowed to extend past 'columns' 136 124 if (options.hard && lengths[index] > columns) { 137 125 const remainingColumns = (columns - rowLength); … … 167 155 } 168 156 169 const pre = [...rows.join('\n')];157 pre = rows.join('\n'); 170 158 171 for (const [index, character] of pre.entries()) {172 ret urnValue+= character;159 for (const [index, character] of [...pre].entries()) { 160 ret += character; 173 161 174 162 if (ESCAPES.has(character)) { 175 const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}}; 176 if (groups.code !== undefined) { 177 const code = Number.parseFloat(groups.code); 178 escapeCode = code === END_CODE ? undefined : code; 179 } else if (groups.uri !== undefined) { 180 escapeUrl = groups.uri.length === 0 ? undefined : groups.uri; 181 } 163 const code = parseFloat(/\d[^m]*/.exec(pre.slice(index, index + 4))); 164 escapeCode = code === END_CODE ? null : code; 182 165 } 183 166 184 167 const code = ansiStyles.codes.get(Number(escapeCode)); 185 168 186 if (pre[index + 1] === '\n') { 187 if (escapeUrl) { 188 returnValue += wrapAnsiHyperlink(''); 189 } 190 191 if (escapeCode && code) { 192 returnValue += wrapAnsi(code); 193 } 194 } else if (character === '\n') { 195 if (escapeCode && code) { 196 returnValue += wrapAnsi(escapeCode); 197 } 198 199 if (escapeUrl) { 200 returnValue += wrapAnsiHyperlink(escapeUrl); 169 if (escapeCode && code) { 170 if (pre[index + 1] === '\n') { 171 ret += wrapAnsi(code); 172 } else if (character === '\n') { 173 ret += wrapAnsi(escapeCode); 201 174 } 202 175 } 203 176 } 204 177 205 return ret urnValue;178 return ret; 206 179 }; 207 180 … … 210 183 return String(string) 211 184 .normalize() 212 .replace(/\r\n/g, '\n')213 185 .split('\n') 214 186 .map(line => exec(line, columns, options)) -
trip-planner-front/node_modules/wrap-ansi/license
r59329aa re29cc2e 1 1 MIT License 2 2 3 Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> ( https://sindresorhus.com)3 Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) 4 4 5 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: -
trip-planner-front/node_modules/wrap-ansi/package.json
r59329aa re29cc2e 1 1 { 2 "_args": [ 3 [ 4 "wrap-ansi@7.0.0", 5 "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front" 6 ] 7 ], 8 "_development": true, 9 "_from": "wrap-ansi@7.0.0", 10 "_id": "wrap-ansi@7.0.0", 2 "_from": "wrap-ansi@^5.1.0", 3 "_id": "wrap-ansi@5.1.0", 11 4 "_inBundle": false, 12 "_integrity": "sha512- YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",5 "_integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 13 6 "_location": "/wrap-ansi", 14 7 "_phantomChildren": {}, 15 8 "_requested": { 16 "type": " version",9 "type": "range", 17 10 "registry": true, 18 "raw": "wrap-ansi@ 7.0.0",11 "raw": "wrap-ansi@^5.1.0", 19 12 "name": "wrap-ansi", 20 13 "escapedName": "wrap-ansi", 21 "rawSpec": " 7.0.0",14 "rawSpec": "^5.1.0", 22 15 "saveSpec": null, 23 "fetchSpec": " 7.0.0"16 "fetchSpec": "^5.1.0" 24 17 }, 25 18 "_requiredBy": [ 26 19 "/cliui" 27 20 ], 28 "_resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 29 "_spec": "7.0.0", 30 "_where": "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front", 21 "_resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 22 "_shasum": "1fd1f67235d5b6d0fee781056001bfb694c03b09", 23 "_spec": "wrap-ansi@^5.1.0", 24 "_where": "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front\\node_modules\\cliui", 31 25 "author": { 32 26 "name": "Sindre Sorhus", 33 27 "email": "sindresorhus@gmail.com", 34 "url": " https://sindresorhus.com"28 "url": "sindresorhus.com" 35 29 }, 36 30 "bugs": { 37 31 "url": "https://github.com/chalk/wrap-ansi/issues" 38 32 }, 33 "bundleDependencies": false, 39 34 "dependencies": { 40 "ansi-styles": "^ 4.0.0",41 "string-width": "^ 4.1.0",42 "strip-ansi": "^ 6.0.0"35 "ansi-styles": "^3.2.0", 36 "string-width": "^3.0.0", 37 "strip-ansi": "^5.0.0" 43 38 }, 39 "deprecated": false, 44 40 "description": "Wordwrap a string with ANSI escape codes", 45 41 "devDependencies": { 46 "ava": "^ 2.1.0",47 "chalk": "^ 4.0.0",42 "ava": "^1.2.1", 43 "chalk": "^2.4.2", 48 44 "coveralls": "^3.0.3", 49 "has-ansi": "^ 4.0.0",50 "nyc": "^1 5.0.1",51 "xo": "^0.2 9.1"45 "has-ansi": "^3.0.0", 46 "nyc": "^13.3.0", 47 "xo": "^0.24.0" 52 48 }, 53 49 "engines": { 54 "node": ">= 10"50 "node": ">=6" 55 51 }, 56 52 "files": [ 57 53 "index.js" 58 54 ], 59 "funding": "https://github.com/chalk/wrap-ansi?sponsor=1",60 55 "homepage": "https://github.com/chalk/wrap-ansi#readme", 61 56 "keywords": [ … … 95 90 "test": "xo && nyc ava" 96 91 }, 97 "version": " 7.0.0"92 "version": "5.1.0" 98 93 } -
trip-planner-front/node_modules/wrap-ansi/readme.md
r59329aa re29cc2e 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)1 # wrap-ansi [![Build Status](https://travis-ci.org/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.org/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 2 3 3 > Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) 4 4 5 5 6 ## Install … … 8 9 $ npm install wrap-ansi 9 10 ``` 11 10 12 11 13 ## Usage … … 23 25 <img width="331" src="screenshot.png"> 24 26 25 ## API26 27 ### wrapAnsi(string, columns, options?)28 29 Wrap words to the specified column width.30 31 #### string32 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 #### columns38 39 Type: `number`40 41 Number of columns to wrap the text to.42 43 #### options44 45 Type: `object`46 47 ##### hard48 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 ##### wordWrap55 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 ##### trim62 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 ## Related69 70 - [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes71 - [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal72 - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right73 - [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures.74 75 ## Maintainers76 77 - [Sindre Sorhus](https://github.com/sindresorhus)78 - [Josh Junon](https://github.com/qix-)79 - [Benjamin Coe](https://github.com/bcoe)80 81 27 --- 82 28 … … 90 36 </sub> 91 37 </div> 38 39 --- 40 41 42 ## API 43 44 ### wrapAnsi(input, columns, [options]) 45 46 Wrap words to the specified column width. 47 48 #### input 49 50 Type: `string` 51 52 String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). 53 54 #### columns 55 56 Type: `number` 57 58 Number of columns to wrap the text to. 59 60 #### options 61 62 Type: `Object` 63 64 ##### hard 65 66 Type: `boolean`<br> 67 Default: `false` 68 69 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. 70 71 ##### wordWrap 72 73 Type: `boolean`<br> 74 Default: `true` 75 76 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. 77 78 ##### trim 79 80 Type: `boolean`<br> 81 Default: `true` 82 83 Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim. 84 85 86 ## Related 87 88 - [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes 89 - [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal 90 - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right 91 - [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures. 92 93 94 ## Maintainers 95 96 - [Sindre Sorhus](https://github.com/sindresorhus) 97 - [Josh Junon](https://github.com/qix-) 98 - [Benjamin Coe](https://github.com/bcoe) 99 100 101 ## Security 102 103 To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. 104 105 106 ## License 107 108 MIT
Note:
See TracChangeset
for help on using the changeset viewer.