{"_id":"@cjser/cli-truncate__v5_2_0","name":"@cjser/cli-truncate__v5_2_0","dist-tags":{"latest":"5.2.0-cjser.2"},"versions":{"5.2.0-cjser.2":{"name":"@cjser/cli-truncate__v5_2_0","version":"5.2.0-cjser.2","description":"Truncate a string to a specific width in the terminal","license":"MIT","repository":{"type":"git","url":"https://code.moenext.com/3rdeye/cjser.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{"types":"./index.d.ts","require":"./dist-cjser/index.cjs","default":"./index.js"},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["truncate","ellipsis","text","limit","slice","cli","terminal","term","shell","width","ansi","string"],"dependencies":{"@cjser/slice-ansi__v8_0_0":"8.0.0-cjser.2","@cjser/string-width":"8.2.1-cjser.2"},"devDependencies":{"ava":"^7.0.0","tsd":"^0.33.0","xo":"^1.2.2"},"types":"./index.d.ts","main":"./dist-cjser/index.cjs","cjser":{"sourceVersion":"5.2.0","cjserVersion":2,"original":{"name":"cli-truncate","version":"5.2.0","exports":{"types":"./index.d.ts","default":"./index.js"},"repository":"sindresorhus/cli-truncate","dependencies":{"slice-ansi":"^8.0.0","string-width":"^8.2.0"},"files":["index.js","index.d.ts"],"scripts":{"test":"xo && ava && tsd"}}},"_id":"@cjser/cli-truncate__v5_2_0@5.2.0-cjser.2","gitHead":"0168e4aac54a1a9ca6f921419fa5ed9edb53ef4a","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-rV+kpHZv30ZGuwoihOV0Qh55F4Lb/2350LRLxui+30cDizrmlWbe7tMU+yYWSmsxcqWLd9CMcbptQqz9OL1JeA==","shasum":"122db1f6d934d4ecb5e7e924e4cc031a4647e6af","tarball":"https://registry.npmjs.org/@cjser/cli-truncate__v5_2_0/-/cli-truncate__v5_2_0-5.2.0-cjser.2.tgz","fileCount":6,"unpackedSize":20775,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICJuBxEr1hbXcXbNZ2usgUnWE1e1L/+XiKKUZjS7pzrFAiBXMmHERObWHvUXqEQd0DWI9ClFHOVt/egLdLTXorQIUg=="}]},"_npmUser":{"name":"nanahira","email":"nanahira@momobako.com"},"directories":{},"maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli-truncate__v5_2_0_5.2.0-cjser.2_1778130464237_0.6156333236731943"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T05:07:44.174Z","5.2.0-cjser.2":"2026-05-07T05:07:44.452Z","modified":"2026-05-07T05:07:44.632Z"},"maintainers":[{"name":"nanahira","email":"nanahira@momobako.com"}],"description":"Truncate a string to a specific width in the terminal","keywords":["truncate","ellipsis","text","limit","slice","cli","terminal","term","shell","width","ansi","string"],"repository":{"type":"git","url":"https://code.moenext.com/3rdeye/cjser.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT","readme":"# cli-truncate\n\n> Truncate a string to a specific width in the terminal\n\nGracefully handles [ANSI escapes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles). Like a string styled with [`chalk`](https://github.com/chalk/chalk). It also supports Unicode surrogate pairs and fullwidth characters.\n\n## Install\n\n```sh\nnpm install cli-truncate\n```\n\n## Usage\n\n```js\nimport cliTruncate from 'cli-truncate';\n\ncliTruncate('unicorn', 4);\n//=> 'uni…'\n\n// Truncate at different positions\ncliTruncate('unicorn', 4, {position: 'start'});\n//=> '…orn'\n\ncliTruncate('unicorn', 4, {position: 'middle'});\n//=> 'un…n'\n\ncliTruncate('unicorns rainbow dragons', 6, {position: 'end'});\n//=> 'unico…'\n\ncliTruncate('\\u001B[31municorn\\u001B[39m', 4);\n//=> '\\u001B[31muni…\\u001B[39m'\n\n> [!NOTE]\n> When truncating styled text (ANSI escapes), the truncation character inherits the style at the breaking point for `position: 'start'` and `position: 'end'`. This does not apply to `position: 'middle'`.\n\n// Truncate Unicode surrogate pairs\ncliTruncate('uni\\uD83C\\uDE00corn', 5);\n//=> 'uni\\uD83C\\uDE00…'\n\n// Truncate fullwidth characters\ncliTruncate('안녕하세요', 3);\n//=> '안…'\n\n// Truncate the paragraph to the terminal width\nconst paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.';\ncliTruncate(paragraph, process.stdout.columns);\n//=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing…'\n```\n\n## API\n\n### cliTruncate(text, columns, options?)\n\n#### text\n\nType: `string`\n\nThe text to truncate.\n\n#### columns\n\nType: `number`\n\nThe number of columns to occupy in the terminal.\n\n#### options\n\nType: `object`\n\n##### position\n\nType: `string`\\\nDefault: `'end'`\\\nValues: `'start' | 'middle' | 'end'`\n\nThe position to truncate the string.\n\n##### space\n\nType: `boolean`\\\nDefault: `false`\n\nAdd a space between the text and the ellipsis.\n\n```js\nimport cliTruncate from 'cli-truncate';\n\ncliTruncate('unicorns', 5, {space: false});\n//=> 'unic…'\n\ncliTruncate('unicorns', 5, {space: true});\n//=> 'uni …'\n\ncliTruncate('unicorns', 6, {position: 'start', space: true});\n//=> '… orns'\n\ncliTruncate('unicorns', 7, {position: 'middle', space: true});\n//=> 'uni … s'\n```\n\n##### preferTruncationOnSpace\n\nType: `boolean`\\\nDefault: `false`\n\nTruncate the string from a whitespace if it is within 3 characters from the actual breaking point.\n\n```js\nimport cliTruncate from 'cli-truncate';\n\ncliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true});\n//=> '…rainbow dragons'\n\n// Without preferTruncationOnSpace\ncliTruncate('unicorns rainbow dragons', 20, {position: 'start'});\n//=> '…rns rainbow dragons'\n\ncliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true});\n//=> 'unicorns…dragons'\n\ncliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true});\n//=> 'unico…'\n\n// preferTruncationOnSpace has no effect if space isn't found within 3 characters\ncliTruncate('unicorns rainbow dragons', 6, {position: 'middle', preferTruncationOnSpace: true});\n//=> 'uni…ns'\n```\n\n##### truncationCharacter\n\nType: `string`\\\nDefault: `…`\n\nThe character to use at the breaking point.\n\n```js\nimport cliTruncate from 'cli-truncate';\n\ncliTruncate('unicorns', 5, {position: 'end'});\n//=> 'unic…'\n\ncliTruncate('unicorns', 5, {position: 'end', truncationCharacter: '.'});\n//=> 'unic.'\n\ncliTruncate('unicorns', 5, {position: 'end', truncationCharacter: ''});\n//=> 'unico'\n\n```\n\n## Related\n\n- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes\n- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes\n\n## cjser\n\nThis package is a CommonJS-compatible build generated by cjser for projects that still need `require()` support. The source version matches the original npm package version, with a cjser prerelease suffix for this generated build.\nOriginal repository: https://github.com/sindresorhus/cli-truncate\n","readmeFilename":"readme.md","_rev":"1-daed8d176a18ca7ecc4d06613b5d59c4"}