
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@shelf/text-normalizer
Advanced tools
Text normalizer initially done for openai/whisper but ported to TS with love by shelf.io!
Originally took from openai/whisperer and rewrote to TS
TypeScript library for normalizing English text. It provides a utility class EnglishTextNormalizer
with methods for normalizing various types of text, such as contractions, abbreviations, and spacing.
EnglishTextNormalizer
consists of other classes you can reuse independently:
EnglishSpellingNormalizer
- uses a dictionary of English words and their American spelling. The dictionary is stored in a JSON file named english.json
EnglishNumberNormalizer
- works specifically to normalize text from English words to actually numbers
BasicTextNormalizer
- provides methods for removing special characters and diacritics from text, as well as splitting words into separate letters.
$ yarn add @shelf/text-normalizer
import {EnglishTextNormalizer} from '@shelf/text-normalizer';
const normalizer = new EnglishTextNormalizer();
console.log(normalizer.normalize("Let's")); // Output: let us
console.log(normalizer.normalize("he's like")); // Output: he is like
console.log(normalizer.normalize("she's been like")); // Output: she has been like
console.log(normalizer.normalize('10km')); // Output: 10 km
console.log(normalizer.normalize('10mm')); // Output: 10 mm
console.log(normalizer.normalize('RC232')); // Output: rc 232
console.log(normalizer.normalize('Mr. Park visited Assoc. Prof. Kim Jr.')); // Output: mister park visited associate professor kim junior
import {EnglishTextNormalizer} from 'https://esm.sh/@shelf/text-normalizer';
const normalizer = new EnglishTextNormalizer();
console.log(normalizer.normalize("Let's")); // Output: let us
console.log(normalizer.normalize("he's like!")); // Output: he is like
import {EnglishNumberNormalizer} from '@shelf/text-normalizer';
const numberNormalizer = new EnglishNumberNormalizer();
console.log(numberNormalizer.normalize('twenty-five')); // Output: 25
console.log(numberNormalizer.normalize('three million')); // Output: 3000000
console.log(numberNormalizer.normalize('two and a half')); // Output: 2.5
console.log(numberNormalizer.normalize('fifty percent')); // Output: 50%
import {EnglishSpellingNormalizer} from '@shelf/text-normalizer';
const spellingNormalizer = new EnglishSpellingNormalizer();
console.log(spellingNormalizer.normalize('colour')); // Output: color
console.log(spellingNormalizer.normalize('organise')); // Output: organize
import {BasicTextNormalizer} from '@shelf/text-normalizer';
const basicNormalizer = new BasicTextNormalizer(true, true);
console.log(basicNormalizer.normalize('Café!')); // Output: c a f e
console.log(basicNormalizer.normalize('Hello [World]')); // Output: h e l l o
The BasicTextNormalizer
constructor accepts two optional boolean parameters:
removeDiacritics
(default: false
): If set to true
, diacritics will be removed from the text.splitLetters
(default: false
): If set to true
, letters will be split into individual characters.Example:
const normalizer = new BasicTextNormalizer(true, true);
EnglishTextNormalizer
combines multiple normalization techniques and may be slower for very large texts. Consider using individual normalizers (EnglishNumberNormalizer
, EnglishSpellingNormalizer
, or BasicTextNormalizer
) if you only need specific functionality.$ git checkout master
$ yarn version
$ yarn publish
$ git push origin master --tags
MIT © Shelf
FAQs
Text normalizer initially done for openai/whisper but ported to TS with love by shelf.io!
The npm package @shelf/text-normalizer receives a total of 14 weekly downloads. As such, @shelf/text-normalizer popularity was classified as not popular.
We found that @shelf/text-normalizer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 59 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.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.