CHANGELOG.md
10.6 KB
magic-string changelog
0.25.7
- fix bundle mappings after remove and move in multiple sources (#172)
0.25.6
- Use bitwise operators for small performance boost (#171)
0.25.5
- Use a bitset to reduce memory consumption (#167)
0.25.4
- Clone
intro
andoutro
(#162)
0.25.3
- Fix typing of
SourceMap.version
.
0.25.2
- Remove deprecated
new Buffer(...)
- Handle characters outside Latin1 range when generating a sourcemap in browser (#154)
0.25.1
- Additional types for index.d.ts (#148)
0.25.0
0.24.1
- Add
lastLine
andlastChar
methods (#142)
0.24.0
- Add
isEmpty
methods (#137) - Fix a potential race condition (#136)
- Fix CJS/ES bundles inlining
sourcemap-codec
in 0.23.2.
0.23.2
- Add
generateDecodedMap
methods (#134)
0.23.1
- Performance (#132)
0.23.0
- Use
sourcemap-codec
for improved performance (#133)
0.22.5
- Add TypeScript interfaces used by rollup (#131)
- Remove src directory from npm package
0.22.4
-
contentOnly
andstoreName
are both optional
0.22.3
- Add
original
to TS definitions
0.22.2
- Avoid
declare module
(#127)
0.22.1
- Update TypeScript definitions (#124)
0.22.0
0.21.3
0.21.2
- Add
default
property referencing self in index-legacy.js, to work around TypeScript bug (#121)
0.21.1
- Add typings file to package
0.21.0
- Add TypeScript bindings (#119)
0.20.0
- The fourth argument to
overwrite
is a{storeName, contentOnly}
options object.storeName: true
is equivalent totrue
before.contentOnly
will preserve existing appends/prepends to the chunk in question
0.19.1
- Prevent overwrites across a split point (i.e. following a
move
) - Implement
remove
separately tooverwrite
0.19.0
- More accurate bundle sourcemaps (#114)
0.18.0
- Optimisation – remove empty chunks following
overwrite
orremove
(#113)
0.17.0
- Add
appendLeft
,appendRight
,prependLeft
,prependRight
methods (#109) -
insertLeft
andinsertRight
are deprecated in favour ofappendLeft
andprependRight
respectively
0.16.0
- Include inserts in range for
overwrite
andremove
operations (#89) - Make options optional for
bundle.generateMap(...)
(#73)
0.15.2
- Generate correct bundle sourcemap with prepended/appended content
0.15.1
- Minor sourcemap fixes
0.15.0
- Use named export of
Bundle
in ES build, so ES consumers of magic-string can tree-shake it out
0.14.0
- Throw if overwrite of zero-length range is attempted
- Correctly handle redundant move operations
0.13.1
- Fix a bevy of
s.slice()
issues (#62)
0.13.0
- Breaking:
insertAfter
is nowinsertLeft
,insertBefore
is nowinsertRight
- Breaking:
insert
is no longer available. UseinsertLeft
andinsertRight
- Significant performance improvements
0.12.1
- Fix sourcemap generation with
insertAfter
andinsertBefore
0.12.0
- Add
insertAfter
andinsertBefore
methods
0.11.4
- Fix two regression bugs with
trim()
- More informative error message on illegal removals
0.11.3
- Fix trim methods to ensure correct sourcemaps with trimmed content (#53)
0.11.2
- Support sourcemaps with moved content
0.11.1
- Use
findIndex
helper for 0.12 support
0.11.0
- Add experimental
move()
method - Refactor internals to support
move()
0.10.2
- Do not overwrite inserts at the end of patched ranges (#35)
0.10.1
- Zero-length inserts are not removed on adjacent overwrites
0.10.0
- Complete rewrite, resulting in ~40x speed increase (#30)
- Breaking –
magicString.locate
andlocateOrigin
are deprecated - More forgiving rules about contiguous patches, and which ranges are valid with
magicString.slice(...)
0.9.1
- Update deps
0.9.0
- Update build process
0.8.0
- Add an ES6 build, change default UMD build to CommonJS (but keeping existing UMD build with bundled dependencies)
- Make properties non-enumerable, for cleaner logging
- Update dependencies
0.7.0
- The
names
array is populated when generating sourcemaps, and mappings include name indices where appropriate (#16) - Replaced content is mapped correctly in sourcemaps (#15)
0.6.6
- Adjust mappings correctly when removing replaced content
- Error correctly when removed characters are used as slice anchors
0.6.5
- Fix
jsnext:main
in package.json
0.6.4
- Fix bug with positive integer coercion
0.6.3
- Intro content is correctly indented
- Content following an intro with trailing newline is correctly indented
0.6.2
- Noop indents are still chainable (fixes bug introduced in 0.6.1)
0.6.1
- Indenting with an empty string is a noop
0.6.0
- Use rollup for bundling, instead of esperanto
0.5.3
- Correct sourcemap generation with bundles containing varied separators
-
s.clone()
clones indent exclusion ranges and sourcemap locations
0.5.2
-
s.slice()
accepts negative numbers, and the second argument can be omitted (means 'original string length'), just likeString.prototype.slice
- More informative error message when trying to overwrite content illegally
0.5.1
- Allow bundle separator to be the empty string
- Indenting is handled correctly with empty string separator
0.5.0
-
s.replace()
is deprecated in favour ofs.overwrite()
(identical signature) -
bundle.addSource()
can take aMagicString
instance as its sole argument, for convenience - The
options
innew MagicString(str, options)
can includefilename
andindentExclusionRanges
options, which will be used when bundling - New method:
s.snip( start, end )
0.4.9
-
file
option is optional when generating a bundle sourcemap
0.4.7
- Repeated insertions at position 0 behave the same as other positions (#10)
0.4.6
- Overlapping ranges can be removed
- Non-string content is rejected (#9)
0.4.5
- Implement
source.addSourcemapLocation()
0.4.4
- Another Windows fix, this time for file paths when bundling
0.4.3
- Handle Windows-style CRLF newlines when determining whether a line is empty
0.4.2
- Fix typo in package.json (d'oh again)
- Use only relative paths for internal modules - makes bundling with dependents (i.e. esperanto) possible
0.4.1
- Includes correct files in npm package (d'oh)
0.4.0
- Using experimental Esperanto feature (esperantojs/esperanto#68) to generate version with
vlq
dependency included
0.3.1
- Fixes a bug whereby multiple insertions at the same location would cause text to repeat (#5)
0.3.0
- Breaking change -
source.indentStr
isnull
if no lines are indented. Usesource.getIndentString()
for the old behaviour (guess, and if no lines are indented, return\t
) -
bundle.getIndentString()
ignores sources with no indented lines when guessing indentation (#3)
0.2.7
-
source.trimLines()
removes empty lines from start/end of source, leaving other whitespace untouched - Indentation is not added to an empty source
0.2.6
- Performance improvement - adjustments are only made when necessary
0.2.5
- Single spaces are ignored when guessing indentation - experience shows these are more likely to be e.g. JSDoc comments than actual indentation
-
bundle.addSource()
can take anindentExclusionRanges
option
0.2.4
- Empty lines are not indented
0.2.3
- Fixes edge case with bundle sourcemaps
0.2.2
- Make
sources
paths in sourcemaps relative tooptions.file
0.2.1
- Minor fix for
bundle.indent()
0.2.0
- Implement
MagicString.Bundle
for concatenating magic strings
0.1.10
- Fix sourcemap encoding
0.1.9
- Better performance when indenting large chunks of code
0.1.8
- Sourcemaps generated with
s.generateMap()
have atoUrl()
method that generates a DataURI
0.1.7
- Implement
s.insert( index, content )
- roughly equivalent tos.replace( index, index, content )
0.1.6
- Version bump for npm's benefit
0.1.5
-
s.indent({ exclude: [ x, y ] })
prevents lines between (original) charactersx
andy
from being indented. Multiple exclusion ranges are also supported (e.g.exclude: [[a, b], [c, d]]
)
0.1.4
-
s.locate()
doesn't throw out-of-bound error if index is equal to original string's length
0.1.3
-
s.trim()
returnsthis
(i.e. is chainable)
0.1.2
- Implement
s.slice()
0.1.1
- Implement
s.trim()
0.1.0
- First release