Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
The word-wrap npm package is a simple utility that allows you to wrap words to a specified width. This can be particularly useful when dealing with text formatting in console applications or when generating text content that needs to adhere to certain width constraints.
Basic word wrapping
This feature allows you to wrap a long string of text to a specified width. The 'width' option defines the maximum length of the lines in the output.
const wrap = require('word-wrap');
const text = 'This is a long piece of text that needs to be wrapped.';
const wrappedText = wrap(text, {width: 20});
console.log(wrappedText);
Custom indentation
This feature allows you to add custom indentation to the beginning of each line in the wrapped text. The 'indent' option specifies the string to use for indentation.
const wrap = require('word-wrap');
const text = 'This text will have an indentation.';
const wrappedText = wrap(text, {width: 20, indent: ' '});
console.log(wrappedText);
Trimming
This feature enables the trimming of leading and trailing whitespace from the input text before wrapping. The 'trim' option is a boolean that activates this behavior.
const wrap = require('word-wrap');
const text = ' This text has extra spaces that will be trimmed. ';
const wrappedText = wrap(text, {width: 20, trim: true});
console.log(wrappedText);
Custom newline character
This feature allows you to specify a custom newline character to be used in the wrapped text. The 'newline' option lets you define what characters to use for line breaks.
const wrap = require('word-wrap');
const text = 'This text will use a custom newline character.';
const wrappedText = wrap(text, {width: 20, newline: '\n\n'});
console.log(wrappedText);
Cut long words
This feature allows you to specify whether long words should be cut to fit the specified width. The 'cut' option is a boolean that, when true, will break a word that is longer than the specified width.
const wrap = require('word-wrap');
const text = 'A verylongwordthatneedstobewrapped.';
const wrappedText = wrap(text, {width: 10, cut: true});
console.log(wrappedText);
wrap-ansi is a package similar to word-wrap but with additional support for ANSI escape codes, which are commonly used for coloring and styling text in terminal applications. This makes wrap-ansi more suitable for applications that require maintaining text styles after wrapping.
cli-wrap is another package that provides text wrapping functionality with a focus on CLI applications. It offers features like word wrapping, centering text, and more, but it is not as widely used or as well-known as word-wrap.
text-table is a package that allows for creating text-based tables with aligned columns. While it is not a direct alternative to word-wrap, it does include text wrapping as part of its functionality to ensure that table cells display text correctly.
Wrap words to a specified length.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install with npm:
$ npm install --save word-wrap
var wrap = require('word-wrap');
wrap('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.');
Results in:
Lorem ipsum dolor sit amet, consectetur adipiscing
elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
Type: Number
Default: 50
The width of the text before wrapping to a new line.
Example:
wrap(str, {width: 60});
Type: String
Default: `` (two spaces)
The string to use at the beginning of each line.
Example:
wrap(str, {indent: ' '});
Type: String
Default: \n
The string to use at the end of each line.
Example:
wrap(str, {newline: '\n\n'});
Type: function
Default: function(str){return str;}
An escape function to run on each line after splitting them.
Example:
var xmlescape = require('xml-escape');
wrap(str, {
escape: function(string){
return xmlescape(string);
}
});
Type: Boolean
Default: false
Trim trailing whitespace from the returned string. This option is included since .trim()
would also strip the leading indentation from the first line.
Example:
wrap(str, {trim: true});
Type: Boolean
Default: false
Break a word between any two letters when the word is longer than the specified width.
Example:
wrap(str, {cut: true});
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
You might also be interested in these projects:
Commits | Contributor |
---|---|
47 | jonschlinkert |
7 | OlafConijn |
3 | doowb |
2 | aashutoshrathi |
2 | lordvlad |
2 | hildjj |
1 | danilosampaio |
1 | 2fd |
1 | leonard-thieu |
1 | mohd-akram |
1 | toddself |
1 | wolfgang42 |
1 | zachhale |
Jon Schlinkert
Copyright © 2023, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on July 22, 2023.
FAQs
Wrap words to a specified length.
The npm package word-wrap receives a total of 25,414,875 weekly downloads. As such, word-wrap popularity was classified as popular.
We found that word-wrap demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.