\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16309}{}\doxysection{0.\+25.\+7}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16309}

\begin{DoxyItemize}
\item fix bundle mappings after remove and move in multiple sources (\href{https://github.com/Rich-Harris/magic-string/issues/172}{\texttt{ \#172}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16310}{}\doxysection{0.\+25.\+6}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16310}

\begin{DoxyItemize}
\item Use bitwise operators for small performance boost (\href{https://github.com/Rich-Harris/magic-string/pull/171}{\texttt{ \#171}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16311}{}\doxysection{0.\+25.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16311}

\begin{DoxyItemize}
\item Use a bitset to reduce memory consumption (\href{https://github.com/Rich-Harris/magic-string/issues/167}{\texttt{ \#167}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16312}{}\doxysection{0.\+25.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16312}

\begin{DoxyItemize}
\item Clone {\ttfamily intro} and {\ttfamily outro} (\href{https://github.com/Rich-Harris/magic-string/issues/162}{\texttt{ \#162}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16313}{}\doxysection{0.\+25.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16313}

\begin{DoxyItemize}
\item Fix typing of {\ttfamily Source\+Map.\+version}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16314}{}\doxysection{0.\+25.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16314}

\begin{DoxyItemize}
\item Remove deprecated {\ttfamily new Buffer(...)}
\item Handle characters outside Latin1 range when generating a sourcemap in browser (\href{https://github.com/Rich-Harris/magic-string/issues/154}{\texttt{ \#154}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16315}{}\doxysection{0.\+25.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16315}

\begin{DoxyItemize}
\item Additional types for index.\+d.\+ts (\href{https://github.com/Rich-Harris/magic-string/pull/148}{\texttt{ \#148}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16316}{}\doxysection{0.\+25.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16316}

\begin{DoxyItemize}
\item Add {\ttfamily length} method (\href{https://github.com/Rich-Harris/magic-string/pull/145}{\texttt{ \#145}})
\item Fix trimming chunks with intro/outro (\href{https://github.com/Rich-Harris/magic-string/pull/144}{\texttt{ \#144}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16317}{}\doxysection{0.\+24.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16317}

\begin{DoxyItemize}
\item Add {\ttfamily last\+Line} and {\ttfamily last\+Char} methods (\href{https://github.com/Rich-Harris/magic-string/pull/142}{\texttt{ \#142}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16318}{}\doxysection{0.\+24.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16318}

\begin{DoxyItemize}
\item Add {\ttfamily is\+Empty} methods (\href{https://github.com/Rich-Harris/magic-string/pull/137}{\texttt{ \#137}})
\item Fix a potential race condition (\href{https://github.com/Rich-Harris/magic-string/pull/136}{\texttt{ \#136}})
\item Fix CJS/\+ES bundles inlining {\ttfamily sourcemap-\/codec} in 0.\+23.\+2.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16319}{}\doxysection{0.\+23.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16319}

\begin{DoxyItemize}
\item Add {\ttfamily generate\+Decoded\+Map} methods (\href{https://github.com/Rich-Harris/magic-string/pull/134}{\texttt{ \#134}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16320}{}\doxysection{0.\+23.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16320}

\begin{DoxyItemize}
\item Performance (\href{https://github.com/Rich-Harris/magic-string/pull/132}{\texttt{ \#132}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16321}{}\doxysection{0.\+23.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16321}

\begin{DoxyItemize}
\item Use {\ttfamily sourcemap-\/codec} for improved performance (\href{https://github.com/Rich-Harris/magic-string/pull/133}{\texttt{ \#133}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16322}{}\doxysection{0.\+22.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16322}

\begin{DoxyItemize}
\item Add Type\+Script interfaces used by rollup (\href{https://github.com/Rich-Harris/magic-string/pull/131}{\texttt{ \#131}})
\item Remove src directory from npm package
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16323}{}\doxysection{0.\+22.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16323}

\begin{DoxyItemize}
\item {\ttfamily content\+Only} and {\ttfamily store\+Name} are both optional
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16324}{}\doxysection{0.\+22.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16324}

\begin{DoxyItemize}
\item Add {\ttfamily original} to TS definitions
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16325}{}\doxysection{0.\+22.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16325}

\begin{DoxyItemize}
\item Avoid {\ttfamily declare module} (\href{https://github.com/Rich-Harris/magic-string/pull/127}{\texttt{ \#127}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16326}{}\doxysection{0.\+22.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16326}

\begin{DoxyItemize}
\item Update Type\+Script definitions (\href{https://github.com/Rich-Harris/magic-string/pull/124}{\texttt{ \#124}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16327}{}\doxysection{0.\+22.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16327}

\begin{DoxyItemize}
\item Prevent {\ttfamily overwrite} state corruption (\href{https://github.com/Rich-Harris/magic-string/issues/115}{\texttt{ \#115}})
\item Various bugfixes (\href{https://github.com/Rich-Harris/magic-string/pull/126}{\texttt{ \#126}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16328}{}\doxysection{0.\+21.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16328}

\begin{DoxyItemize}
\item Clone {\ttfamily indent\+Exclusion\+Ranges} correctly (\href{https://github.com/Rich-Harris/magic-string/pull/122}{\texttt{ \#122}})
\item Fix more typings (\href{https://github.com/Rich-Harris/magic-string/pull/122}{\texttt{ \#122}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16329}{}\doxysection{0.\+21.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16329}

\begin{DoxyItemize}
\item Add {\ttfamily default} property referencing self in index-\/legacy.\+js, to work around Type\+Script bug (\href{https://github.com/Rich-Harris/magic-string/pull/121}{\texttt{ \#121}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16330}{}\doxysection{0.\+21.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16330}

\begin{DoxyItemize}
\item Add typings file to package
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16331}{}\doxysection{0.\+21.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16331}

\begin{DoxyItemize}
\item Add Type\+Script bindings (\href{https://github.com/Rich-Harris/magic-string/pull/119}{\texttt{ \#119}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16332}{}\doxysection{0.\+20.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16332}

\begin{DoxyItemize}
\item The fourth argument to {\ttfamily overwrite} is a {\ttfamily \{store\+Name, content\+Only\}} options object. {\ttfamily store\+Name\+: true} is equivalent to {\ttfamily true} before. {\ttfamily content\+Only} will preserve existing appends/prepends to the chunk in question
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16333}{}\doxysection{0.\+19.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16333}

\begin{DoxyItemize}
\item Prevent overwrites across a split point (i.\+e. following a {\ttfamily move})
\item Implement {\ttfamily remove} separately to {\ttfamily overwrite}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16334}{}\doxysection{0.\+19.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16334}

\begin{DoxyItemize}
\item More accurate bundle sourcemaps (\href{https://github.com/Rich-Harris/magic-string/pull/114}{\texttt{ \#114}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16335}{}\doxysection{0.\+18.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16335}

\begin{DoxyItemize}
\item Optimisation – remove empty chunks following {\ttfamily overwrite} or {\ttfamily remove} (\href{https://github.com/Rich-Harris/magic-string/pull/113}{\texttt{ \#113}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16336}{}\doxysection{0.\+17.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16336}

\begin{DoxyItemize}
\item Add {\ttfamily append\+Left}, {\ttfamily append\+Right}, {\ttfamily prepend\+Left}, {\ttfamily prepend\+Right} methods (\href{https://github.com/Rich-Harris/magic-string/issues/109}{\texttt{ \#109}})
\item {\ttfamily insert\+Left} and {\ttfamily insert\+Right} are deprecated in favour of {\ttfamily append\+Left} and {\ttfamily prepend\+Right} respectively
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16337}{}\doxysection{0.\+16.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16337}

\begin{DoxyItemize}
\item Include inserts in range for {\ttfamily overwrite} and {\ttfamily remove} operations (\href{https://github.com/Rich-Harris/magic-string/pull/89}{\texttt{ \#89}})
\item Make options optional for {\ttfamily bundle.\+generate\+Map(...)} (\href{https://github.com/Rich-Harris/magic-string/pull/73}{\texttt{ \#73}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16338}{}\doxysection{0.\+15.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16338}

\begin{DoxyItemize}
\item Generate correct bundle sourcemap with prepended/appended content
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16339}{}\doxysection{0.\+15.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16339}

\begin{DoxyItemize}
\item Minor sourcemap fixes
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16340}{}\doxysection{0.\+15.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16340}

\begin{DoxyItemize}
\item Use named export of {\ttfamily Bundle} in ES build, so ES consumers of magic-\/string can tree-\/shake it out
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16341}{}\doxysection{0.\+14.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16341}

\begin{DoxyItemize}
\item Throw if overwrite of zero-\/length range is attempted
\item Correctly handle redundant move operations
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16342}{}\doxysection{0.\+13.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16342}

\begin{DoxyItemize}
\item Fix a bevy of {\ttfamily s.\+slice()} issues (\href{https://github.com/Rich-Harris/magic-string/pull/62}{\texttt{ \#62}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16343}{}\doxysection{0.\+13.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16343}

\begin{DoxyItemize}
\item Breaking\+: {\ttfamily insert\+After} is now {\ttfamily insert\+Left}, {\ttfamily insert\+Before} is now {\ttfamily insert\+Right}
\item Breaking\+: {\ttfamily insert} is no longer available. Use {\ttfamily insert\+Left} and {\ttfamily insert\+Right}
\item Significant performance improvements
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16344}{}\doxysection{0.\+12.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16344}

\begin{DoxyItemize}
\item Fix sourcemap generation with {\ttfamily insert\+After} and {\ttfamily insert\+Before}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16345}{}\doxysection{0.\+12.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16345}

\begin{DoxyItemize}
\item Add {\ttfamily insert\+After} and {\ttfamily insert\+Before} methods
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16346}{}\doxysection{0.\+11.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16346}

\begin{DoxyItemize}
\item Fix two regression bugs with {\ttfamily trim()}
\item More informative error message on illegal removals
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16347}{}\doxysection{0.\+11.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16347}

\begin{DoxyItemize}
\item Fix trim methods to ensure correct sourcemaps with trimmed content (\href{https://github.com/Rich-Harris/magic-string/pull/53}{\texttt{ \#53}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16348}{}\doxysection{0.\+11.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16348}

\begin{DoxyItemize}
\item Support sourcemaps with moved content
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16349}{}\doxysection{0.\+11.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16349}

\begin{DoxyItemize}
\item Use {\ttfamily find\+Index} helper for 0.\+12 support
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16350}{}\doxysection{0.\+11.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16350}

\begin{DoxyItemize}
\item Add experimental {\ttfamily move()} method
\item Refactor internals to support {\ttfamily move()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16351}{}\doxysection{0.\+10.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16351}

\begin{DoxyItemize}
\item Do not overwrite inserts at the end of patched ranges (\href{https://github.com/Rich-Harris/magic-string/pull/35}{\texttt{ \#35}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16352}{}\doxysection{0.\+10.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16352}

\begin{DoxyItemize}
\item Zero-\/length inserts are not removed on adjacent overwrites
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16353}{}\doxysection{0.\+10.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16353}

\begin{DoxyItemize}
\item Complete rewrite, resulting in $\sim$40x speed increase (\href{https://github.com/Rich-Harris/magic-string/pull/30}{\texttt{ \#30}})
\item Breaking – {\ttfamily magic\+String.\+locate} and {\ttfamily locate\+Origin} are deprecated
\item More forgiving rules about contiguous patches, and which ranges are valid with {\ttfamily magic\+String.\+slice(...)}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16354}{}\doxysection{0.\+9.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16354}

\begin{DoxyItemize}
\item Update deps
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16355}{}\doxysection{0.\+9.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16355}

\begin{DoxyItemize}
\item Update build process
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16356}{}\doxysection{0.\+8.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16356}

\begin{DoxyItemize}
\item Add an ES6 build, change default UMD build to Common\+JS (but keeping existing UMD build with bundled dependencies)
\item Make properties non-\/enumerable, for cleaner logging
\item Update dependencies
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16357}{}\doxysection{0.\+7.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16357}

\begin{DoxyItemize}
\item The {\ttfamily names} array is populated when generating sourcemaps, and mappings include name indices where appropriate (\href{https://github.com/Rich-Harris/magic-string/issues/16}{\texttt{ \#16}})
\item Replaced content is mapped correctly in sourcemaps (\href{https://github.com/Rich-Harris/magic-string/issues/15}{\texttt{ \#15}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16358}{}\doxysection{0.\+6.\+6}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16358}

\begin{DoxyItemize}
\item Adjust mappings correctly when removing replaced content
\item Error correctly when removed characters are used as slice anchors
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16359}{}\doxysection{0.\+6.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16359}

\begin{DoxyItemize}
\item Fix {\ttfamily jsnext\+:main} in package.\+json
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16360}{}\doxysection{0.\+6.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16360}

\begin{DoxyItemize}
\item Fix bug with positive integer coercion
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16361}{}\doxysection{0.\+6.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16361}

\begin{DoxyItemize}
\item Intro content is correctly indented
\item Content following an intro with trailing newline is correctly indented
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16362}{}\doxysection{0.\+6.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16362}

\begin{DoxyItemize}
\item Noop indents are still chainable (fixes bug introduced in 0.\+6.\+1)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16363}{}\doxysection{0.\+6.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16363}

\begin{DoxyItemize}
\item Indenting with an empty string is a noop
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16364}{}\doxysection{0.\+6.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16364}

\begin{DoxyItemize}
\item Use rollup for bundling, instead of esperanto
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16365}{}\doxysection{0.\+5.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16365}

\begin{DoxyItemize}
\item Correct sourcemap generation with bundles containing varied separators
\item {\ttfamily s.\+clone()} clones indent exclusion ranges and sourcemap locations
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16366}{}\doxysection{0.\+5.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16366}

\begin{DoxyItemize}
\item {\ttfamily s.\+slice()} accepts negative numbers, and the second argument can be omitted (means \textquotesingle{}original string length\textquotesingle{}), just like {\ttfamily String.\+prototype.\+slice}
\item More informative error message when trying to overwrite content illegally
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16367}{}\doxysection{0.\+5.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16367}

\begin{DoxyItemize}
\item Allow bundle separator to be the empty string
\item Indenting is handled correctly with empty string separator
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16368}{}\doxysection{0.\+5.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16368}

\begin{DoxyItemize}
\item {\ttfamily s.\+replace()} is deprecated in favour of {\ttfamily s.\+overwrite()} (identical signature)
\item {\ttfamily bundle.\+add\+Source()} can take a {\ttfamily Magic\+String} instance as its sole argument, for convenience
\item The {\ttfamily options} in {\ttfamily new Magic\+String(str, options)} can include {\ttfamily filename} and {\ttfamily indent\+Exclusion\+Ranges} options, which will be used when bundling
\item New method\+: {\ttfamily s.\+snip( start, end )}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16369}{}\doxysection{0.\+4.\+9}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16369}

\begin{DoxyItemize}
\item {\ttfamily file} option is optional when generating a bundle sourcemap
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16370}{}\doxysection{0.\+4.\+7}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16370}

\begin{DoxyItemize}
\item Repeated insertions at position 0 behave the same as other positions (\href{https://github.com/Rich-Harris/magic-string/pull/10}{\texttt{ \#10}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16371}{}\doxysection{0.\+4.\+6}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16371}

\begin{DoxyItemize}
\item Overlapping ranges can be removed
\item Non-\/string content is rejected (\href{https://github.com/Rich-Harris/magic-string/pull/9}{\texttt{ \#9}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16372}{}\doxysection{0.\+4.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16372}

\begin{DoxyItemize}
\item Implement {\ttfamily source.\+add\+Sourcemap\+Location()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16373}{}\doxysection{0.\+4.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16373}

\begin{DoxyItemize}
\item Another Windows fix, this time for file paths when bundling
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16374}{}\doxysection{0.\+4.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16374}

\begin{DoxyItemize}
\item Handle Windows-\/style CRLF newlines when determining whether a line is empty
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16375}{}\doxysection{0.\+4.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16375}

\begin{DoxyItemize}
\item Fix typo in package.\+json (d\textquotesingle{}oh again)
\item Use only relative paths for internal modules -\/ makes bundling with dependents (i.\+e. esperanto) possible
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16376}{}\doxysection{0.\+4.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16376}

\begin{DoxyItemize}
\item Includes correct files in npm package (d\textquotesingle{}oh)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16377}{}\doxysection{0.\+4.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16377}

\begin{DoxyItemize}
\item Using experimental Esperanto feature (\href{https://github.com/esperantojs/esperanto/issues/68}{\texttt{ esperantojs/esperanto\#68}}) to generate version with {\ttfamily vlq} dependency included
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16378}{}\doxysection{0.\+3.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16378}

\begin{DoxyItemize}
\item Fixes a bug whereby multiple insertions at the same location would cause text to repeat (\href{https://github.com/Rich-Harris/magic-string/issues/5}{\texttt{ \#5}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16379}{}\doxysection{0.\+3.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16379}

\begin{DoxyItemize}
\item Breaking change -\/ {\ttfamily source.\+indent\+Str} is {\ttfamily null} if no lines are indented. Use {\ttfamily source.\+get\+Indent\+String()} for the old behaviour (guess, and if no lines are indented, return {\ttfamily \textbackslash{}t})
\item {\ttfamily bundle.\+get\+Indent\+String()} ignores sources with no indented lines when guessing indentation (\href{https://github.com/Rich-Harris/magic-string/issues/3}{\texttt{ \#3}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16380}{}\doxysection{0.\+2.\+7}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16380}

\begin{DoxyItemize}
\item {\ttfamily source.\+trim\+Lines()} removes empty lines from start/end of source, leaving other whitespace untouched
\item Indentation is not added to an empty source
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16381}{}\doxysection{0.\+2.\+6}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16381}

\begin{DoxyItemize}
\item Performance improvement -\/ adjustments are only made when necessary
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16382}{}\doxysection{0.\+2.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16382}

\begin{DoxyItemize}
\item Single spaces are ignored when guessing indentation -\/ experience shows these are more likely to be e.\+g. JSDoc comments than actual indentation
\item {\ttfamily bundle.\+add\+Source()} can take an {\ttfamily indent\+Exclusion\+Ranges} option
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16383}{}\doxysection{0.\+2.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16383}

\begin{DoxyItemize}
\item Empty lines are not indented
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16384}{}\doxysection{0.\+2.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16384}

\begin{DoxyItemize}
\item Fixes edge case with bundle sourcemaps
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16385}{}\doxysection{0.\+2.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16385}

\begin{DoxyItemize}
\item Make {\ttfamily sources} paths in sourcemaps relative to {\ttfamily options.\+file}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16386}{}\doxysection{0.\+2.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16386}

\begin{DoxyItemize}
\item Minor fix for {\ttfamily bundle.\+indent()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16387}{}\doxysection{0.\+2.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16387}

\begin{DoxyItemize}
\item Implement {\ttfamily Magic\+String.\+Bundle} for concatenating magic strings
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16388}{}\doxysection{0.\+1.\+10}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16388}

\begin{DoxyItemize}
\item Fix sourcemap encoding
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16389}{}\doxysection{0.\+1.\+9}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16389}

\begin{DoxyItemize}
\item Better performance when indenting large chunks of code
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16390}{}\doxysection{0.\+1.\+8}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16390}

\begin{DoxyItemize}
\item Sourcemaps generated with {\ttfamily s.\+generate\+Map()} have a {\ttfamily to\+Url()} method that generates a Data\+URI
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16391}{}\doxysection{0.\+1.\+7}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16391}

\begin{DoxyItemize}
\item Implement {\ttfamily s.\+insert( index, content )} -\/ roughly equivalent to {\ttfamily s.\+replace( index, index, content )}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16392}{}\doxysection{0.\+1.\+6}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16392}

\begin{DoxyItemize}
\item Version bump for npm\textquotesingle{}s benefit
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16393}{}\doxysection{0.\+1.\+5}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16393}

\begin{DoxyItemize}
\item {\ttfamily s.\+indent(\{ exclude\+: \mbox{[} x, y \mbox{]} \})} prevents lines between (original) characters {\ttfamily x} and {\ttfamily y} from being indented. Multiple exclusion ranges are also supported (e.\+g. {\ttfamily exclude\+: \mbox{[}\mbox{[}a, b\mbox{]}, \mbox{[}c, d\mbox{]}\mbox{]}})
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16394}{}\doxysection{0.\+1.\+4}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16394}

\begin{DoxyItemize}
\item {\ttfamily s.\+locate()} doesn\textquotesingle{}t throw out-\/of-\/bound error if index is equal to original string\textquotesingle{}s length
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16395}{}\doxysection{0.\+1.\+3}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16395}

\begin{DoxyItemize}
\item {\ttfamily s.\+trim()} returns {\ttfamily this} (i.\+e. is chainable)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16396}{}\doxysection{0.\+1.\+2}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16396}

\begin{DoxyItemize}
\item Implement {\ttfamily s.\+slice()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16397}{}\doxysection{0.\+1.\+1}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16397}

\begin{DoxyItemize}
\item Implement {\ttfamily s.\+trim()}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16398}{}\doxysection{0.\+1.\+0}\label{md_sfcode_node_modules_magic_string_CHANGELOG_autotoc_md16398}

\begin{DoxyItemize}
\item First release 
\end{DoxyItemize}