Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socketโs threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@igor.dvlpr/magic-string
Advanced tools
๐งต An expressive and chainable library for advanced string manipulations. Supports appending, prepending, trimming, quoting, and path formatting with customizable whitespace handling. Makes advanced String manipulations a piece of cake. ๐ฆฅ
๐ Support further development
I work hard for every project, including this one
and your support means a lot to me!
Consider buying me a coffee. โ
Thank you for supporting my efforts! ๐๐
@igorskyflyer
Install it by executing:
npm i '@igor.dvlpr/magic-string'
All string-related methods use a common string type that can either be a string or a string array. StringValue
defined as:
type StringValue = string | string[]
constructor(initialValue?: StringValue)
Creates a new instance of MagicString.
initialValue
- Optional, the initial value to assign to the accumulator.
[!NOTE] The value is assigned to the accumulator as-is, no processing is performed.
value: string
Gets the accumulator value.
Returns the accumulator as a string.
length: number
Gets the length of the accumulator.
Returns the length of the accumulator.
isEmpty(): boolean
Checks if the accumulator is empty.
Returns true if the accumulator is empty, false otherwise.
clear()
Clears the accumulator.
Returns the current instance of MagicString
.
append(value: StringValue)
Appends a value to the accumulator.
value
- The value to append.
Returns the current instance of MagicString
.
appendIf(value: StringValue, ...rest: StringValue[])
Conditionally appends values to the accumulator only if the primary value is followed by other non-empty values.
This method checks if the provided rest values are non-empty before appending them.
Supports passing multiple string values as rest parameters or a single array of strings.
value
- The primary value to append.
rest
- Additional values to check and append.
Returns the current instance of MagicString
.
appendSingleQuoted(value: StringValue)
Appends a single-quoted value to the accumulator.
value
- The value to append.
Returns the current instance of MagicString
.
appendQuoted(value: StringValue)
Appends a double-quoted value to the accumulator.
value
- The value to append.
Returns the current instance of MagicString
.
trimAll()
Trims all whitespace in the accumulator.
Returns the current instance of MagicString
.
trim()
Trims only leading and trailing whitespace from the accumulator.
Returns the current instance of MagicString
.
trimOn()
Enables trimming of values before adding them to the accumulator.
Returns the current instance of MagicString
.
trimOff()
Disables trimming of values before adding them to the accumulator.
Returns the current instance of MagicString
.
trimStart()
Trims only leading whitespace from the accumulator.
Returns the current instance of MagicString
.
trimEnd()
Trims only trailing whitespace from the accumulator.
Returns the current instance of MagicString
.
path(value: StringValue)
Appends a value representing a path to the accumulator, wrapping it in double quotes if necessary.
value
- The path value to append.
Returns the current instance of MagicString
.
prepend(value: StringValue)
Prepends a value to the accumulator.
value
- The value to prepend.
Returns the current instance of MagicString
.
toLowerCase()
Converts the accumulator to lower case.
Returns the current instance of MagicString
.
toUpperCase()
Converts the accumulator to upper case.
Returns the current instance of MagicString
.
replace(searchValue: string, replaceValue: string)
Replaces occurrences of a substring in the accumulator with a new substring.
searchValue
- The substring to search for.
replaceValue
- The substring to replace with.
Returns the current instance of MagicString
.
insert(value: StringValue, index: number)
Inserts a value at a specified index in the accumulator.
If the index
is negative or zero, the value is prepended.
If the index
is greater than or equal to the length of the current accumulator, the value is appended.
value
- The value to insert.
index
- The position at which to insert the value.
Returns the current instance of MagicString
.
substring(start: number, end?: number)
Extracts a substring from the accumulator between specified indices.
start
- The starting index of the substring.
end
- The ending index of the substring (optional).
Returns the current instance of MagicString
.
example.mts
import { MagicString } from '@igor.dvlpr/magic-string'
console.log(
new MagicString()
.append('Hello')
.appendSingleQuoted('world')
.appendQuoted('this is a test')
.prepend('Start: ')
.trimAll()
.path('/usr/local/bin')
.toUpperCase()
.path('/usr/local/my file.txt"') // intentional stray quote
.toLowerCase()
.toUpperCase()
.trimOn()
.append(' Trimmed ')
.trimOff()
.append(' Not trimmed')
.trim().value
)
// prints 'START: HELLO \'WORLD\' "THIS IS A TEST" /USR/LOCAL/BIN "/USR/LOCAL/MY FILE.TXT" Trimmed Not trimmed'
๐ The changelog is available here: CHANGELOG.md.
Licensed under the MIT license which is available here, MIT license.
๐ฆ ExtendableString allows you to create strings on steroids that have custom transformations applied to them, unlike common, plain strings. ๐ช
๐งต Provides ways of checking whether a String is present in an Array of Strings using custom Comparators. ๐
๐ NormalizedString provides you with a String type with consistent line-endings, guaranteed. ๐ฎ
@igor.dvlpr/astro-escaped-component
๐๐ปโโ๏ธโโก๏ธ An Astro component that holds only HTML-encoded content. ๐
๐ฅ Removes HTML code from the given string. Can even extract text-only from the given an HTML string. โจ
Created by Igor Dimitrijeviฤ (@igorskyflyer).
v1.1.0
<p align="right"><em>03-Aug-2024</em></p>appendIf()
- a conditional appending methodtrimStart()
- trims leading whitespacetrimEnd()
- trims trailing whitespacereplace()
- replaces a value with anotherinsert()
- inserts a string at the given index in the accumulatorsubstring()
- gets a substring of the current accumulatorlength
- returns the length of the accumulator valueconstructor
StringValue
append()
, appendIf()
and insert()
FAQs
๐งต An expressive and chainable library for advanced string manipulations. Supports appending, prepending, trimming, quoting, and path formatting with customizable whitespace handling. Makes advanced String manipulations a piece of cake. ๐ฆฅ
The npm package @igor.dvlpr/magic-string receives a total of 7 weekly downloads. As such, @igor.dvlpr/magic-string popularity was classified as not popular.
We found that @igor.dvlpr/magic-string demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 0 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
Security News
Socketโs threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.