You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

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 and outro (#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

  • Add length method (#145)
  • Fix trimming chunks with intro/outro (#144)

0.24.1

  • Add lastLine and lastChar 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 and storeName 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

  • Prevent overwrite state corruption (#115)
  • Various bugfixes (#126)

0.21.3

  • Clone indentExclusionRanges correctly (#122)
  • Fix more typings (#122)

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 to true 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 to overwrite

0.19.0

  • More accurate bundle sourcemaps (#114)

0.18.0

  • Optimisation remove empty chunks following overwrite or remove (#113)

0.17.0

  • Add appendLeft, appendRight, prependLeft, prependRight methods (#109)
  • insertLeft and insertRight are deprecated in favour of appendLeft and prependRight respectively

0.16.0

  • Include inserts in range for overwrite and remove 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 now insertLeft, insertBefore is now insertRight
  • Breaking: insert is no longer available. Use insertLeft and insertRight
  • Significant performance improvements

0.12.1

  • Fix sourcemap generation with insertAfter and insertBefore

0.12.0

  • Add insertAfter and insertBefore 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 and locateOrigin 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 like String.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 of s.overwrite() (identical signature)
  • bundle.addSource() can take a MagicString instance as its sole argument, for convenience
  • The options in new MagicString(str, options) can include filename and indentExclusionRanges 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

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 is null if no lines are indented. Use source.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 an indentExclusionRanges 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 to options.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 a toUrl() method that generates a DataURI

0.1.7

  • Implement s.insert( index, content ) - roughly equivalent to s.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) characters x and y 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() returns this (i.e. is chainable)

0.1.2

  • Implement s.slice()

0.1.1

  • Implement s.trim()

0.1.0

  • First release