<h1>
apply-sourcemaps <a href="https://npmjs.org/package/apply-sourcemaps"><img src="https://img.shields.io/badge/npm-v1.2.0-F00.svg?colorA=000"/></a> <a href="src"><img src="https://img.shields.io/badge/loc-246-FFF.svg?colorA=000"/></a> <a href="https://cdn.jsdelivr.net/npm/apply-sourcemaps@1.2.0/dist/apply-sourcemaps.min.js"><img src="https://img.shields.io/badge/brotli-84.5K-333.svg?colorA=000"/></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-F0B.svg?colorA=000"/></a>
</h1>

<p></p>

Fetch and apply sourcemaps in logs and stack traces originating from the browser or puppeteer.

<h4>
<table><tr><td title="Triple click to select and copy paste">
<code>npm i apply-sourcemaps </code>
</td><td title="Triple click to select and copy paste">
<code>pnpm add apply-sourcemaps </code>
</td><td title="Triple click to select and copy paste">
<code>yarn add apply-sourcemaps</code>
</td></tr></table>
</h4>

## API

<p>  <details id="getRealLocationFromUrlLineCol$46" title="Namespace" ><summary><span><a href="#getRealLocationFromUrlLineCol$46">#</a></span>  <code><strong>getRealLocationFromUrlLineCol</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L36">src/get-real-location-from-line-col.ts#L36</a>  <ul>        <p>  <details id="clear$47" title="Function" ><summary><span><a href="#clear$47">#</a></span>  <code><strong>clear</strong></code><em>()</em>    </summary>  <a href="src/get-real-location-from-line-col.ts#L46">src/get-real-location-from-line-col.ts#L46</a>  <ul>    <p>      <p><strong>clear</strong><em>()</em>  &nbsp;=&gt;  <ul>void</ul></p></p>    </ul></details></p></ul></details><details id="RealLocation$34" title="Interface" ><summary><span><a href="#RealLocation$34">#</a></span>  <code><strong>RealLocation</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L4">src/get-real-location-from-line-col.ts#L4</a>  <ul>        <p>  <details id="column$38" title="Property" ><summary><span><a href="#column$38">#</a></span>  <code><strong>column</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L8">src/get-real-location-from-line-col.ts#L8</a>  <ul><p>string | number</p>        </ul></details><details id="line$37" title="Property" ><summary><span><a href="#line$37">#</a></span>  <code><strong>line</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L7">src/get-real-location-from-line-col.ts#L7</a>  <ul><p>string | number</p>        </ul></details><details id="originalUrl$35" title="Property" ><summary><span><a href="#originalUrl$35">#</a></span>  <code><strong>originalUrl</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L5">src/get-real-location-from-line-col.ts#L5</a>  <ul><p>string</p>        </ul></details><details id="url$36" title="Property" ><summary><span><a href="#url$36">#</a></span>  <code><strong>url</strong></code>    </summary>  <a href="src/get-real-location-from-line-col.ts#L6">src/get-real-location-from-line-col.ts#L6</a>  <ul><p>string</p>        </ul></details></p></ul></details><details id="Sources$12" title="Interface" ><summary><span><a href="#Sources$12">#</a></span>  <code><strong>Sources</strong></code>    </summary>  <a href="src/fetch-source-map.ts#L10">src/fetch-source-map.ts#L10</a>  <ul>        <p>  <details id="source$13" title="Property" ><summary><span><a href="#source$13">#</a></span>  <code><strong>source</strong></code>    </summary>  <a href="src/fetch-source-map.ts#L11">src/fetch-source-map.ts#L11</a>  <ul><p>string</p>        </ul></details><details id="sourceMap$14" title="Property" ><summary><span><a href="#sourceMap$14">#</a></span>  <code><strong>sourceMap</strong></code>    </summary>  <a href="src/fetch-source-map.ts#L12">src/fetch-source-map.ts#L12</a>  <ul><p>{<p>  <details id="sourcemap$16" title="Property" ><summary><span><a href="#sourcemap$16">#</a></span>  <code><strong>sourcemap</strong></code>    </summary>  <a href="src/fetch-source-map.ts#L13">src/fetch-source-map.ts#L13</a>  <ul><p>undefined | <span>RawSourceMap</span></p>        </ul></details></p>}</p>        </ul></details></p></ul></details><details id="applySourceMaps$5" title="Function" ><summary><span><a href="#applySourceMaps$5">#</a></span>  <code><strong>applySourceMaps</strong></code><em>(x, mapFn)</em>    </summary>  <a href="src/apply-sourcemaps.ts#L14">src/apply-sourcemaps.ts#L14</a>  <ul>    <p>    <details id="x$7" title="Parameter" ><summary><span><a href="#x$7">#</a></span>  <code><strong>x</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="mapFn$8" title="Function" ><summary><span><a href="#mapFn$8">#</a></span>  <code><strong>mapFn</strong></code><em>(url)</em>    </summary>    <ul>    <p>    <details id="url$11" title="Parameter" ><summary><span><a href="#url$11">#</a></span>  <code><strong>url</strong></code>    </summary>    <ul><p>string</p>        </ul></details>  <p><strong>mapFn</strong><em>(url)</em>  &nbsp;=&gt;  <ul>string</ul></p></p>    </ul></details>  <p><strong>applySourceMaps</strong><em>(x, mapFn)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;string&gt;</ul></p></p>    </ul></details><details id="clearAllCaches$61" title="Function" ><summary><span><a href="#clearAllCaches$61">#</a></span>  <code><strong>clearAllCaches</strong></code><em>()</em>    </summary>  <a href="src/util.ts#L5">src/util.ts#L5</a>  <ul>    <p>      <p><strong>clearAllCaches</strong><em>()</em>  &nbsp;=&gt;  <ul>void</ul></p></p>    </ul></details><details id="createDeferredCache$63" title="Function" ><summary><span><a href="#createDeferredCache$63">#</a></span>  <code><strong>createDeferredCache</strong></code><em>(fn)</em>    </summary>  <a href="src/util.ts#L11">src/util.ts#L11</a>  <ul>    <p>    <details id="fn$67" title="Function" ><summary><span><a href="#fn$67">#</a></span>  <code><strong>fn</strong></code><em>(id, rest)</em>    </summary>    <ul>    <p>    <details id="id$70" title="Parameter" ><summary><span><a href="#id$70">#</a></span>  <code><strong>id</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="rest$71" title="Parameter" ><summary><span><a href="#rest$71">#</a></span>  <code><strong>rest</strong></code>    </summary>    <ul><p><a href="#U$66">U</a></p>        </ul></details>  <p><strong>fn</strong><em>(id, rest)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;<a href="#T$65">T</a>&gt;</ul></p></p>    </ul></details>  <p><strong>createDeferredCache</strong>&lt;<span>T</span>, <span>U</span>&gt;<em>(fn)</em>  &nbsp;=&gt;  <ul><details id="__type$72" title="Function" ><summary><span><a href="#__type$72">#</a></span>  <em>(key, args)</em>    </summary>    <ul>    <p>    <details id="key$75" title="Parameter" ><summary><span><a href="#key$75">#</a></span>  <code><strong>key</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="args$76" title="Parameter" ><summary><span><a href="#args$76">#</a></span>  <code><strong>args</strong></code>    </summary>    <ul><p><a href="#U$66">U</a></p>        </ul></details>  <p><strong></strong><em>(key, args)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;<a href="#T$65">T</a>&gt;</ul></p></p>    </ul></details></ul></p></p>    </ul></details><details id="fetch$17" title="Function" ><summary><span><a href="#fetch$17">#</a></span>  <code><strong>fetch</strong></code><em>(input, init)</em>    </summary>  <a href="src/fetch-source-map.ts#L17">src/fetch-source-map.ts#L17</a>  <ul>    <p>    <details id="input$19" title="Parameter" ><summary><span><a href="#input$19">#</a></span>  <code><strong>input</strong></code>    </summary>    <ul><p>string | <span>Request</span></p>        </ul></details><details id="init$20" title="Parameter" ><summary><span><a href="#init$20">#</a></span>  <code><strong>init</strong></code>    </summary>    <ul><p><span>Partial</span>&lt;<span>FetchInit</span>&gt;</p>        </ul></details>  <p><strong>fetch</strong><em>(input, init)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;<span>Response</span>&gt;</ul></p></p>    </ul></details><details id="fetchSourceMap$21" title="Function" ><summary><span><a href="#fetchSourceMap$21">#</a></span>  <code><strong>fetchSourceMap</strong></code><em>(key, args)</em>    </summary>  <a href="src/fetch-source-map.ts#L23">src/fetch-source-map.ts#L23</a>  <ul>    <p>    <details id="key$23" title="Parameter" ><summary><span><a href="#key$23">#</a></span>  <code><strong>key</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="args$24" title="Parameter" ><summary><span><a href="#args$24">#</a></span>  <code><strong>args</strong></code>    </summary>    <ul><p>[    ]</p>        </ul></details>  <p><strong>fetchSourceMap</strong><em>(key, args)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;undefined | <a href="#Sources$12">Sources</a>&gt;</ul></p></p>    </ul></details><details id="getCodeFrame$25" title="Function" ><summary><span><a href="#getCodeFrame$25">#</a></span>  <code><strong>getCodeFrame</strong></code><em>(message, { column, line, originalUrl, url })</em>    </summary>  <a href="src/get-code-frame.ts#L4">src/get-code-frame.ts#L4</a>  <ul>    <p>    <details id="message$27" title="Parameter" ><summary><span><a href="#message$27">#</a></span>  <code><strong>message</strong></code>    </summary>    <ul><p>string</p>        </ul></details>{<p>  <details id="column$33" title="Property" ><summary><span><a href="#column$33">#</a></span>  <code><strong>column</strong></code>    </summary>  <a href="src/get-code-frame.ts#L6">src/get-code-frame.ts#L6</a>  <ul><p>string | number</p>        </ul></details><details id="line$32" title="Property" ><summary><span><a href="#line$32">#</a></span>  <code><strong>line</strong></code>    </summary>  <a href="src/get-code-frame.ts#L6">src/get-code-frame.ts#L6</a>  <ul><p>string | number</p>        </ul></details><details id="originalUrl$30" title="Property" ><summary><span><a href="#originalUrl$30">#</a></span>  <code><strong>originalUrl</strong></code>    </summary>  <a href="src/get-code-frame.ts#L6">src/get-code-frame.ts#L6</a>  <ul><p>string</p>        </ul></details><details id="url$31" title="Property" ><summary><span><a href="#url$31">#</a></span>  <code><strong>url</strong></code>    </summary>  <a href="src/get-code-frame.ts#L6">src/get-code-frame.ts#L6</a>  <ul><p>string</p>        </ul></details></p>}  <p><strong>getCodeFrame</strong><em>(message, { column, line, originalUrl, url })</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;undefined | string&gt;</ul></p></p>    </ul></details><details id="getIt$39" title="Function" ><summary><span><a href="#getIt$39">#</a></span>  <code><strong>getIt</strong></code><em>(key, args)</em>    </summary>  <a href="src/get-real-location-from-line-col.ts#L13">src/get-real-location-from-line-col.ts#L13</a>  <ul>    <p>    <details id="key$41" title="Parameter" ><summary><span><a href="#key$41">#</a></span>  <code><strong>key</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="args$42" title="Parameter" ><summary><span><a href="#args$42">#</a></span>  <code><strong>args</strong></code>    </summary>    <ul><p>[  <a href="#RealLocation$34">RealLocation</a>  ]</p>        </ul></details>  <p><strong>getIt</strong><em>(key, args)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;void | <a href="#RealLocation$34">RealLocation</a>&gt;</ul></p></p>    </ul></details><details id="getRealLocationFromUrlLineCol$43" title="Function" ><summary><span><a href="#getRealLocationFromUrlLineCol$43">#</a></span>  <code><strong>getRealLocationFromUrlLineCol</strong></code><em>(real)</em>    </summary>  <a href="src/get-real-location-from-line-col.ts#L36">src/get-real-location-from-line-col.ts#L36</a>  <ul>    <p>    <details id="real$45" title="Parameter" ><summary><span><a href="#real$45">#</a></span>  <code><strong>real</strong></code>    </summary>    <ul><p><a href="#RealLocation$34">RealLocation</a></p>        </ul></details>  <p><strong>getRealLocationFromUrlLineCol</strong><em>(real)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;void | <a href="#RealLocation$34">RealLocation</a>&gt;</ul></p></p>    </ul></details><details id="getSourceMap$49" title="Function" ><summary><span><a href="#getSourceMap$49">#</a></span>  <code><strong>getSourceMap</strong></code><em>(url, content)</em>    </summary>  <a href="src/get-source-map.ts#L9">src/get-source-map.ts#L9</a>  <ul>    <p>    <details id="url$51" title="Parameter" ><summary><span><a href="#url$51">#</a></span>  <code><strong>url</strong></code>    </summary>    <ul><p>string</p>        </ul></details><details id="content$52" title="Parameter" ><summary><span><a href="#content$52">#</a></span>  <code><strong>content</strong></code>    </summary>    <ul><p>string</p>        </ul></details>  <p><strong>getSourceMap</strong><em>(url, content)</em>  &nbsp;=&gt;  <ul><span>Promise</span>&lt;undefined | <span>RawSourceMap</span>&gt;</ul></p></p>    </ul></details><details id="log$1" title="Function" ><summary><span><a href="#log$1">#</a></span>  <code><strong>log</strong></code><em>(formatter, args)</em>    </summary>  <a href="src/apply-sourcemaps.ts#L5">src/apply-sourcemaps.ts#L5</a>  <ul>    <p>    <details id="formatter$3" title="Parameter" ><summary><span><a href="#formatter$3">#</a></span>  <code><strong>formatter</strong></code>    </summary>    <ul><p>any</p>        </ul></details><details id="args$4" title="Parameter" ><summary><span><a href="#args$4">#</a></span>  <code><strong>args</strong></code>    </summary>    <ul><p>any  []</p>        </ul></details>  <p><strong>log</strong><em>(formatter, args)</em>  &nbsp;=&gt;  <ul>void</ul></p></p>    </ul></details><details id="parseUrls$53" title="Function" ><summary><span><a href="#parseUrls$53">#</a></span>  <code><strong>parseUrls</strong></code><em>(x)</em>    </summary>  <a href="src/parse-urls.ts#L5">src/parse-urls.ts#L5</a>  <ul>    <p>    <details id="x$55" title="Parameter" ><summary><span><a href="#x$55">#</a></span>  <code><strong>x</strong></code>    </summary>    <ul><p>string</p>        </ul></details>  <p><strong>parseUrls</strong><em>(x)</em>  &nbsp;=&gt;  <ul>{<p>  <details id="column$60" title="Property" ><summary><span><a href="#column$60">#</a></span>  <code><strong>column</strong></code>    </summary>  <a href="src/parse-urls.ts#L14">src/parse-urls.ts#L14</a>  <ul><p>string</p>        </ul></details><details id="line$59" title="Property" ><summary><span><a href="#line$59">#</a></span>  <code><strong>line</strong></code>    </summary>  <a href="src/parse-urls.ts#L13">src/parse-urls.ts#L13</a>  <ul><p>string</p>        </ul></details><details id="originalUrl$57" title="Property" ><summary><span><a href="#originalUrl$57">#</a></span>  <code><strong>originalUrl</strong></code>    </summary>  <a href="src/parse-urls.ts#L11">src/parse-urls.ts#L11</a>  <ul><p>string</p>        </ul></details><details id="url$58" title="Property" ><summary><span><a href="#url$58">#</a></span>  <code><strong>url</strong></code>  <span><span>&nbsp;=&nbsp;</span>  <code>...</code></span>  </summary>  <a href="src/parse-urls.ts#L12">src/parse-urls.ts#L12</a>  <ul><p>string</p>        </ul></details></p>}  []</ul></p></p>    </ul></details></p>

## Credits

- [@babel/code-frame](https://npmjs.org/package/@babel/code-frame) by [The Babel Team](https://babel.dev/team) &ndash; Generate errors that contain a code frame that point to source locations.
- [convert-source-map](https://npmjs.org/package/convert-source-map) by [Thorsten Lorenz](http://thlorenz.com) &ndash; Converts a source-map from/to different formats and allows adding/changing properties.
- [debug](https://npmjs.org/package/debug) by [Josh Junon](https://github.com/debug-js) &ndash; Lightweight debugging utility for Node.js and the browser
- [everyday-utils](https://npmjs.org/package/everyday-utils) by [stagas](https://github.com/stagas) &ndash; Everyday utilities
- [fetch-h2](https://npmjs.org/package/fetch-h2) by [Gustaf Räntilä](https://github.com/grantila) &ndash; HTTP/1+2 Fetch API client for Node.js
- [source-map](https://npmjs.org/package/source-map) by [Nick Fitzgerald](https://github.com/mozilla) &ndash; Generates and consumes source maps

## Contributing

[Fork](https://github.com/stagas/apply-sourcemaps/fork) or [edit](https://github.dev/stagas/apply-sourcemaps) and submit a PR.

All contributions are welcome!

## License

<a href="LICENSE">MIT</a> &copy; 2022 [stagas](https://github.com/stagas)
