initial commit
This commit is contained in:
		
							
								
								
									
										19
									
								
								node_modules/@jridgewell/resolve-uri/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/@jridgewell/resolve-uri/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Copyright 2019 Justin Ridgewell <jridgewell@google.com> | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in | ||||
| all copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										40
									
								
								node_modules/@jridgewell/resolve-uri/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								node_modules/@jridgewell/resolve-uri/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| # @jridgewell/resolve-uri | ||||
|  | ||||
| > Resolve a URI relative to an optional base URI | ||||
|  | ||||
| Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths. | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| ```sh | ||||
| npm install @jridgewell/resolve-uri | ||||
| ``` | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```typescript | ||||
| function resolve(input: string, base?: string): string; | ||||
| ``` | ||||
|  | ||||
| ```js | ||||
| import resolve from '@jridgewell/resolve-uri'; | ||||
|  | ||||
| resolve('foo', 'https://example.com'); // => 'https://example.com/foo' | ||||
| ``` | ||||
|  | ||||
| | Input                 | Base                    | Resolution                     | Explanation                                                  | | ||||
| |-----------------------|-------------------------|--------------------------------|--------------------------------------------------------------| | ||||
| | `https://example.com` | _any_                   | `https://example.com/`         | Input is normalized only                                     | | ||||
| | `//example.com`       | `https://base.com/`     | `https://example.com/`         | Input inherits the base's protocol                           | | ||||
| | `//example.com`       | _rest_                  | `//example.com/`               | Input is normalized only                                     | | ||||
| | `/example`            | `https://base.com/`     | `https://base.com/example`     | Input inherits the base's origin                             | | ||||
| | `/example`            | `//base.com/`           | `//base.com/example`           | Input inherits the base's host and remains protocol relative | | ||||
| | `/example`            | _rest_                  | `/example`                     | Input is normalized only                                     | | ||||
| | `example`             | `https://base.com/dir/` | `https://base.com/dir/example` | Input is joined with the base                                | | ||||
| | `example`             | `https://base.com/file` | `https://base.com/example`     | Input is joined with the base without its file               | | ||||
| | `example`             | `//base.com/dir/`       | `//base.com/dir/example`       | Input is joined with the base's last directory               | | ||||
| | `example`             | `//base.com/file`       | `//base.com/example`           | Input is joined with the base without its file               | | ||||
| | `example`             | `/base/dir/`            | `/base/dir/example`            | Input is joined with the base's last directory               | | ||||
| | `example`             | `/base/file`            | `/base/example`                | Input is joined with the base without its file               | | ||||
| | `example`             | `base/dir/`             | `base/dir/example`             | Input is joined with the base's last directory               | | ||||
| | `example`             | `base/file`             | `base/example`                 | Input is joined with the base without its file               | | ||||
							
								
								
									
										242
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										242
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,242 @@ | ||||
| // Matches the scheme of a URL, eg "http://" | ||||
| const schemeRegex = /^[\w+.-]+:\/\//; | ||||
| /** | ||||
|  * Matches the parts of a URL: | ||||
|  * 1. Scheme, including ":", guaranteed. | ||||
|  * 2. User/password, including "@", optional. | ||||
|  * 3. Host, guaranteed. | ||||
|  * 4. Port, including ":", optional. | ||||
|  * 5. Path, including "/", optional. | ||||
|  * 6. Query, including "?", optional. | ||||
|  * 7. Hash, including "#", optional. | ||||
|  */ | ||||
| const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; | ||||
| /** | ||||
|  * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start | ||||
|  * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). | ||||
|  * | ||||
|  * 1. Host, optional. | ||||
|  * 2. Path, which may include "/", guaranteed. | ||||
|  * 3. Query, including "?", optional. | ||||
|  * 4. Hash, including "#", optional. | ||||
|  */ | ||||
| const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; | ||||
| var UrlType; | ||||
| (function (UrlType) { | ||||
|     UrlType[UrlType["Empty"] = 1] = "Empty"; | ||||
|     UrlType[UrlType["Hash"] = 2] = "Hash"; | ||||
|     UrlType[UrlType["Query"] = 3] = "Query"; | ||||
|     UrlType[UrlType["RelativePath"] = 4] = "RelativePath"; | ||||
|     UrlType[UrlType["AbsolutePath"] = 5] = "AbsolutePath"; | ||||
|     UrlType[UrlType["SchemeRelative"] = 6] = "SchemeRelative"; | ||||
|     UrlType[UrlType["Absolute"] = 7] = "Absolute"; | ||||
| })(UrlType || (UrlType = {})); | ||||
| function isAbsoluteUrl(input) { | ||||
|     return schemeRegex.test(input); | ||||
| } | ||||
| function isSchemeRelativeUrl(input) { | ||||
|     return input.startsWith('//'); | ||||
| } | ||||
| function isAbsolutePath(input) { | ||||
|     return input.startsWith('/'); | ||||
| } | ||||
| function isFileUrl(input) { | ||||
|     return input.startsWith('file:'); | ||||
| } | ||||
| function isRelative(input) { | ||||
|     return /^[.?#]/.test(input); | ||||
| } | ||||
| function parseAbsoluteUrl(input) { | ||||
|     const match = urlRegex.exec(input); | ||||
|     return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || ''); | ||||
| } | ||||
| function parseFileUrl(input) { | ||||
|     const match = fileRegex.exec(input); | ||||
|     const path = match[2]; | ||||
|     return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || ''); | ||||
| } | ||||
| function makeUrl(scheme, user, host, port, path, query, hash) { | ||||
|     return { | ||||
|         scheme, | ||||
|         user, | ||||
|         host, | ||||
|         port, | ||||
|         path, | ||||
|         query, | ||||
|         hash, | ||||
|         type: UrlType.Absolute, | ||||
|     }; | ||||
| } | ||||
| function parseUrl(input) { | ||||
|     if (isSchemeRelativeUrl(input)) { | ||||
|         const url = parseAbsoluteUrl('http:' + input); | ||||
|         url.scheme = ''; | ||||
|         url.type = UrlType.SchemeRelative; | ||||
|         return url; | ||||
|     } | ||||
|     if (isAbsolutePath(input)) { | ||||
|         const url = parseAbsoluteUrl('http://foo.com' + input); | ||||
|         url.scheme = ''; | ||||
|         url.host = ''; | ||||
|         url.type = UrlType.AbsolutePath; | ||||
|         return url; | ||||
|     } | ||||
|     if (isFileUrl(input)) | ||||
|         return parseFileUrl(input); | ||||
|     if (isAbsoluteUrl(input)) | ||||
|         return parseAbsoluteUrl(input); | ||||
|     const url = parseAbsoluteUrl('http://foo.com/' + input); | ||||
|     url.scheme = ''; | ||||
|     url.host = ''; | ||||
|     url.type = input | ||||
|         ? input.startsWith('?') | ||||
|             ? UrlType.Query | ||||
|             : input.startsWith('#') | ||||
|                 ? UrlType.Hash | ||||
|                 : UrlType.RelativePath | ||||
|         : UrlType.Empty; | ||||
|     return url; | ||||
| } | ||||
| function stripPathFilename(path) { | ||||
|     // If a path ends with a parent directory "..", then it's a relative path with excess parent | ||||
|     // paths. It's not a file, so we can't strip it. | ||||
|     if (path.endsWith('/..')) | ||||
|         return path; | ||||
|     const index = path.lastIndexOf('/'); | ||||
|     return path.slice(0, index + 1); | ||||
| } | ||||
| function mergePaths(url, base) { | ||||
|     normalizePath(base, base.type); | ||||
|     // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative | ||||
|     // path). | ||||
|     if (url.path === '/') { | ||||
|         url.path = base.path; | ||||
|     } | ||||
|     else { | ||||
|         // Resolution happens relative to the base path's directory, not the file. | ||||
|         url.path = stripPathFilename(base.path) + url.path; | ||||
|     } | ||||
| } | ||||
| /** | ||||
|  * The path can have empty directories "//", unneeded parents "foo/..", or current directory | ||||
|  * "foo/.". We need to normalize to a standard representation. | ||||
|  */ | ||||
| function normalizePath(url, type) { | ||||
|     const rel = type <= UrlType.RelativePath; | ||||
|     const pieces = url.path.split('/'); | ||||
|     // We need to preserve the first piece always, so that we output a leading slash. The item at | ||||
|     // pieces[0] is an empty string. | ||||
|     let pointer = 1; | ||||
|     // Positive is the number of real directories we've output, used for popping a parent directory. | ||||
|     // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo". | ||||
|     let positive = 0; | ||||
|     // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will | ||||
|     // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a | ||||
|     // real directory, we won't need to append, unless the other conditions happen again. | ||||
|     let addTrailingSlash = false; | ||||
|     for (let i = 1; i < pieces.length; i++) { | ||||
|         const piece = pieces[i]; | ||||
|         // An empty directory, could be a trailing slash, or just a double "//" in the path. | ||||
|         if (!piece) { | ||||
|             addTrailingSlash = true; | ||||
|             continue; | ||||
|         } | ||||
|         // If we encounter a real directory, then we don't need to append anymore. | ||||
|         addTrailingSlash = false; | ||||
|         // A current directory, which we can always drop. | ||||
|         if (piece === '.') | ||||
|             continue; | ||||
|         // A parent directory, we need to see if there are any real directories we can pop. Else, we | ||||
|         // have an excess of parents, and we'll need to keep the "..". | ||||
|         if (piece === '..') { | ||||
|             if (positive) { | ||||
|                 addTrailingSlash = true; | ||||
|                 positive--; | ||||
|                 pointer--; | ||||
|             } | ||||
|             else if (rel) { | ||||
|                 // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute | ||||
|                 // URL, protocol relative URL, or an absolute path, we don't need to keep excess. | ||||
|                 pieces[pointer++] = piece; | ||||
|             } | ||||
|             continue; | ||||
|         } | ||||
|         // We've encountered a real directory. Move it to the next insertion pointer, which accounts for | ||||
|         // any popped or dropped directories. | ||||
|         pieces[pointer++] = piece; | ||||
|         positive++; | ||||
|     } | ||||
|     let path = ''; | ||||
|     for (let i = 1; i < pointer; i++) { | ||||
|         path += '/' + pieces[i]; | ||||
|     } | ||||
|     if (!path || (addTrailingSlash && !path.endsWith('/..'))) { | ||||
|         path += '/'; | ||||
|     } | ||||
|     url.path = path; | ||||
| } | ||||
| /** | ||||
|  * Attempts to resolve `input` URL/path relative to `base`. | ||||
|  */ | ||||
| function resolve(input, base) { | ||||
|     if (!input && !base) | ||||
|         return ''; | ||||
|     const url = parseUrl(input); | ||||
|     let inputType = url.type; | ||||
|     if (base && inputType !== UrlType.Absolute) { | ||||
|         const baseUrl = parseUrl(base); | ||||
|         const baseType = baseUrl.type; | ||||
|         switch (inputType) { | ||||
|             case UrlType.Empty: | ||||
|                 url.hash = baseUrl.hash; | ||||
|             // fall through | ||||
|             case UrlType.Hash: | ||||
|                 url.query = baseUrl.query; | ||||
|             // fall through | ||||
|             case UrlType.Query: | ||||
|             case UrlType.RelativePath: | ||||
|                 mergePaths(url, baseUrl); | ||||
|             // fall through | ||||
|             case UrlType.AbsolutePath: | ||||
|                 // The host, user, and port are joined, you can't copy one without the others. | ||||
|                 url.user = baseUrl.user; | ||||
|                 url.host = baseUrl.host; | ||||
|                 url.port = baseUrl.port; | ||||
|             // fall through | ||||
|             case UrlType.SchemeRelative: | ||||
|                 // The input doesn't have a schema at least, so we need to copy at least that over. | ||||
|                 url.scheme = baseUrl.scheme; | ||||
|         } | ||||
|         if (baseType > inputType) | ||||
|             inputType = baseType; | ||||
|     } | ||||
|     normalizePath(url, inputType); | ||||
|     const queryHash = url.query + url.hash; | ||||
|     switch (inputType) { | ||||
|         // This is impossible, because of the empty checks at the start of the function. | ||||
|         // case UrlType.Empty: | ||||
|         case UrlType.Hash: | ||||
|         case UrlType.Query: | ||||
|             return queryHash; | ||||
|         case UrlType.RelativePath: { | ||||
|             // The first char is always a "/", and we need it to be relative. | ||||
|             const path = url.path.slice(1); | ||||
|             if (!path) | ||||
|                 return queryHash || '.'; | ||||
|             if (isRelative(base || input) && !isRelative(path)) { | ||||
|                 // If base started with a leading ".", or there is no base and input started with a ".", | ||||
|                 // then we need to ensure that the relative path starts with a ".". We don't know if | ||||
|                 // relative starts with a "..", though, so check before prepending. | ||||
|                 return './' + path + queryHash; | ||||
|             } | ||||
|             return path + queryHash; | ||||
|         } | ||||
|         case UrlType.AbsolutePath: | ||||
|             return url.path + queryHash; | ||||
|         default: | ||||
|             return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { resolve as default }; | ||||
| //# sourceMappingURL=resolve-uri.mjs.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										250
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										250
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,250 @@ | ||||
| (function (global, factory) { | ||||
|     typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | ||||
|     typeof define === 'function' && define.amd ? define(factory) : | ||||
|     (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory()); | ||||
| })(this, (function () { 'use strict'; | ||||
|  | ||||
|     // Matches the scheme of a URL, eg "http://" | ||||
|     const schemeRegex = /^[\w+.-]+:\/\//; | ||||
|     /** | ||||
|      * Matches the parts of a URL: | ||||
|      * 1. Scheme, including ":", guaranteed. | ||||
|      * 2. User/password, including "@", optional. | ||||
|      * 3. Host, guaranteed. | ||||
|      * 4. Port, including ":", optional. | ||||
|      * 5. Path, including "/", optional. | ||||
|      * 6. Query, including "?", optional. | ||||
|      * 7. Hash, including "#", optional. | ||||
|      */ | ||||
|     const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; | ||||
|     /** | ||||
|      * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start | ||||
|      * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). | ||||
|      * | ||||
|      * 1. Host, optional. | ||||
|      * 2. Path, which may include "/", guaranteed. | ||||
|      * 3. Query, including "?", optional. | ||||
|      * 4. Hash, including "#", optional. | ||||
|      */ | ||||
|     const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; | ||||
|     var UrlType; | ||||
|     (function (UrlType) { | ||||
|         UrlType[UrlType["Empty"] = 1] = "Empty"; | ||||
|         UrlType[UrlType["Hash"] = 2] = "Hash"; | ||||
|         UrlType[UrlType["Query"] = 3] = "Query"; | ||||
|         UrlType[UrlType["RelativePath"] = 4] = "RelativePath"; | ||||
|         UrlType[UrlType["AbsolutePath"] = 5] = "AbsolutePath"; | ||||
|         UrlType[UrlType["SchemeRelative"] = 6] = "SchemeRelative"; | ||||
|         UrlType[UrlType["Absolute"] = 7] = "Absolute"; | ||||
|     })(UrlType || (UrlType = {})); | ||||
|     function isAbsoluteUrl(input) { | ||||
|         return schemeRegex.test(input); | ||||
|     } | ||||
|     function isSchemeRelativeUrl(input) { | ||||
|         return input.startsWith('//'); | ||||
|     } | ||||
|     function isAbsolutePath(input) { | ||||
|         return input.startsWith('/'); | ||||
|     } | ||||
|     function isFileUrl(input) { | ||||
|         return input.startsWith('file:'); | ||||
|     } | ||||
|     function isRelative(input) { | ||||
|         return /^[.?#]/.test(input); | ||||
|     } | ||||
|     function parseAbsoluteUrl(input) { | ||||
|         const match = urlRegex.exec(input); | ||||
|         return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || ''); | ||||
|     } | ||||
|     function parseFileUrl(input) { | ||||
|         const match = fileRegex.exec(input); | ||||
|         const path = match[2]; | ||||
|         return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || ''); | ||||
|     } | ||||
|     function makeUrl(scheme, user, host, port, path, query, hash) { | ||||
|         return { | ||||
|             scheme, | ||||
|             user, | ||||
|             host, | ||||
|             port, | ||||
|             path, | ||||
|             query, | ||||
|             hash, | ||||
|             type: UrlType.Absolute, | ||||
|         }; | ||||
|     } | ||||
|     function parseUrl(input) { | ||||
|         if (isSchemeRelativeUrl(input)) { | ||||
|             const url = parseAbsoluteUrl('http:' + input); | ||||
|             url.scheme = ''; | ||||
|             url.type = UrlType.SchemeRelative; | ||||
|             return url; | ||||
|         } | ||||
|         if (isAbsolutePath(input)) { | ||||
|             const url = parseAbsoluteUrl('http://foo.com' + input); | ||||
|             url.scheme = ''; | ||||
|             url.host = ''; | ||||
|             url.type = UrlType.AbsolutePath; | ||||
|             return url; | ||||
|         } | ||||
|         if (isFileUrl(input)) | ||||
|             return parseFileUrl(input); | ||||
|         if (isAbsoluteUrl(input)) | ||||
|             return parseAbsoluteUrl(input); | ||||
|         const url = parseAbsoluteUrl('http://foo.com/' + input); | ||||
|         url.scheme = ''; | ||||
|         url.host = ''; | ||||
|         url.type = input | ||||
|             ? input.startsWith('?') | ||||
|                 ? UrlType.Query | ||||
|                 : input.startsWith('#') | ||||
|                     ? UrlType.Hash | ||||
|                     : UrlType.RelativePath | ||||
|             : UrlType.Empty; | ||||
|         return url; | ||||
|     } | ||||
|     function stripPathFilename(path) { | ||||
|         // If a path ends with a parent directory "..", then it's a relative path with excess parent | ||||
|         // paths. It's not a file, so we can't strip it. | ||||
|         if (path.endsWith('/..')) | ||||
|             return path; | ||||
|         const index = path.lastIndexOf('/'); | ||||
|         return path.slice(0, index + 1); | ||||
|     } | ||||
|     function mergePaths(url, base) { | ||||
|         normalizePath(base, base.type); | ||||
|         // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative | ||||
|         // path). | ||||
|         if (url.path === '/') { | ||||
|             url.path = base.path; | ||||
|         } | ||||
|         else { | ||||
|             // Resolution happens relative to the base path's directory, not the file. | ||||
|             url.path = stripPathFilename(base.path) + url.path; | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * The path can have empty directories "//", unneeded parents "foo/..", or current directory | ||||
|      * "foo/.". We need to normalize to a standard representation. | ||||
|      */ | ||||
|     function normalizePath(url, type) { | ||||
|         const rel = type <= UrlType.RelativePath; | ||||
|         const pieces = url.path.split('/'); | ||||
|         // We need to preserve the first piece always, so that we output a leading slash. The item at | ||||
|         // pieces[0] is an empty string. | ||||
|         let pointer = 1; | ||||
|         // Positive is the number of real directories we've output, used for popping a parent directory. | ||||
|         // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo". | ||||
|         let positive = 0; | ||||
|         // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will | ||||
|         // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a | ||||
|         // real directory, we won't need to append, unless the other conditions happen again. | ||||
|         let addTrailingSlash = false; | ||||
|         for (let i = 1; i < pieces.length; i++) { | ||||
|             const piece = pieces[i]; | ||||
|             // An empty directory, could be a trailing slash, or just a double "//" in the path. | ||||
|             if (!piece) { | ||||
|                 addTrailingSlash = true; | ||||
|                 continue; | ||||
|             } | ||||
|             // If we encounter a real directory, then we don't need to append anymore. | ||||
|             addTrailingSlash = false; | ||||
|             // A current directory, which we can always drop. | ||||
|             if (piece === '.') | ||||
|                 continue; | ||||
|             // A parent directory, we need to see if there are any real directories we can pop. Else, we | ||||
|             // have an excess of parents, and we'll need to keep the "..". | ||||
|             if (piece === '..') { | ||||
|                 if (positive) { | ||||
|                     addTrailingSlash = true; | ||||
|                     positive--; | ||||
|                     pointer--; | ||||
|                 } | ||||
|                 else if (rel) { | ||||
|                     // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute | ||||
|                     // URL, protocol relative URL, or an absolute path, we don't need to keep excess. | ||||
|                     pieces[pointer++] = piece; | ||||
|                 } | ||||
|                 continue; | ||||
|             } | ||||
|             // We've encountered a real directory. Move it to the next insertion pointer, which accounts for | ||||
|             // any popped or dropped directories. | ||||
|             pieces[pointer++] = piece; | ||||
|             positive++; | ||||
|         } | ||||
|         let path = ''; | ||||
|         for (let i = 1; i < pointer; i++) { | ||||
|             path += '/' + pieces[i]; | ||||
|         } | ||||
|         if (!path || (addTrailingSlash && !path.endsWith('/..'))) { | ||||
|             path += '/'; | ||||
|         } | ||||
|         url.path = path; | ||||
|     } | ||||
|     /** | ||||
|      * Attempts to resolve `input` URL/path relative to `base`. | ||||
|      */ | ||||
|     function resolve(input, base) { | ||||
|         if (!input && !base) | ||||
|             return ''; | ||||
|         const url = parseUrl(input); | ||||
|         let inputType = url.type; | ||||
|         if (base && inputType !== UrlType.Absolute) { | ||||
|             const baseUrl = parseUrl(base); | ||||
|             const baseType = baseUrl.type; | ||||
|             switch (inputType) { | ||||
|                 case UrlType.Empty: | ||||
|                     url.hash = baseUrl.hash; | ||||
|                 // fall through | ||||
|                 case UrlType.Hash: | ||||
|                     url.query = baseUrl.query; | ||||
|                 // fall through | ||||
|                 case UrlType.Query: | ||||
|                 case UrlType.RelativePath: | ||||
|                     mergePaths(url, baseUrl); | ||||
|                 // fall through | ||||
|                 case UrlType.AbsolutePath: | ||||
|                     // The host, user, and port are joined, you can't copy one without the others. | ||||
|                     url.user = baseUrl.user; | ||||
|                     url.host = baseUrl.host; | ||||
|                     url.port = baseUrl.port; | ||||
|                 // fall through | ||||
|                 case UrlType.SchemeRelative: | ||||
|                     // The input doesn't have a schema at least, so we need to copy at least that over. | ||||
|                     url.scheme = baseUrl.scheme; | ||||
|             } | ||||
|             if (baseType > inputType) | ||||
|                 inputType = baseType; | ||||
|         } | ||||
|         normalizePath(url, inputType); | ||||
|         const queryHash = url.query + url.hash; | ||||
|         switch (inputType) { | ||||
|             // This is impossible, because of the empty checks at the start of the function. | ||||
|             // case UrlType.Empty: | ||||
|             case UrlType.Hash: | ||||
|             case UrlType.Query: | ||||
|                 return queryHash; | ||||
|             case UrlType.RelativePath: { | ||||
|                 // The first char is always a "/", and we need it to be relative. | ||||
|                 const path = url.path.slice(1); | ||||
|                 if (!path) | ||||
|                     return queryHash || '.'; | ||||
|                 if (isRelative(base || input) && !isRelative(path)) { | ||||
|                     // If base started with a leading ".", or there is no base and input started with a ".", | ||||
|                     // then we need to ensure that the relative path starts with a ".". We don't know if | ||||
|                     // relative starts with a "..", though, so check before prepending. | ||||
|                     return './' + path + queryHash; | ||||
|                 } | ||||
|                 return path + queryHash; | ||||
|             } | ||||
|             case UrlType.AbsolutePath: | ||||
|                 return url.path + queryHash; | ||||
|             default: | ||||
|                 return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return resolve; | ||||
|  | ||||
| })); | ||||
| //# sourceMappingURL=resolve-uri.umd.js.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| /** | ||||
|  * Attempts to resolve `input` URL/path relative to `base`. | ||||
|  */ | ||||
| export default function resolve(input: string, base: string | undefined): string; | ||||
							
								
								
									
										69
									
								
								node_modules/@jridgewell/resolve-uri/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								node_modules/@jridgewell/resolve-uri/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| { | ||||
|   "name": "@jridgewell/resolve-uri", | ||||
|   "version": "3.1.1", | ||||
|   "description": "Resolve a URI relative to an optional base URI", | ||||
|   "keywords": [ | ||||
|     "resolve", | ||||
|     "uri", | ||||
|     "url", | ||||
|     "path" | ||||
|   ], | ||||
|   "author": "Justin Ridgewell <justin@ridgewell.name>", | ||||
|   "license": "MIT", | ||||
|   "repository": "https://github.com/jridgewell/resolve-uri", | ||||
|   "main": "dist/resolve-uri.umd.js", | ||||
|   "module": "dist/resolve-uri.mjs", | ||||
|   "types": "dist/types/resolve-uri.d.ts", | ||||
|   "exports": { | ||||
|     ".": [ | ||||
|       { | ||||
|         "types": "./dist/types/resolve-uri.d.ts", | ||||
|         "browser": "./dist/resolve-uri.umd.js", | ||||
|         "require": "./dist/resolve-uri.umd.js", | ||||
|         "import": "./dist/resolve-uri.mjs" | ||||
|       }, | ||||
|       "./dist/resolve-uri.umd.js" | ||||
|     ], | ||||
|     "./package.json": "./package.json" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "engines": { | ||||
|     "node": ">=6.0.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "prebuild": "rm -rf dist", | ||||
|     "build": "run-s -n build:*", | ||||
|     "build:rollup": "rollup -c rollup.config.js", | ||||
|     "build:ts": "tsc --project tsconfig.build.json", | ||||
|     "lint": "run-s -n lint:*", | ||||
|     "lint:prettier": "npm run test:lint:prettier -- --write", | ||||
|     "lint:ts": "npm run test:lint:ts -- --fix", | ||||
|     "pretest": "run-s build:rollup", | ||||
|     "test": "run-s -n test:lint test:only", | ||||
|     "test:debug": "mocha --inspect-brk", | ||||
|     "test:lint": "run-s -n test:lint:*", | ||||
|     "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", | ||||
|     "test:lint:ts": "eslint '{src,test}/**/*.ts'", | ||||
|     "test:only": "mocha", | ||||
|     "test:coverage": "c8 mocha", | ||||
|     "test:watch": "mocha --watch", | ||||
|     "prepublishOnly": "npm run preversion", | ||||
|     "preversion": "run-s test build" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@jridgewell/resolve-uri-latest": "npm:@jridgewell/resolve-uri@*", | ||||
|     "@rollup/plugin-typescript": "8.3.0", | ||||
|     "@typescript-eslint/eslint-plugin": "5.10.0", | ||||
|     "@typescript-eslint/parser": "5.10.0", | ||||
|     "c8": "7.11.0", | ||||
|     "eslint": "8.7.0", | ||||
|     "eslint-config-prettier": "8.3.0", | ||||
|     "mocha": "9.2.0", | ||||
|     "npm-run-all": "4.1.5", | ||||
|     "prettier": "2.5.1", | ||||
|     "rollup": "2.66.0", | ||||
|     "typescript": "4.5.5" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										21
									
								
								node_modules/@jridgewell/sourcemap-codec/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/@jridgewell/sourcemap-codec/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| The MIT License | ||||
|  | ||||
| Copyright (c) 2015 Rich Harris | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in | ||||
| all copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
| THE SOFTWARE. | ||||
							
								
								
									
										200
									
								
								node_modules/@jridgewell/sourcemap-codec/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								node_modules/@jridgewell/sourcemap-codec/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,200 @@ | ||||
| # @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit). | ||||
|  | ||||
|  | ||||
| ## Why? | ||||
|  | ||||
| Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap. | ||||
|  | ||||
| This package makes the process slightly easier. | ||||
|  | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| ```bash | ||||
| npm install @jridgewell/sourcemap-codec | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```js | ||||
| import { encode, decode } from '@jridgewell/sourcemap-codec'; | ||||
|  | ||||
| var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); | ||||
|  | ||||
| assert.deepEqual( decoded, [ | ||||
| 	// the first line (of the generated code) has no mappings, | ||||
| 	// as shown by the starting semi-colon (which separates lines) | ||||
| 	[], | ||||
|  | ||||
| 	// the second line contains four (comma-separated) segments | ||||
| 	[ | ||||
| 		// segments are encoded as you'd expect: | ||||
| 		// [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ] | ||||
|  | ||||
| 		// i.e. the first segment begins at column 2, and maps back to the second column | ||||
| 		// of the second line (both zero-based) of the 0th source, and uses the 0th | ||||
| 		// name in the `map.names` array | ||||
| 		[ 2, 0, 2, 2, 0 ], | ||||
|  | ||||
| 		// the remaining segments are 4-length rather than 5-length, | ||||
| 		// because they don't map a name | ||||
| 		[ 4, 0, 2, 4 ], | ||||
| 		[ 6, 0, 2, 5 ], | ||||
| 		[ 7, 0, 2, 7 ] | ||||
| 	], | ||||
|  | ||||
| 	// the final line contains two segments | ||||
| 	[ | ||||
| 		[ 2, 1, 10, 19 ], | ||||
| 		[ 12, 1, 11, 20 ] | ||||
| 	] | ||||
| ]); | ||||
|  | ||||
| var encoded = encode( decoded ); | ||||
| assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' ); | ||||
| ``` | ||||
|  | ||||
| ## Benchmarks | ||||
|  | ||||
| ``` | ||||
| node v18.0.0 | ||||
|  | ||||
| amp.js.map - 45120 segments | ||||
|  | ||||
| Decode Memory Usage: | ||||
| @jridgewell/sourcemap-codec       5479160 bytes | ||||
| sourcemap-codec                   5659336 bytes | ||||
| source-map-0.6.1                 17144440 bytes | ||||
| source-map-0.8.0                  6867424 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Decode speed: | ||||
| decode: @jridgewell/sourcemap-codec x 502 ops/sec ±1.03% (90 runs sampled) | ||||
| decode: sourcemap-codec x 445 ops/sec ±0.97% (92 runs sampled) | ||||
| decode: source-map-0.6.1 x 36.01 ops/sec ±1.64% (49 runs sampled) | ||||
| decode: source-map-0.8.0 x 367 ops/sec ±0.04% (95 runs sampled) | ||||
| Fastest is decode: @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode Memory Usage: | ||||
| @jridgewell/sourcemap-codec       1261620 bytes | ||||
| sourcemap-codec                   9119248 bytes | ||||
| source-map-0.6.1                  8968560 bytes | ||||
| source-map-0.8.0                  8952952 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode speed: | ||||
| encode: @jridgewell/sourcemap-codec x 738 ops/sec ±0.42% (98 runs sampled) | ||||
| encode: sourcemap-codec x 238 ops/sec ±0.73% (88 runs sampled) | ||||
| encode: source-map-0.6.1 x 162 ops/sec ±0.43% (84 runs sampled) | ||||
| encode: source-map-0.8.0 x 191 ops/sec ±0.34% (90 runs sampled) | ||||
| Fastest is encode: @jridgewell/sourcemap-codec | ||||
|  | ||||
|  | ||||
| *** | ||||
|  | ||||
|  | ||||
| babel.min.js.map - 347793 segments | ||||
|  | ||||
| Decode Memory Usage: | ||||
| @jridgewell/sourcemap-codec      35338184 bytes | ||||
| sourcemap-codec                  35922736 bytes | ||||
| source-map-0.6.1                 62366360 bytes | ||||
| source-map-0.8.0                 44337416 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Decode speed: | ||||
| decode: @jridgewell/sourcemap-codec x 40.35 ops/sec ±4.47% (54 runs sampled) | ||||
| decode: sourcemap-codec x 36.76 ops/sec ±3.67% (51 runs sampled) | ||||
| decode: source-map-0.6.1 x 4.44 ops/sec ±2.15% (16 runs sampled) | ||||
| decode: source-map-0.8.0 x 59.35 ops/sec ±0.05% (78 runs sampled) | ||||
| Fastest is decode: source-map-0.8.0 | ||||
|  | ||||
| Encode Memory Usage: | ||||
| @jridgewell/sourcemap-codec       7212604 bytes | ||||
| sourcemap-codec                  21421456 bytes | ||||
| source-map-0.6.1                 25286888 bytes | ||||
| source-map-0.8.0                 25498744 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode speed: | ||||
| encode: @jridgewell/sourcemap-codec x 112 ops/sec ±0.13% (84 runs sampled) | ||||
| encode: sourcemap-codec x 30.23 ops/sec ±2.76% (53 runs sampled) | ||||
| encode: source-map-0.6.1 x 19.43 ops/sec ±3.70% (37 runs sampled) | ||||
| encode: source-map-0.8.0 x 19.40 ops/sec ±3.26% (37 runs sampled) | ||||
| Fastest is encode: @jridgewell/sourcemap-codec | ||||
|  | ||||
|  | ||||
| *** | ||||
|  | ||||
|  | ||||
| preact.js.map - 1992 segments | ||||
|  | ||||
| Decode Memory Usage: | ||||
| @jridgewell/sourcemap-codec        500272 bytes | ||||
| sourcemap-codec                    516864 bytes | ||||
| source-map-0.6.1                  1596672 bytes | ||||
| source-map-0.8.0                   517272 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Decode speed: | ||||
| decode: @jridgewell/sourcemap-codec x 16,137 ops/sec ±0.17% (99 runs sampled) | ||||
| decode: sourcemap-codec x 12,139 ops/sec ±0.13% (99 runs sampled) | ||||
| decode: source-map-0.6.1 x 1,264 ops/sec ±0.12% (100 runs sampled) | ||||
| decode: source-map-0.8.0 x 9,894 ops/sec ±0.08% (101 runs sampled) | ||||
| Fastest is decode: @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode Memory Usage: | ||||
| @jridgewell/sourcemap-codec        321026 bytes | ||||
| sourcemap-codec                    830832 bytes | ||||
| source-map-0.6.1                   586608 bytes | ||||
| source-map-0.8.0                   586680 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode speed: | ||||
| encode: @jridgewell/sourcemap-codec x 19,876 ops/sec ±0.78% (95 runs sampled) | ||||
| encode: sourcemap-codec x 6,983 ops/sec ±0.15% (100 runs sampled) | ||||
| encode: source-map-0.6.1 x 5,070 ops/sec ±0.12% (102 runs sampled) | ||||
| encode: source-map-0.8.0 x 5,641 ops/sec ±0.17% (100 runs sampled) | ||||
| Fastest is encode: @jridgewell/sourcemap-codec | ||||
|  | ||||
|  | ||||
| *** | ||||
|  | ||||
|  | ||||
| react.js.map - 5726 segments | ||||
|  | ||||
| Decode Memory Usage: | ||||
| @jridgewell/sourcemap-codec        734848 bytes | ||||
| sourcemap-codec                    954200 bytes | ||||
| source-map-0.6.1                  2276432 bytes | ||||
| source-map-0.8.0                   955488 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Decode speed: | ||||
| decode: @jridgewell/sourcemap-codec x 5,723 ops/sec ±0.12% (98 runs sampled) | ||||
| decode: sourcemap-codec x 4,555 ops/sec ±0.09% (101 runs sampled) | ||||
| decode: source-map-0.6.1 x 437 ops/sec ±0.11% (93 runs sampled) | ||||
| decode: source-map-0.8.0 x 3,441 ops/sec ±0.15% (100 runs sampled) | ||||
| Fastest is decode: @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode Memory Usage: | ||||
| @jridgewell/sourcemap-codec        638672 bytes | ||||
| sourcemap-codec                   1109840 bytes | ||||
| source-map-0.6.1                  1321224 bytes | ||||
| source-map-0.8.0                  1324448 bytes | ||||
| Smallest memory usage is @jridgewell/sourcemap-codec | ||||
|  | ||||
| Encode speed: | ||||
| encode: @jridgewell/sourcemap-codec x 6,801 ops/sec ±0.48% (98 runs sampled) | ||||
| encode: sourcemap-codec x 2,533 ops/sec ±0.13% (101 runs sampled) | ||||
| encode: source-map-0.6.1 x 2,248 ops/sec ±0.08% (100 runs sampled) | ||||
| encode: source-map-0.8.0 x 2,303 ops/sec ±0.15% (100 runs sampled) | ||||
| Fastest is encode: @jridgewell/sourcemap-codec | ||||
| ``` | ||||
|  | ||||
| # License | ||||
|  | ||||
| MIT | ||||
							
								
								
									
										164
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| const comma = ','.charCodeAt(0); | ||||
| const semicolon = ';'.charCodeAt(0); | ||||
| const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | ||||
| const intToChar = new Uint8Array(64); // 64 possible chars. | ||||
| const charToInt = new Uint8Array(128); // z is 122 in ASCII | ||||
| for (let i = 0; i < chars.length; i++) { | ||||
|     const c = chars.charCodeAt(i); | ||||
|     intToChar[i] = c; | ||||
|     charToInt[c] = i; | ||||
| } | ||||
| // Provide a fallback for older environments. | ||||
| const td = typeof TextDecoder !== 'undefined' | ||||
|     ? /* #__PURE__ */ new TextDecoder() | ||||
|     : typeof Buffer !== 'undefined' | ||||
|         ? { | ||||
|             decode(buf) { | ||||
|                 const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); | ||||
|                 return out.toString(); | ||||
|             }, | ||||
|         } | ||||
|         : { | ||||
|             decode(buf) { | ||||
|                 let out = ''; | ||||
|                 for (let i = 0; i < buf.length; i++) { | ||||
|                     out += String.fromCharCode(buf[i]); | ||||
|                 } | ||||
|                 return out; | ||||
|             }, | ||||
|         }; | ||||
| function decode(mappings) { | ||||
|     const state = new Int32Array(5); | ||||
|     const decoded = []; | ||||
|     let index = 0; | ||||
|     do { | ||||
|         const semi = indexOf(mappings, index); | ||||
|         const line = []; | ||||
|         let sorted = true; | ||||
|         let lastCol = 0; | ||||
|         state[0] = 0; | ||||
|         for (let i = index; i < semi; i++) { | ||||
|             let seg; | ||||
|             i = decodeInteger(mappings, i, state, 0); // genColumn | ||||
|             const col = state[0]; | ||||
|             if (col < lastCol) | ||||
|                 sorted = false; | ||||
|             lastCol = col; | ||||
|             if (hasMoreVlq(mappings, i, semi)) { | ||||
|                 i = decodeInteger(mappings, i, state, 1); // sourcesIndex | ||||
|                 i = decodeInteger(mappings, i, state, 2); // sourceLine | ||||
|                 i = decodeInteger(mappings, i, state, 3); // sourceColumn | ||||
|                 if (hasMoreVlq(mappings, i, semi)) { | ||||
|                     i = decodeInteger(mappings, i, state, 4); // namesIndex | ||||
|                     seg = [col, state[1], state[2], state[3], state[4]]; | ||||
|                 } | ||||
|                 else { | ||||
|                     seg = [col, state[1], state[2], state[3]]; | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 seg = [col]; | ||||
|             } | ||||
|             line.push(seg); | ||||
|         } | ||||
|         if (!sorted) | ||||
|             sort(line); | ||||
|         decoded.push(line); | ||||
|         index = semi + 1; | ||||
|     } while (index <= mappings.length); | ||||
|     return decoded; | ||||
| } | ||||
| function indexOf(mappings, index) { | ||||
|     const idx = mappings.indexOf(';', index); | ||||
|     return idx === -1 ? mappings.length : idx; | ||||
| } | ||||
| function decodeInteger(mappings, pos, state, j) { | ||||
|     let value = 0; | ||||
|     let shift = 0; | ||||
|     let integer = 0; | ||||
|     do { | ||||
|         const c = mappings.charCodeAt(pos++); | ||||
|         integer = charToInt[c]; | ||||
|         value |= (integer & 31) << shift; | ||||
|         shift += 5; | ||||
|     } while (integer & 32); | ||||
|     const shouldNegate = value & 1; | ||||
|     value >>>= 1; | ||||
|     if (shouldNegate) { | ||||
|         value = -0x80000000 | -value; | ||||
|     } | ||||
|     state[j] += value; | ||||
|     return pos; | ||||
| } | ||||
| function hasMoreVlq(mappings, i, length) { | ||||
|     if (i >= length) | ||||
|         return false; | ||||
|     return mappings.charCodeAt(i) !== comma; | ||||
| } | ||||
| function sort(line) { | ||||
|     line.sort(sortComparator); | ||||
| } | ||||
| function sortComparator(a, b) { | ||||
|     return a[0] - b[0]; | ||||
| } | ||||
| function encode(decoded) { | ||||
|     const state = new Int32Array(5); | ||||
|     const bufLength = 1024 * 16; | ||||
|     const subLength = bufLength - 36; | ||||
|     const buf = new Uint8Array(bufLength); | ||||
|     const sub = buf.subarray(0, subLength); | ||||
|     let pos = 0; | ||||
|     let out = ''; | ||||
|     for (let i = 0; i < decoded.length; i++) { | ||||
|         const line = decoded[i]; | ||||
|         if (i > 0) { | ||||
|             if (pos === bufLength) { | ||||
|                 out += td.decode(buf); | ||||
|                 pos = 0; | ||||
|             } | ||||
|             buf[pos++] = semicolon; | ||||
|         } | ||||
|         if (line.length === 0) | ||||
|             continue; | ||||
|         state[0] = 0; | ||||
|         for (let j = 0; j < line.length; j++) { | ||||
|             const segment = line[j]; | ||||
|             // We can push up to 5 ints, each int can take at most 7 chars, and we | ||||
|             // may push a comma. | ||||
|             if (pos > subLength) { | ||||
|                 out += td.decode(sub); | ||||
|                 buf.copyWithin(0, subLength, pos); | ||||
|                 pos -= subLength; | ||||
|             } | ||||
|             if (j > 0) | ||||
|                 buf[pos++] = comma; | ||||
|             pos = encodeInteger(buf, pos, state, segment, 0); // genColumn | ||||
|             if (segment.length === 1) | ||||
|                 continue; | ||||
|             pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex | ||||
|             pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine | ||||
|             pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn | ||||
|             if (segment.length === 4) | ||||
|                 continue; | ||||
|             pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex | ||||
|         } | ||||
|     } | ||||
|     return out + td.decode(buf.subarray(0, pos)); | ||||
| } | ||||
| function encodeInteger(buf, pos, state, segment, j) { | ||||
|     const next = segment[j]; | ||||
|     let num = next - state[j]; | ||||
|     state[j] = next; | ||||
|     num = num < 0 ? (-num << 1) | 1 : num << 1; | ||||
|     do { | ||||
|         let clamped = num & 0b011111; | ||||
|         num >>>= 5; | ||||
|         if (num > 0) | ||||
|             clamped |= 0b100000; | ||||
|         buf[pos++] = intToChar[clamped]; | ||||
|     } while (num > 0); | ||||
|     return pos; | ||||
| } | ||||
|  | ||||
| export { decode, encode }; | ||||
| //# sourceMappingURL=sourcemap-codec.mjs.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										175
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,175 @@ | ||||
| (function (global, factory) { | ||||
|     typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||||
|     typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||||
|     (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.sourcemapCodec = {})); | ||||
| })(this, (function (exports) { 'use strict'; | ||||
|  | ||||
|     const comma = ','.charCodeAt(0); | ||||
|     const semicolon = ';'.charCodeAt(0); | ||||
|     const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | ||||
|     const intToChar = new Uint8Array(64); // 64 possible chars. | ||||
|     const charToInt = new Uint8Array(128); // z is 122 in ASCII | ||||
|     for (let i = 0; i < chars.length; i++) { | ||||
|         const c = chars.charCodeAt(i); | ||||
|         intToChar[i] = c; | ||||
|         charToInt[c] = i; | ||||
|     } | ||||
|     // Provide a fallback for older environments. | ||||
|     const td = typeof TextDecoder !== 'undefined' | ||||
|         ? /* #__PURE__ */ new TextDecoder() | ||||
|         : typeof Buffer !== 'undefined' | ||||
|             ? { | ||||
|                 decode(buf) { | ||||
|                     const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); | ||||
|                     return out.toString(); | ||||
|                 }, | ||||
|             } | ||||
|             : { | ||||
|                 decode(buf) { | ||||
|                     let out = ''; | ||||
|                     for (let i = 0; i < buf.length; i++) { | ||||
|                         out += String.fromCharCode(buf[i]); | ||||
|                     } | ||||
|                     return out; | ||||
|                 }, | ||||
|             }; | ||||
|     function decode(mappings) { | ||||
|         const state = new Int32Array(5); | ||||
|         const decoded = []; | ||||
|         let index = 0; | ||||
|         do { | ||||
|             const semi = indexOf(mappings, index); | ||||
|             const line = []; | ||||
|             let sorted = true; | ||||
|             let lastCol = 0; | ||||
|             state[0] = 0; | ||||
|             for (let i = index; i < semi; i++) { | ||||
|                 let seg; | ||||
|                 i = decodeInteger(mappings, i, state, 0); // genColumn | ||||
|                 const col = state[0]; | ||||
|                 if (col < lastCol) | ||||
|                     sorted = false; | ||||
|                 lastCol = col; | ||||
|                 if (hasMoreVlq(mappings, i, semi)) { | ||||
|                     i = decodeInteger(mappings, i, state, 1); // sourcesIndex | ||||
|                     i = decodeInteger(mappings, i, state, 2); // sourceLine | ||||
|                     i = decodeInteger(mappings, i, state, 3); // sourceColumn | ||||
|                     if (hasMoreVlq(mappings, i, semi)) { | ||||
|                         i = decodeInteger(mappings, i, state, 4); // namesIndex | ||||
|                         seg = [col, state[1], state[2], state[3], state[4]]; | ||||
|                     } | ||||
|                     else { | ||||
|                         seg = [col, state[1], state[2], state[3]]; | ||||
|                     } | ||||
|                 } | ||||
|                 else { | ||||
|                     seg = [col]; | ||||
|                 } | ||||
|                 line.push(seg); | ||||
|             } | ||||
|             if (!sorted) | ||||
|                 sort(line); | ||||
|             decoded.push(line); | ||||
|             index = semi + 1; | ||||
|         } while (index <= mappings.length); | ||||
|         return decoded; | ||||
|     } | ||||
|     function indexOf(mappings, index) { | ||||
|         const idx = mappings.indexOf(';', index); | ||||
|         return idx === -1 ? mappings.length : idx; | ||||
|     } | ||||
|     function decodeInteger(mappings, pos, state, j) { | ||||
|         let value = 0; | ||||
|         let shift = 0; | ||||
|         let integer = 0; | ||||
|         do { | ||||
|             const c = mappings.charCodeAt(pos++); | ||||
|             integer = charToInt[c]; | ||||
|             value |= (integer & 31) << shift; | ||||
|             shift += 5; | ||||
|         } while (integer & 32); | ||||
|         const shouldNegate = value & 1; | ||||
|         value >>>= 1; | ||||
|         if (shouldNegate) { | ||||
|             value = -0x80000000 | -value; | ||||
|         } | ||||
|         state[j] += value; | ||||
|         return pos; | ||||
|     } | ||||
|     function hasMoreVlq(mappings, i, length) { | ||||
|         if (i >= length) | ||||
|             return false; | ||||
|         return mappings.charCodeAt(i) !== comma; | ||||
|     } | ||||
|     function sort(line) { | ||||
|         line.sort(sortComparator); | ||||
|     } | ||||
|     function sortComparator(a, b) { | ||||
|         return a[0] - b[0]; | ||||
|     } | ||||
|     function encode(decoded) { | ||||
|         const state = new Int32Array(5); | ||||
|         const bufLength = 1024 * 16; | ||||
|         const subLength = bufLength - 36; | ||||
|         const buf = new Uint8Array(bufLength); | ||||
|         const sub = buf.subarray(0, subLength); | ||||
|         let pos = 0; | ||||
|         let out = ''; | ||||
|         for (let i = 0; i < decoded.length; i++) { | ||||
|             const line = decoded[i]; | ||||
|             if (i > 0) { | ||||
|                 if (pos === bufLength) { | ||||
|                     out += td.decode(buf); | ||||
|                     pos = 0; | ||||
|                 } | ||||
|                 buf[pos++] = semicolon; | ||||
|             } | ||||
|             if (line.length === 0) | ||||
|                 continue; | ||||
|             state[0] = 0; | ||||
|             for (let j = 0; j < line.length; j++) { | ||||
|                 const segment = line[j]; | ||||
|                 // We can push up to 5 ints, each int can take at most 7 chars, and we | ||||
|                 // may push a comma. | ||||
|                 if (pos > subLength) { | ||||
|                     out += td.decode(sub); | ||||
|                     buf.copyWithin(0, subLength, pos); | ||||
|                     pos -= subLength; | ||||
|                 } | ||||
|                 if (j > 0) | ||||
|                     buf[pos++] = comma; | ||||
|                 pos = encodeInteger(buf, pos, state, segment, 0); // genColumn | ||||
|                 if (segment.length === 1) | ||||
|                     continue; | ||||
|                 pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex | ||||
|                 pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine | ||||
|                 pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn | ||||
|                 if (segment.length === 4) | ||||
|                     continue; | ||||
|                 pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex | ||||
|             } | ||||
|         } | ||||
|         return out + td.decode(buf.subarray(0, pos)); | ||||
|     } | ||||
|     function encodeInteger(buf, pos, state, segment, j) { | ||||
|         const next = segment[j]; | ||||
|         let num = next - state[j]; | ||||
|         state[j] = next; | ||||
|         num = num < 0 ? (-num << 1) | 1 : num << 1; | ||||
|         do { | ||||
|             let clamped = num & 0b011111; | ||||
|             num >>>= 5; | ||||
|             if (num > 0) | ||||
|                 clamped |= 0b100000; | ||||
|             buf[pos++] = intToChar[clamped]; | ||||
|         } while (num > 0); | ||||
|         return pos; | ||||
|     } | ||||
|  | ||||
|     exports.decode = decode; | ||||
|     exports.encode = encode; | ||||
|  | ||||
|     Object.defineProperty(exports, '__esModule', { value: true }); | ||||
|  | ||||
| })); | ||||
| //# sourceMappingURL=sourcemap-codec.umd.js.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										6
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| export declare type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number]; | ||||
| export declare type SourceMapLine = SourceMapSegment[]; | ||||
| export declare type SourceMapMappings = SourceMapLine[]; | ||||
| export declare function decode(mappings: string): SourceMapMappings; | ||||
| export declare function encode(decoded: SourceMapMappings): string; | ||||
| export declare function encode(decoded: Readonly<SourceMapMappings>): string; | ||||
							
								
								
									
										74
									
								
								node_modules/@jridgewell/sourcemap-codec/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								node_modules/@jridgewell/sourcemap-codec/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| { | ||||
|   "name": "@jridgewell/sourcemap-codec", | ||||
|   "version": "1.4.15", | ||||
|   "description": "Encode/decode sourcemap mappings", | ||||
|   "keywords": [ | ||||
|     "sourcemap", | ||||
|     "vlq" | ||||
|   ], | ||||
|   "main": "dist/sourcemap-codec.umd.js", | ||||
|   "module": "dist/sourcemap-codec.mjs", | ||||
|   "types": "dist/types/sourcemap-codec.d.ts", | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "exports": { | ||||
|     ".": [ | ||||
|       { | ||||
|         "types": "./dist/types/sourcemap-codec.d.ts", | ||||
|         "browser": "./dist/sourcemap-codec.umd.js", | ||||
|         "require": "./dist/sourcemap-codec.umd.js", | ||||
|         "import": "./dist/sourcemap-codec.mjs" | ||||
|       }, | ||||
|       "./dist/sourcemap-codec.umd.js" | ||||
|     ], | ||||
|     "./package.json": "./package.json" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "benchmark": "run-s build:rollup benchmark:*", | ||||
|     "benchmark:install": "cd benchmark && npm install", | ||||
|     "benchmark:only": "node --expose-gc benchmark/index.js", | ||||
|     "build": "run-s -n build:*", | ||||
|     "build:rollup": "rollup -c rollup.config.js", | ||||
|     "build:ts": "tsc --project tsconfig.build.json", | ||||
|     "lint": "run-s -n lint:*", | ||||
|     "lint:prettier": "npm run test:lint:prettier -- --write", | ||||
|     "lint:ts": "npm run test:lint:ts -- --fix", | ||||
|     "prebuild": "rm -rf dist", | ||||
|     "prepublishOnly": "npm run preversion", | ||||
|     "preversion": "run-s test build", | ||||
|     "pretest": "run-s build:rollup", | ||||
|     "test": "run-s -n test:lint test:only", | ||||
|     "test:debug": "mocha --inspect-brk", | ||||
|     "test:lint": "run-s -n test:lint:*", | ||||
|     "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", | ||||
|     "test:lint:ts": "eslint '{src,test}/**/*.ts'", | ||||
|     "test:only": "mocha", | ||||
|     "test:coverage": "c8 mocha", | ||||
|     "test:watch": "mocha --watch" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git+https://github.com/jridgewell/sourcemap-codec.git" | ||||
|   }, | ||||
|   "author": "Rich Harris", | ||||
|   "license": "MIT", | ||||
|   "devDependencies": { | ||||
|     "@rollup/plugin-typescript": "8.3.0", | ||||
|     "@types/node": "17.0.15", | ||||
|     "@typescript-eslint/eslint-plugin": "5.10.0", | ||||
|     "@typescript-eslint/parser": "5.10.0", | ||||
|     "benchmark": "2.1.4", | ||||
|     "c8": "7.11.2", | ||||
|     "eslint": "8.7.0", | ||||
|     "eslint-config-prettier": "8.3.0", | ||||
|     "mocha": "9.2.0", | ||||
|     "npm-run-all": "4.1.5", | ||||
|     "prettier": "2.5.1", | ||||
|     "rollup": "2.64.0", | ||||
|     "source-map": "0.6.1", | ||||
|     "source-map-js": "1.0.2", | ||||
|     "sourcemap-codec": "1.4.8", | ||||
|     "typescript": "4.5.4" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										19
									
								
								node_modules/@jridgewell/trace-mapping/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/@jridgewell/trace-mapping/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| Copyright 2022 Justin Ridgewell <justin@ridgewell.name> | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in | ||||
| all copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										193
									
								
								node_modules/@jridgewell/trace-mapping/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								node_modules/@jridgewell/trace-mapping/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,193 @@ | ||||
| # @jridgewell/trace-mapping | ||||
|  | ||||
| > Trace the original position through a source map | ||||
|  | ||||
| `trace-mapping` allows you to take the line and column of an output file and trace it to the | ||||
| original location in the source file through a source map. | ||||
|  | ||||
| You may already be familiar with the [`source-map`][source-map] package's `SourceMapConsumer`. This | ||||
| provides the same `originalPositionFor` and `generatedPositionFor` API, without requiring WASM. | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| ```sh | ||||
| npm install @jridgewell/trace-mapping | ||||
| ``` | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```typescript | ||||
| import { TraceMap, originalPositionFor, generatedPositionFor } from '@jridgewell/trace-mapping'; | ||||
|  | ||||
| const tracer = new TraceMap({ | ||||
|   version: 3, | ||||
|   sources: ['input.js'], | ||||
|   names: ['foo'], | ||||
|   mappings: 'KAyCIA', | ||||
| }); | ||||
|  | ||||
| // Lines start at line 1, columns at column 0. | ||||
| const traced = originalPositionFor(tracer, { line: 1, column: 5 }); | ||||
| assert.deepEqual(traced, { | ||||
|   source: 'input.js', | ||||
|   line: 42, | ||||
|   column: 4, | ||||
|   name: 'foo', | ||||
| }); | ||||
|  | ||||
| const generated = generatedPositionFor(tracer, { | ||||
|   source: 'input.js', | ||||
|   line: 42, | ||||
|   column: 4, | ||||
| }); | ||||
| assert.deepEqual(generated, { | ||||
|   line: 1, | ||||
|   column: 5, | ||||
| }); | ||||
| ``` | ||||
|  | ||||
| We also provide a lower level API to get the actual segment that matches our line and column. Unlike | ||||
| `originalPositionFor`, `traceSegment` uses a 0-base for `line`: | ||||
|  | ||||
| ```typescript | ||||
| import { traceSegment } from '@jridgewell/trace-mapping'; | ||||
|  | ||||
| // line is 0-base. | ||||
| const traced = traceSegment(tracer, /* line */ 0, /* column */ 5); | ||||
|  | ||||
| // Segments are [outputColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] | ||||
| // Again, line is 0-base and so is sourceLine | ||||
| assert.deepEqual(traced, [5, 0, 41, 4, 0]); | ||||
| ``` | ||||
|  | ||||
| ### SectionedSourceMaps | ||||
|  | ||||
| The sourcemap spec defines a special `sections` field that's designed to handle concatenation of | ||||
| output code with associated sourcemaps. This type of sourcemap is rarely used (no major build tool | ||||
| produces it), but if you are hand coding a concatenation you may need it. We provide an `AnyMap` | ||||
| helper that can receive either a regular sourcemap or a `SectionedSourceMap` and returns a | ||||
| `TraceMap` instance: | ||||
|  | ||||
| ```typescript | ||||
| import { AnyMap } from '@jridgewell/trace-mapping'; | ||||
| const fooOutput = 'foo'; | ||||
| const barOutput = 'bar'; | ||||
| const output = [fooOutput, barOutput].join('\n'); | ||||
|  | ||||
| const sectioned = new AnyMap({ | ||||
|   version: 3, | ||||
|   sections: [ | ||||
|     { | ||||
|       // 0-base line and column | ||||
|       offset: { line: 0, column: 0 }, | ||||
|       // fooOutput's sourcemap | ||||
|       map: { | ||||
|         version: 3, | ||||
|         sources: ['foo.js'], | ||||
|         names: ['foo'], | ||||
|         mappings: 'AAAAA', | ||||
|       }, | ||||
|     }, | ||||
|     { | ||||
|       // barOutput's sourcemap will not affect the first line, only the second | ||||
|       offset: { line: 1, column: 0 }, | ||||
|       map: { | ||||
|         version: 3, | ||||
|         sources: ['bar.js'], | ||||
|         names: ['bar'], | ||||
|         mappings: 'AAAAA', | ||||
|       }, | ||||
|     }, | ||||
|   ], | ||||
| }); | ||||
|  | ||||
| const traced = originalPositionFor(sectioned, { | ||||
|   line: 2, | ||||
|   column: 0, | ||||
| }); | ||||
|  | ||||
| assert.deepEqual(traced, { | ||||
|   source: 'bar.js', | ||||
|   line: 1, | ||||
|   column: 0, | ||||
|   name: 'bar', | ||||
| }); | ||||
| ``` | ||||
|  | ||||
| ## Benchmarks | ||||
|  | ||||
| ``` | ||||
| node v18.0.0 | ||||
|  | ||||
| amp.js.map | ||||
| trace-mapping:    decoded JSON input x 183 ops/sec ±0.41% (87 runs sampled) | ||||
| trace-mapping:    encoded JSON input x 384 ops/sec ±0.89% (89 runs sampled) | ||||
| trace-mapping:    decoded Object input x 3,085 ops/sec ±0.24% (100 runs sampled) | ||||
| trace-mapping:    encoded Object input x 452 ops/sec ±0.80% (84 runs sampled) | ||||
| source-map-js:    encoded Object input x 88.82 ops/sec ±0.45% (77 runs sampled) | ||||
| source-map-0.6.1: encoded Object input x 38.39 ops/sec ±1.88% (52 runs sampled) | ||||
| Fastest is trace-mapping:    decoded Object input | ||||
|  | ||||
| trace-mapping:    decoded originalPositionFor x 4,025,347 ops/sec ±0.15% (97 runs sampled) | ||||
| trace-mapping:    encoded originalPositionFor x 3,333,136 ops/sec ±1.26% (90 runs sampled) | ||||
| source-map-js:    encoded originalPositionFor x 824,978 ops/sec ±1.06% (94 runs sampled) | ||||
| source-map-0.6.1: encoded originalPositionFor x 741,300 ops/sec ±0.93% (92 runs sampled) | ||||
| source-map-0.8.0: encoded originalPositionFor x 2,587,603 ops/sec ±0.75% (97 runs sampled) | ||||
| Fastest is trace-mapping:    decoded originalPositionFor | ||||
|  | ||||
| *** | ||||
|  | ||||
| babel.min.js.map | ||||
| trace-mapping:    decoded JSON input x 17.43 ops/sec ±8.81% (33 runs sampled) | ||||
| trace-mapping:    encoded JSON input x 34.18 ops/sec ±4.67% (50 runs sampled) | ||||
| trace-mapping:    decoded Object input x 1,010 ops/sec ±0.41% (98 runs sampled) | ||||
| trace-mapping:    encoded Object input x 39.45 ops/sec ±4.01% (52 runs sampled) | ||||
| source-map-js:    encoded Object input x 6.57 ops/sec ±3.04% (21 runs sampled) | ||||
| source-map-0.6.1: encoded Object input x 4.23 ops/sec ±2.93% (15 runs sampled) | ||||
| Fastest is trace-mapping:    decoded Object input | ||||
|  | ||||
| trace-mapping:    decoded originalPositionFor x 7,576,265 ops/sec ±0.74% (96 runs sampled) | ||||
| trace-mapping:    encoded originalPositionFor x 5,019,743 ops/sec ±0.74% (94 runs sampled) | ||||
| source-map-js:    encoded originalPositionFor x 3,396,137 ops/sec ±42.32% (95 runs sampled) | ||||
| source-map-0.6.1: encoded originalPositionFor x 3,753,176 ops/sec ±0.72% (95 runs sampled) | ||||
| source-map-0.8.0: encoded originalPositionFor x 6,423,633 ops/sec ±0.74% (95 runs sampled) | ||||
| Fastest is trace-mapping:    decoded originalPositionFor | ||||
|  | ||||
| *** | ||||
|  | ||||
| preact.js.map | ||||
| trace-mapping:    decoded JSON input x 3,499 ops/sec ±0.18% (98 runs sampled) | ||||
| trace-mapping:    encoded JSON input x 6,078 ops/sec ±0.25% (99 runs sampled) | ||||
| trace-mapping:    decoded Object input x 254,788 ops/sec ±0.13% (100 runs sampled) | ||||
| trace-mapping:    encoded Object input x 14,063 ops/sec ±0.27% (94 runs sampled) | ||||
| source-map-js:    encoded Object input x 2,465 ops/sec ±0.25% (98 runs sampled) | ||||
| source-map-0.6.1: encoded Object input x 1,174 ops/sec ±1.90% (95 runs sampled) | ||||
| Fastest is trace-mapping:    decoded Object input | ||||
|  | ||||
| trace-mapping:    decoded originalPositionFor x 7,720,171 ops/sec ±0.14% (97 runs sampled) | ||||
| trace-mapping:    encoded originalPositionFor x 6,864,485 ops/sec ±0.16% (101 runs sampled) | ||||
| source-map-js:    encoded originalPositionFor x 2,387,219 ops/sec ±0.28% (98 runs sampled) | ||||
| source-map-0.6.1: encoded originalPositionFor x 1,565,339 ops/sec ±0.32% (101 runs sampled) | ||||
| source-map-0.8.0: encoded originalPositionFor x 3,819,732 ops/sec ±0.38% (98 runs sampled) | ||||
| Fastest is trace-mapping:    decoded originalPositionFor | ||||
|  | ||||
| *** | ||||
|  | ||||
| react.js.map | ||||
| trace-mapping:    decoded JSON input x 1,719 ops/sec ±0.19% (99 runs sampled) | ||||
| trace-mapping:    encoded JSON input x 4,284 ops/sec ±0.51% (99 runs sampled) | ||||
| trace-mapping:    decoded Object input x 94,668 ops/sec ±0.08% (99 runs sampled) | ||||
| trace-mapping:    encoded Object input x 5,287 ops/sec ±0.24% (99 runs sampled) | ||||
| source-map-js:    encoded Object input x 814 ops/sec ±0.20% (98 runs sampled) | ||||
| source-map-0.6.1: encoded Object input x 429 ops/sec ±0.24% (94 runs sampled) | ||||
| Fastest is trace-mapping:    decoded Object input | ||||
|  | ||||
| trace-mapping:    decoded originalPositionFor x 28,927,989 ops/sec ±0.61% (94 runs sampled) | ||||
| trace-mapping:    encoded originalPositionFor x 27,394,475 ops/sec ±0.55% (97 runs sampled) | ||||
| source-map-js:    encoded originalPositionFor x 16,856,730 ops/sec ±0.45% (96 runs sampled) | ||||
| source-map-0.6.1: encoded originalPositionFor x 12,258,950 ops/sec ±0.41% (97 runs sampled) | ||||
| source-map-0.8.0: encoded originalPositionFor x 22,272,990 ops/sec ±0.58% (95 runs sampled) | ||||
| Fastest is trace-mapping:    decoded originalPositionFor | ||||
| ``` | ||||
|  | ||||
| [source-map]: https://www.npmjs.com/package/source-map | ||||
							
								
								
									
										514
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										514
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,514 @@ | ||||
| import { encode, decode } from '@jridgewell/sourcemap-codec'; | ||||
| import resolveUri from '@jridgewell/resolve-uri'; | ||||
|  | ||||
| function resolve(input, base) { | ||||
|     // The base is always treated as a directory, if it's not empty. | ||||
|     // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327 | ||||
|     // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401 | ||||
|     if (base && !base.endsWith('/')) | ||||
|         base += '/'; | ||||
|     return resolveUri(input, base); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Removes everything after the last "/", but leaves the slash. | ||||
|  */ | ||||
| function stripFilename(path) { | ||||
|     if (!path) | ||||
|         return ''; | ||||
|     const index = path.lastIndexOf('/'); | ||||
|     return path.slice(0, index + 1); | ||||
| } | ||||
|  | ||||
| const COLUMN = 0; | ||||
| const SOURCES_INDEX = 1; | ||||
| const SOURCE_LINE = 2; | ||||
| const SOURCE_COLUMN = 3; | ||||
| const NAMES_INDEX = 4; | ||||
| const REV_GENERATED_LINE = 1; | ||||
| const REV_GENERATED_COLUMN = 2; | ||||
|  | ||||
| function maybeSort(mappings, owned) { | ||||
|     const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); | ||||
|     if (unsortedIndex === mappings.length) | ||||
|         return mappings; | ||||
|     // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If | ||||
|     // not, we do not want to modify the consumer's input array. | ||||
|     if (!owned) | ||||
|         mappings = mappings.slice(); | ||||
|     for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { | ||||
|         mappings[i] = sortSegments(mappings[i], owned); | ||||
|     } | ||||
|     return mappings; | ||||
| } | ||||
| function nextUnsortedSegmentLine(mappings, start) { | ||||
|     for (let i = start; i < mappings.length; i++) { | ||||
|         if (!isSorted(mappings[i])) | ||||
|             return i; | ||||
|     } | ||||
|     return mappings.length; | ||||
| } | ||||
| function isSorted(line) { | ||||
|     for (let j = 1; j < line.length; j++) { | ||||
|         if (line[j][COLUMN] < line[j - 1][COLUMN]) { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| function sortSegments(line, owned) { | ||||
|     if (!owned) | ||||
|         line = line.slice(); | ||||
|     return line.sort(sortComparator); | ||||
| } | ||||
| function sortComparator(a, b) { | ||||
|     return a[COLUMN] - b[COLUMN]; | ||||
| } | ||||
|  | ||||
| let found = false; | ||||
| /** | ||||
|  * A binary search implementation that returns the index if a match is found. | ||||
|  * If no match is found, then the left-index (the index associated with the item that comes just | ||||
|  * before the desired index) is returned. To maintain proper sort order, a splice would happen at | ||||
|  * the next index: | ||||
|  * | ||||
|  * ```js | ||||
|  * const array = [1, 3]; | ||||
|  * const needle = 2; | ||||
|  * const index = binarySearch(array, needle, (item, needle) => item - needle); | ||||
|  * | ||||
|  * assert.equal(index, 0); | ||||
|  * array.splice(index + 1, 0, needle); | ||||
|  * assert.deepEqual(array, [1, 2, 3]); | ||||
|  * ``` | ||||
|  */ | ||||
| function binarySearch(haystack, needle, low, high) { | ||||
|     while (low <= high) { | ||||
|         const mid = low + ((high - low) >> 1); | ||||
|         const cmp = haystack[mid][COLUMN] - needle; | ||||
|         if (cmp === 0) { | ||||
|             found = true; | ||||
|             return mid; | ||||
|         } | ||||
|         if (cmp < 0) { | ||||
|             low = mid + 1; | ||||
|         } | ||||
|         else { | ||||
|             high = mid - 1; | ||||
|         } | ||||
|     } | ||||
|     found = false; | ||||
|     return low - 1; | ||||
| } | ||||
| function upperBound(haystack, needle, index) { | ||||
|     for (let i = index + 1; i < haystack.length; i++, index++) { | ||||
|         if (haystack[i][COLUMN] !== needle) | ||||
|             break; | ||||
|     } | ||||
|     return index; | ||||
| } | ||||
| function lowerBound(haystack, needle, index) { | ||||
|     for (let i = index - 1; i >= 0; i--, index--) { | ||||
|         if (haystack[i][COLUMN] !== needle) | ||||
|             break; | ||||
|     } | ||||
|     return index; | ||||
| } | ||||
| function memoizedState() { | ||||
|     return { | ||||
|         lastKey: -1, | ||||
|         lastNeedle: -1, | ||||
|         lastIndex: -1, | ||||
|     }; | ||||
| } | ||||
| /** | ||||
|  * This overly complicated beast is just to record the last tested line/column and the resulting | ||||
|  * index, allowing us to skip a few tests if mappings are monotonically increasing. | ||||
|  */ | ||||
| function memoizedBinarySearch(haystack, needle, state, key) { | ||||
|     const { lastKey, lastNeedle, lastIndex } = state; | ||||
|     let low = 0; | ||||
|     let high = haystack.length - 1; | ||||
|     if (key === lastKey) { | ||||
|         if (needle === lastNeedle) { | ||||
|             found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; | ||||
|             return lastIndex; | ||||
|         } | ||||
|         if (needle >= lastNeedle) { | ||||
|             // lastIndex may be -1 if the previous needle was not found. | ||||
|             low = lastIndex === -1 ? 0 : lastIndex; | ||||
|         } | ||||
|         else { | ||||
|             high = lastIndex; | ||||
|         } | ||||
|     } | ||||
|     state.lastKey = key; | ||||
|     state.lastNeedle = needle; | ||||
|     return (state.lastIndex = binarySearch(haystack, needle, low, high)); | ||||
| } | ||||
|  | ||||
| // Rebuilds the original source files, with mappings that are ordered by source line/column instead | ||||
| // of generated line/column. | ||||
| function buildBySources(decoded, memos) { | ||||
|     const sources = memos.map(buildNullArray); | ||||
|     for (let i = 0; i < decoded.length; i++) { | ||||
|         const line = decoded[i]; | ||||
|         for (let j = 0; j < line.length; j++) { | ||||
|             const seg = line[j]; | ||||
|             if (seg.length === 1) | ||||
|                 continue; | ||||
|             const sourceIndex = seg[SOURCES_INDEX]; | ||||
|             const sourceLine = seg[SOURCE_LINE]; | ||||
|             const sourceColumn = seg[SOURCE_COLUMN]; | ||||
|             const originalSource = sources[sourceIndex]; | ||||
|             const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = [])); | ||||
|             const memo = memos[sourceIndex]; | ||||
|             // The binary search either found a match, or it found the left-index just before where the | ||||
|             // segment should go. Either way, we want to insert after that. And there may be multiple | ||||
|             // generated segments associated with an original location, so there may need to move several | ||||
|             // indexes before we find where we need to insert. | ||||
|             const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); | ||||
|             insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]); | ||||
|         } | ||||
|     } | ||||
|     return sources; | ||||
| } | ||||
| function insert(array, index, value) { | ||||
|     for (let i = array.length; i > index; i--) { | ||||
|         array[i] = array[i - 1]; | ||||
|     } | ||||
|     array[index] = value; | ||||
| } | ||||
| // Null arrays allow us to use ordered index keys without actually allocating contiguous memory like | ||||
| // a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations. | ||||
| // Numeric properties on objects are magically sorted in ascending order by the engine regardless of | ||||
| // the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending | ||||
| // order when iterating with for-in. | ||||
| function buildNullArray() { | ||||
|     return { __proto__: null }; | ||||
| } | ||||
|  | ||||
| const AnyMap = function (map, mapUrl) { | ||||
|     const parsed = typeof map === 'string' ? JSON.parse(map) : map; | ||||
|     if (!('sections' in parsed)) | ||||
|         return new TraceMap(parsed, mapUrl); | ||||
|     const mappings = []; | ||||
|     const sources = []; | ||||
|     const sourcesContent = []; | ||||
|     const names = []; | ||||
|     const { sections } = parsed; | ||||
|     let i = 0; | ||||
|     for (; i < sections.length - 1; i++) { | ||||
|         const no = sections[i + 1].offset; | ||||
|         addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, no.line, no.column); | ||||
|     } | ||||
|     if (sections.length > 0) { | ||||
|         addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, Infinity, Infinity); | ||||
|     } | ||||
|     const joined = { | ||||
|         version: 3, | ||||
|         file: parsed.file, | ||||
|         names, | ||||
|         sources, | ||||
|         sourcesContent, | ||||
|         mappings, | ||||
|     }; | ||||
|     return presortedDecodedMap(joined); | ||||
| }; | ||||
| function addSection(section, mapUrl, mappings, sources, sourcesContent, names, stopLine, stopColumn) { | ||||
|     const map = AnyMap(section.map, mapUrl); | ||||
|     const { line: lineOffset, column: columnOffset } = section.offset; | ||||
|     const sourcesOffset = sources.length; | ||||
|     const namesOffset = names.length; | ||||
|     const decoded = decodedMappings(map); | ||||
|     const { resolvedSources } = map; | ||||
|     append(sources, resolvedSources); | ||||
|     append(sourcesContent, map.sourcesContent || fillSourcesContent(resolvedSources.length)); | ||||
|     append(names, map.names); | ||||
|     // If this section jumps forwards several lines, we need to add lines to the output mappings catch up. | ||||
|     for (let i = mappings.length; i <= lineOffset; i++) | ||||
|         mappings.push([]); | ||||
|     // We can only add so many lines before we step into the range that the next section's map | ||||
|     // controls. When we get to the last line, then we'll start checking the segments to see if | ||||
|     // they've crossed into the column range. | ||||
|     const stopI = stopLine - lineOffset; | ||||
|     const len = Math.min(decoded.length, stopI + 1); | ||||
|     for (let i = 0; i < len; i++) { | ||||
|         const line = decoded[i]; | ||||
|         // On the 0th loop, the line will already exist due to a previous section, or the line catch up | ||||
|         // loop above. | ||||
|         const out = i === 0 ? mappings[lineOffset] : (mappings[lineOffset + i] = []); | ||||
|         // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the | ||||
|         // map can be multiple lines), it doesn't. | ||||
|         const cOffset = i === 0 ? columnOffset : 0; | ||||
|         for (let j = 0; j < line.length; j++) { | ||||
|             const seg = line[j]; | ||||
|             const column = cOffset + seg[COLUMN]; | ||||
|             // If this segment steps into the column range that the next section's map controls, we need | ||||
|             // to stop early. | ||||
|             if (i === stopI && column >= stopColumn) | ||||
|                 break; | ||||
|             if (seg.length === 1) { | ||||
|                 out.push([column]); | ||||
|                 continue; | ||||
|             } | ||||
|             const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; | ||||
|             const sourceLine = seg[SOURCE_LINE]; | ||||
|             const sourceColumn = seg[SOURCE_COLUMN]; | ||||
|             if (seg.length === 4) { | ||||
|                 out.push([column, sourcesIndex, sourceLine, sourceColumn]); | ||||
|                 continue; | ||||
|             } | ||||
|             out.push([column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| function append(arr, other) { | ||||
|     for (let i = 0; i < other.length; i++) | ||||
|         arr.push(other[i]); | ||||
| } | ||||
| // Sourcemaps don't need to have sourcesContent, and if they don't, we need to create an array of | ||||
| // equal length to the sources. This is because the sources and sourcesContent are paired arrays, | ||||
| // where `sourcesContent[i]` is the content of the `sources[i]` file. If we didn't, then joined | ||||
| // sourcemap would desynchronize the sources/contents. | ||||
| function fillSourcesContent(len) { | ||||
|     const sourcesContent = []; | ||||
|     for (let i = 0; i < len; i++) | ||||
|         sourcesContent[i] = null; | ||||
|     return sourcesContent; | ||||
| } | ||||
|  | ||||
| const INVALID_ORIGINAL_MAPPING = Object.freeze({ | ||||
|     source: null, | ||||
|     line: null, | ||||
|     column: null, | ||||
|     name: null, | ||||
| }); | ||||
| const INVALID_GENERATED_MAPPING = Object.freeze({ | ||||
|     line: null, | ||||
|     column: null, | ||||
| }); | ||||
| const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; | ||||
| const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; | ||||
| const LEAST_UPPER_BOUND = -1; | ||||
| const GREATEST_LOWER_BOUND = 1; | ||||
| /** | ||||
|  * Returns the encoded (VLQ string) form of the SourceMap's mappings field. | ||||
|  */ | ||||
| let encodedMappings; | ||||
| /** | ||||
|  * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. | ||||
|  */ | ||||
| let decodedMappings; | ||||
| /** | ||||
|  * A low-level API to find the segment associated with a generated line/column (think, from a | ||||
|  * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. | ||||
|  */ | ||||
| let traceSegment; | ||||
| /** | ||||
|  * A higher-level API to find the source/line/column associated with a generated line/column | ||||
|  * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in | ||||
|  * `source-map` library. | ||||
|  */ | ||||
| let originalPositionFor; | ||||
| /** | ||||
|  * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided | ||||
|  * the found mapping is from the same source and line as the originalPositionFor mapping. | ||||
|  * | ||||
|  * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1` | ||||
|  * using the same needle that would return `id` when calling `originalPositionFor`. | ||||
|  */ | ||||
| let generatedPositionFor; | ||||
| /** | ||||
|  * Iterates each mapping in generated position order. | ||||
|  */ | ||||
| let eachMapping; | ||||
| /** | ||||
|  * A helper that skips sorting of the input map's mappings array, which can be expensive for larger | ||||
|  * maps. | ||||
|  */ | ||||
| let presortedDecodedMap; | ||||
| /** | ||||
|  * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects | ||||
|  * a sourcemap, or to JSON.stringify. | ||||
|  */ | ||||
| let decodedMap; | ||||
| /** | ||||
|  * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects | ||||
|  * a sourcemap, or to JSON.stringify. | ||||
|  */ | ||||
| let encodedMap; | ||||
| class TraceMap { | ||||
|     constructor(map, mapUrl) { | ||||
|         this._decodedMemo = memoizedState(); | ||||
|         this._bySources = undefined; | ||||
|         this._bySourceMemos = undefined; | ||||
|         const isString = typeof map === 'string'; | ||||
|         if (!isString && map.constructor === TraceMap) | ||||
|             return map; | ||||
|         const parsed = (isString ? JSON.parse(map) : map); | ||||
|         const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; | ||||
|         this.version = version; | ||||
|         this.file = file; | ||||
|         this.names = names; | ||||
|         this.sourceRoot = sourceRoot; | ||||
|         this.sources = sources; | ||||
|         this.sourcesContent = sourcesContent; | ||||
|         if (sourceRoot || mapUrl) { | ||||
|             const from = resolve(sourceRoot || '', stripFilename(mapUrl)); | ||||
|             this.resolvedSources = sources.map((s) => resolve(s || '', from)); | ||||
|         } | ||||
|         else { | ||||
|             this.resolvedSources = sources.map((s) => s || ''); | ||||
|         } | ||||
|         const { mappings } = parsed; | ||||
|         if (typeof mappings === 'string') { | ||||
|             this._encoded = mappings; | ||||
|             this._decoded = undefined; | ||||
|         } | ||||
|         else { | ||||
|             this._encoded = undefined; | ||||
|             this._decoded = maybeSort(mappings, isString); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| (() => { | ||||
|     encodedMappings = (map) => { | ||||
|         var _a; | ||||
|         return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = encode(map._decoded))); | ||||
|     }; | ||||
|     decodedMappings = (map) => { | ||||
|         return (map._decoded || (map._decoded = decode(map._encoded))); | ||||
|     }; | ||||
|     traceSegment = (map, line, column) => { | ||||
|         const decoded = decodedMappings(map); | ||||
|         // It's common for parent source maps to have pointers to lines that have no | ||||
|         // mapping (like a "//# sourceMappingURL=") at the end of the child file. | ||||
|         if (line >= decoded.length) | ||||
|             return null; | ||||
|         return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND); | ||||
|     }; | ||||
|     originalPositionFor = (map, { line, column, bias }) => { | ||||
|         line--; | ||||
|         if (line < 0) | ||||
|             throw new Error(LINE_GTR_ZERO); | ||||
|         if (column < 0) | ||||
|             throw new Error(COL_GTR_EQ_ZERO); | ||||
|         const decoded = decodedMappings(map); | ||||
|         // It's common for parent source maps to have pointers to lines that have no | ||||
|         // mapping (like a "//# sourceMappingURL=") at the end of the child file. | ||||
|         if (line >= decoded.length) | ||||
|             return INVALID_ORIGINAL_MAPPING; | ||||
|         const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND); | ||||
|         if (segment == null) | ||||
|             return INVALID_ORIGINAL_MAPPING; | ||||
|         if (segment.length == 1) | ||||
|             return INVALID_ORIGINAL_MAPPING; | ||||
|         const { names, resolvedSources } = map; | ||||
|         return { | ||||
|             source: resolvedSources[segment[SOURCES_INDEX]], | ||||
|             line: segment[SOURCE_LINE] + 1, | ||||
|             column: segment[SOURCE_COLUMN], | ||||
|             name: segment.length === 5 ? names[segment[NAMES_INDEX]] : null, | ||||
|         }; | ||||
|     }; | ||||
|     generatedPositionFor = (map, { source, line, column, bias }) => { | ||||
|         line--; | ||||
|         if (line < 0) | ||||
|             throw new Error(LINE_GTR_ZERO); | ||||
|         if (column < 0) | ||||
|             throw new Error(COL_GTR_EQ_ZERO); | ||||
|         const { sources, resolvedSources } = map; | ||||
|         let sourceIndex = sources.indexOf(source); | ||||
|         if (sourceIndex === -1) | ||||
|             sourceIndex = resolvedSources.indexOf(source); | ||||
|         if (sourceIndex === -1) | ||||
|             return INVALID_GENERATED_MAPPING; | ||||
|         const generated = (map._bySources || (map._bySources = buildBySources(decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState))))); | ||||
|         const memos = map._bySourceMemos; | ||||
|         const segments = generated[sourceIndex][line]; | ||||
|         if (segments == null) | ||||
|             return INVALID_GENERATED_MAPPING; | ||||
|         const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND); | ||||
|         if (segment == null) | ||||
|             return INVALID_GENERATED_MAPPING; | ||||
|         return { | ||||
|             line: segment[REV_GENERATED_LINE] + 1, | ||||
|             column: segment[REV_GENERATED_COLUMN], | ||||
|         }; | ||||
|     }; | ||||
|     eachMapping = (map, cb) => { | ||||
|         const decoded = decodedMappings(map); | ||||
|         const { names, resolvedSources } = map; | ||||
|         for (let i = 0; i < decoded.length; i++) { | ||||
|             const line = decoded[i]; | ||||
|             for (let j = 0; j < line.length; j++) { | ||||
|                 const seg = line[j]; | ||||
|                 const generatedLine = i + 1; | ||||
|                 const generatedColumn = seg[0]; | ||||
|                 let source = null; | ||||
|                 let originalLine = null; | ||||
|                 let originalColumn = null; | ||||
|                 let name = null; | ||||
|                 if (seg.length !== 1) { | ||||
|                     source = resolvedSources[seg[1]]; | ||||
|                     originalLine = seg[2] + 1; | ||||
|                     originalColumn = seg[3]; | ||||
|                 } | ||||
|                 if (seg.length === 5) | ||||
|                     name = names[seg[4]]; | ||||
|                 cb({ | ||||
|                     generatedLine, | ||||
|                     generatedColumn, | ||||
|                     source, | ||||
|                     originalLine, | ||||
|                     originalColumn, | ||||
|                     name, | ||||
|                 }); | ||||
|             } | ||||
|         } | ||||
|     }; | ||||
|     presortedDecodedMap = (map, mapUrl) => { | ||||
|         const clone = Object.assign({}, map); | ||||
|         clone.mappings = []; | ||||
|         const tracer = new TraceMap(clone, mapUrl); | ||||
|         tracer._decoded = map.mappings; | ||||
|         return tracer; | ||||
|     }; | ||||
|     decodedMap = (map) => { | ||||
|         return { | ||||
|             version: 3, | ||||
|             file: map.file, | ||||
|             names: map.names, | ||||
|             sourceRoot: map.sourceRoot, | ||||
|             sources: map.sources, | ||||
|             sourcesContent: map.sourcesContent, | ||||
|             mappings: decodedMappings(map), | ||||
|         }; | ||||
|     }; | ||||
|     encodedMap = (map) => { | ||||
|         return { | ||||
|             version: 3, | ||||
|             file: map.file, | ||||
|             names: map.names, | ||||
|             sourceRoot: map.sourceRoot, | ||||
|             sources: map.sources, | ||||
|             sourcesContent: map.sourcesContent, | ||||
|             mappings: encodedMappings(map), | ||||
|         }; | ||||
|     }; | ||||
| })(); | ||||
| function traceSegmentInternal(segments, memo, line, column, bias) { | ||||
|     let index = memoizedBinarySearch(segments, column, memo, line); | ||||
|     if (found) { | ||||
|         index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); | ||||
|     } | ||||
|     else if (bias === LEAST_UPPER_BOUND) | ||||
|         index++; | ||||
|     if (index === -1 || index === segments.length) | ||||
|         return null; | ||||
|     return segments[index]; | ||||
| } | ||||
|  | ||||
| export { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, originalPositionFor, presortedDecodedMap, traceSegment }; | ||||
| //# sourceMappingURL=trace-mapping.mjs.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										528
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										528
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,528 @@ | ||||
| (function (global, factory) { | ||||
|     typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/sourcemap-codec'), require('@jridgewell/resolve-uri')) : | ||||
|     typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/sourcemap-codec', '@jridgewell/resolve-uri'], factory) : | ||||
|     (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.traceMapping = {}, global.sourcemapCodec, global.resolveURI)); | ||||
| })(this, (function (exports, sourcemapCodec, resolveUri) { 'use strict'; | ||||
|  | ||||
|     function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||||
|  | ||||
|     var resolveUri__default = /*#__PURE__*/_interopDefaultLegacy(resolveUri); | ||||
|  | ||||
|     function resolve(input, base) { | ||||
|         // The base is always treated as a directory, if it's not empty. | ||||
|         // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327 | ||||
|         // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401 | ||||
|         if (base && !base.endsWith('/')) | ||||
|             base += '/'; | ||||
|         return resolveUri__default["default"](input, base); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Removes everything after the last "/", but leaves the slash. | ||||
|      */ | ||||
|     function stripFilename(path) { | ||||
|         if (!path) | ||||
|             return ''; | ||||
|         const index = path.lastIndexOf('/'); | ||||
|         return path.slice(0, index + 1); | ||||
|     } | ||||
|  | ||||
|     const COLUMN = 0; | ||||
|     const SOURCES_INDEX = 1; | ||||
|     const SOURCE_LINE = 2; | ||||
|     const SOURCE_COLUMN = 3; | ||||
|     const NAMES_INDEX = 4; | ||||
|     const REV_GENERATED_LINE = 1; | ||||
|     const REV_GENERATED_COLUMN = 2; | ||||
|  | ||||
|     function maybeSort(mappings, owned) { | ||||
|         const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); | ||||
|         if (unsortedIndex === mappings.length) | ||||
|             return mappings; | ||||
|         // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If | ||||
|         // not, we do not want to modify the consumer's input array. | ||||
|         if (!owned) | ||||
|             mappings = mappings.slice(); | ||||
|         for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { | ||||
|             mappings[i] = sortSegments(mappings[i], owned); | ||||
|         } | ||||
|         return mappings; | ||||
|     } | ||||
|     function nextUnsortedSegmentLine(mappings, start) { | ||||
|         for (let i = start; i < mappings.length; i++) { | ||||
|             if (!isSorted(mappings[i])) | ||||
|                 return i; | ||||
|         } | ||||
|         return mappings.length; | ||||
|     } | ||||
|     function isSorted(line) { | ||||
|         for (let j = 1; j < line.length; j++) { | ||||
|             if (line[j][COLUMN] < line[j - 1][COLUMN]) { | ||||
|                 return false; | ||||
|             } | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|     function sortSegments(line, owned) { | ||||
|         if (!owned) | ||||
|             line = line.slice(); | ||||
|         return line.sort(sortComparator); | ||||
|     } | ||||
|     function sortComparator(a, b) { | ||||
|         return a[COLUMN] - b[COLUMN]; | ||||
|     } | ||||
|  | ||||
|     let found = false; | ||||
|     /** | ||||
|      * A binary search implementation that returns the index if a match is found. | ||||
|      * If no match is found, then the left-index (the index associated with the item that comes just | ||||
|      * before the desired index) is returned. To maintain proper sort order, a splice would happen at | ||||
|      * the next index: | ||||
|      * | ||||
|      * ```js | ||||
|      * const array = [1, 3]; | ||||
|      * const needle = 2; | ||||
|      * const index = binarySearch(array, needle, (item, needle) => item - needle); | ||||
|      * | ||||
|      * assert.equal(index, 0); | ||||
|      * array.splice(index + 1, 0, needle); | ||||
|      * assert.deepEqual(array, [1, 2, 3]); | ||||
|      * ``` | ||||
|      */ | ||||
|     function binarySearch(haystack, needle, low, high) { | ||||
|         while (low <= high) { | ||||
|             const mid = low + ((high - low) >> 1); | ||||
|             const cmp = haystack[mid][COLUMN] - needle; | ||||
|             if (cmp === 0) { | ||||
|                 found = true; | ||||
|                 return mid; | ||||
|             } | ||||
|             if (cmp < 0) { | ||||
|                 low = mid + 1; | ||||
|             } | ||||
|             else { | ||||
|                 high = mid - 1; | ||||
|             } | ||||
|         } | ||||
|         found = false; | ||||
|         return low - 1; | ||||
|     } | ||||
|     function upperBound(haystack, needle, index) { | ||||
|         for (let i = index + 1; i < haystack.length; i++, index++) { | ||||
|             if (haystack[i][COLUMN] !== needle) | ||||
|                 break; | ||||
|         } | ||||
|         return index; | ||||
|     } | ||||
|     function lowerBound(haystack, needle, index) { | ||||
|         for (let i = index - 1; i >= 0; i--, index--) { | ||||
|             if (haystack[i][COLUMN] !== needle) | ||||
|                 break; | ||||
|         } | ||||
|         return index; | ||||
|     } | ||||
|     function memoizedState() { | ||||
|         return { | ||||
|             lastKey: -1, | ||||
|             lastNeedle: -1, | ||||
|             lastIndex: -1, | ||||
|         }; | ||||
|     } | ||||
|     /** | ||||
|      * This overly complicated beast is just to record the last tested line/column and the resulting | ||||
|      * index, allowing us to skip a few tests if mappings are monotonically increasing. | ||||
|      */ | ||||
|     function memoizedBinarySearch(haystack, needle, state, key) { | ||||
|         const { lastKey, lastNeedle, lastIndex } = state; | ||||
|         let low = 0; | ||||
|         let high = haystack.length - 1; | ||||
|         if (key === lastKey) { | ||||
|             if (needle === lastNeedle) { | ||||
|                 found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; | ||||
|                 return lastIndex; | ||||
|             } | ||||
|             if (needle >= lastNeedle) { | ||||
|                 // lastIndex may be -1 if the previous needle was not found. | ||||
|                 low = lastIndex === -1 ? 0 : lastIndex; | ||||
|             } | ||||
|             else { | ||||
|                 high = lastIndex; | ||||
|             } | ||||
|         } | ||||
|         state.lastKey = key; | ||||
|         state.lastNeedle = needle; | ||||
|         return (state.lastIndex = binarySearch(haystack, needle, low, high)); | ||||
|     } | ||||
|  | ||||
|     // Rebuilds the original source files, with mappings that are ordered by source line/column instead | ||||
|     // of generated line/column. | ||||
|     function buildBySources(decoded, memos) { | ||||
|         const sources = memos.map(buildNullArray); | ||||
|         for (let i = 0; i < decoded.length; i++) { | ||||
|             const line = decoded[i]; | ||||
|             for (let j = 0; j < line.length; j++) { | ||||
|                 const seg = line[j]; | ||||
|                 if (seg.length === 1) | ||||
|                     continue; | ||||
|                 const sourceIndex = seg[SOURCES_INDEX]; | ||||
|                 const sourceLine = seg[SOURCE_LINE]; | ||||
|                 const sourceColumn = seg[SOURCE_COLUMN]; | ||||
|                 const originalSource = sources[sourceIndex]; | ||||
|                 const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = [])); | ||||
|                 const memo = memos[sourceIndex]; | ||||
|                 // The binary search either found a match, or it found the left-index just before where the | ||||
|                 // segment should go. Either way, we want to insert after that. And there may be multiple | ||||
|                 // generated segments associated with an original location, so there may need to move several | ||||
|                 // indexes before we find where we need to insert. | ||||
|                 const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); | ||||
|                 insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]); | ||||
|             } | ||||
|         } | ||||
|         return sources; | ||||
|     } | ||||
|     function insert(array, index, value) { | ||||
|         for (let i = array.length; i > index; i--) { | ||||
|             array[i] = array[i - 1]; | ||||
|         } | ||||
|         array[index] = value; | ||||
|     } | ||||
|     // Null arrays allow us to use ordered index keys without actually allocating contiguous memory like | ||||
|     // a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations. | ||||
|     // Numeric properties on objects are magically sorted in ascending order by the engine regardless of | ||||
|     // the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending | ||||
|     // order when iterating with for-in. | ||||
|     function buildNullArray() { | ||||
|         return { __proto__: null }; | ||||
|     } | ||||
|  | ||||
|     const AnyMap = function (map, mapUrl) { | ||||
|         const parsed = typeof map === 'string' ? JSON.parse(map) : map; | ||||
|         if (!('sections' in parsed)) | ||||
|             return new TraceMap(parsed, mapUrl); | ||||
|         const mappings = []; | ||||
|         const sources = []; | ||||
|         const sourcesContent = []; | ||||
|         const names = []; | ||||
|         const { sections } = parsed; | ||||
|         let i = 0; | ||||
|         for (; i < sections.length - 1; i++) { | ||||
|             const no = sections[i + 1].offset; | ||||
|             addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, no.line, no.column); | ||||
|         } | ||||
|         if (sections.length > 0) { | ||||
|             addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, Infinity, Infinity); | ||||
|         } | ||||
|         const joined = { | ||||
|             version: 3, | ||||
|             file: parsed.file, | ||||
|             names, | ||||
|             sources, | ||||
|             sourcesContent, | ||||
|             mappings, | ||||
|         }; | ||||
|         return exports.presortedDecodedMap(joined); | ||||
|     }; | ||||
|     function addSection(section, mapUrl, mappings, sources, sourcesContent, names, stopLine, stopColumn) { | ||||
|         const map = AnyMap(section.map, mapUrl); | ||||
|         const { line: lineOffset, column: columnOffset } = section.offset; | ||||
|         const sourcesOffset = sources.length; | ||||
|         const namesOffset = names.length; | ||||
|         const decoded = exports.decodedMappings(map); | ||||
|         const { resolvedSources } = map; | ||||
|         append(sources, resolvedSources); | ||||
|         append(sourcesContent, map.sourcesContent || fillSourcesContent(resolvedSources.length)); | ||||
|         append(names, map.names); | ||||
|         // If this section jumps forwards several lines, we need to add lines to the output mappings catch up. | ||||
|         for (let i = mappings.length; i <= lineOffset; i++) | ||||
|             mappings.push([]); | ||||
|         // We can only add so many lines before we step into the range that the next section's map | ||||
|         // controls. When we get to the last line, then we'll start checking the segments to see if | ||||
|         // they've crossed into the column range. | ||||
|         const stopI = stopLine - lineOffset; | ||||
|         const len = Math.min(decoded.length, stopI + 1); | ||||
|         for (let i = 0; i < len; i++) { | ||||
|             const line = decoded[i]; | ||||
|             // On the 0th loop, the line will already exist due to a previous section, or the line catch up | ||||
|             // loop above. | ||||
|             const out = i === 0 ? mappings[lineOffset] : (mappings[lineOffset + i] = []); | ||||
|             // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the | ||||
|             // map can be multiple lines), it doesn't. | ||||
|             const cOffset = i === 0 ? columnOffset : 0; | ||||
|             for (let j = 0; j < line.length; j++) { | ||||
|                 const seg = line[j]; | ||||
|                 const column = cOffset + seg[COLUMN]; | ||||
|                 // If this segment steps into the column range that the next section's map controls, we need | ||||
|                 // to stop early. | ||||
|                 if (i === stopI && column >= stopColumn) | ||||
|                     break; | ||||
|                 if (seg.length === 1) { | ||||
|                     out.push([column]); | ||||
|                     continue; | ||||
|                 } | ||||
|                 const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; | ||||
|                 const sourceLine = seg[SOURCE_LINE]; | ||||
|                 const sourceColumn = seg[SOURCE_COLUMN]; | ||||
|                 if (seg.length === 4) { | ||||
|                     out.push([column, sourcesIndex, sourceLine, sourceColumn]); | ||||
|                     continue; | ||||
|                 } | ||||
|                 out.push([column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function append(arr, other) { | ||||
|         for (let i = 0; i < other.length; i++) | ||||
|             arr.push(other[i]); | ||||
|     } | ||||
|     // Sourcemaps don't need to have sourcesContent, and if they don't, we need to create an array of | ||||
|     // equal length to the sources. This is because the sources and sourcesContent are paired arrays, | ||||
|     // where `sourcesContent[i]` is the content of the `sources[i]` file. If we didn't, then joined | ||||
|     // sourcemap would desynchronize the sources/contents. | ||||
|     function fillSourcesContent(len) { | ||||
|         const sourcesContent = []; | ||||
|         for (let i = 0; i < len; i++) | ||||
|             sourcesContent[i] = null; | ||||
|         return sourcesContent; | ||||
|     } | ||||
|  | ||||
|     const INVALID_ORIGINAL_MAPPING = Object.freeze({ | ||||
|         source: null, | ||||
|         line: null, | ||||
|         column: null, | ||||
|         name: null, | ||||
|     }); | ||||
|     const INVALID_GENERATED_MAPPING = Object.freeze({ | ||||
|         line: null, | ||||
|         column: null, | ||||
|     }); | ||||
|     const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; | ||||
|     const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; | ||||
|     const LEAST_UPPER_BOUND = -1; | ||||
|     const GREATEST_LOWER_BOUND = 1; | ||||
|     /** | ||||
|      * Returns the encoded (VLQ string) form of the SourceMap's mappings field. | ||||
|      */ | ||||
|     exports.encodedMappings = void 0; | ||||
|     /** | ||||
|      * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. | ||||
|      */ | ||||
|     exports.decodedMappings = void 0; | ||||
|     /** | ||||
|      * A low-level API to find the segment associated with a generated line/column (think, from a | ||||
|      * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. | ||||
|      */ | ||||
|     exports.traceSegment = void 0; | ||||
|     /** | ||||
|      * A higher-level API to find the source/line/column associated with a generated line/column | ||||
|      * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in | ||||
|      * `source-map` library. | ||||
|      */ | ||||
|     exports.originalPositionFor = void 0; | ||||
|     /** | ||||
|      * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided | ||||
|      * the found mapping is from the same source and line as the originalPositionFor mapping. | ||||
|      * | ||||
|      * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1` | ||||
|      * using the same needle that would return `id` when calling `originalPositionFor`. | ||||
|      */ | ||||
|     exports.generatedPositionFor = void 0; | ||||
|     /** | ||||
|      * Iterates each mapping in generated position order. | ||||
|      */ | ||||
|     exports.eachMapping = void 0; | ||||
|     /** | ||||
|      * A helper that skips sorting of the input map's mappings array, which can be expensive for larger | ||||
|      * maps. | ||||
|      */ | ||||
|     exports.presortedDecodedMap = void 0; | ||||
|     /** | ||||
|      * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects | ||||
|      * a sourcemap, or to JSON.stringify. | ||||
|      */ | ||||
|     exports.decodedMap = void 0; | ||||
|     /** | ||||
|      * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects | ||||
|      * a sourcemap, or to JSON.stringify. | ||||
|      */ | ||||
|     exports.encodedMap = void 0; | ||||
|     class TraceMap { | ||||
|         constructor(map, mapUrl) { | ||||
|             this._decodedMemo = memoizedState(); | ||||
|             this._bySources = undefined; | ||||
|             this._bySourceMemos = undefined; | ||||
|             const isString = typeof map === 'string'; | ||||
|             if (!isString && map.constructor === TraceMap) | ||||
|                 return map; | ||||
|             const parsed = (isString ? JSON.parse(map) : map); | ||||
|             const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; | ||||
|             this.version = version; | ||||
|             this.file = file; | ||||
|             this.names = names; | ||||
|             this.sourceRoot = sourceRoot; | ||||
|             this.sources = sources; | ||||
|             this.sourcesContent = sourcesContent; | ||||
|             if (sourceRoot || mapUrl) { | ||||
|                 const from = resolve(sourceRoot || '', stripFilename(mapUrl)); | ||||
|                 this.resolvedSources = sources.map((s) => resolve(s || '', from)); | ||||
|             } | ||||
|             else { | ||||
|                 this.resolvedSources = sources.map((s) => s || ''); | ||||
|             } | ||||
|             const { mappings } = parsed; | ||||
|             if (typeof mappings === 'string') { | ||||
|                 this._encoded = mappings; | ||||
|                 this._decoded = undefined; | ||||
|             } | ||||
|             else { | ||||
|                 this._encoded = undefined; | ||||
|                 this._decoded = maybeSort(mappings, isString); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     (() => { | ||||
|         exports.encodedMappings = (map) => { | ||||
|             var _a; | ||||
|             return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = sourcemapCodec.encode(map._decoded))); | ||||
|         }; | ||||
|         exports.decodedMappings = (map) => { | ||||
|             return (map._decoded || (map._decoded = sourcemapCodec.decode(map._encoded))); | ||||
|         }; | ||||
|         exports.traceSegment = (map, line, column) => { | ||||
|             const decoded = exports.decodedMappings(map); | ||||
|             // It's common for parent source maps to have pointers to lines that have no | ||||
|             // mapping (like a "//# sourceMappingURL=") at the end of the child file. | ||||
|             if (line >= decoded.length) | ||||
|                 return null; | ||||
|             return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND); | ||||
|         }; | ||||
|         exports.originalPositionFor = (map, { line, column, bias }) => { | ||||
|             line--; | ||||
|             if (line < 0) | ||||
|                 throw new Error(LINE_GTR_ZERO); | ||||
|             if (column < 0) | ||||
|                 throw new Error(COL_GTR_EQ_ZERO); | ||||
|             const decoded = exports.decodedMappings(map); | ||||
|             // It's common for parent source maps to have pointers to lines that have no | ||||
|             // mapping (like a "//# sourceMappingURL=") at the end of the child file. | ||||
|             if (line >= decoded.length) | ||||
|                 return INVALID_ORIGINAL_MAPPING; | ||||
|             const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND); | ||||
|             if (segment == null) | ||||
|                 return INVALID_ORIGINAL_MAPPING; | ||||
|             if (segment.length == 1) | ||||
|                 return INVALID_ORIGINAL_MAPPING; | ||||
|             const { names, resolvedSources } = map; | ||||
|             return { | ||||
|                 source: resolvedSources[segment[SOURCES_INDEX]], | ||||
|                 line: segment[SOURCE_LINE] + 1, | ||||
|                 column: segment[SOURCE_COLUMN], | ||||
|                 name: segment.length === 5 ? names[segment[NAMES_INDEX]] : null, | ||||
|             }; | ||||
|         }; | ||||
|         exports.generatedPositionFor = (map, { source, line, column, bias }) => { | ||||
|             line--; | ||||
|             if (line < 0) | ||||
|                 throw new Error(LINE_GTR_ZERO); | ||||
|             if (column < 0) | ||||
|                 throw new Error(COL_GTR_EQ_ZERO); | ||||
|             const { sources, resolvedSources } = map; | ||||
|             let sourceIndex = sources.indexOf(source); | ||||
|             if (sourceIndex === -1) | ||||
|                 sourceIndex = resolvedSources.indexOf(source); | ||||
|             if (sourceIndex === -1) | ||||
|                 return INVALID_GENERATED_MAPPING; | ||||
|             const generated = (map._bySources || (map._bySources = buildBySources(exports.decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState))))); | ||||
|             const memos = map._bySourceMemos; | ||||
|             const segments = generated[sourceIndex][line]; | ||||
|             if (segments == null) | ||||
|                 return INVALID_GENERATED_MAPPING; | ||||
|             const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND); | ||||
|             if (segment == null) | ||||
|                 return INVALID_GENERATED_MAPPING; | ||||
|             return { | ||||
|                 line: segment[REV_GENERATED_LINE] + 1, | ||||
|                 column: segment[REV_GENERATED_COLUMN], | ||||
|             }; | ||||
|         }; | ||||
|         exports.eachMapping = (map, cb) => { | ||||
|             const decoded = exports.decodedMappings(map); | ||||
|             const { names, resolvedSources } = map; | ||||
|             for (let i = 0; i < decoded.length; i++) { | ||||
|                 const line = decoded[i]; | ||||
|                 for (let j = 0; j < line.length; j++) { | ||||
|                     const seg = line[j]; | ||||
|                     const generatedLine = i + 1; | ||||
|                     const generatedColumn = seg[0]; | ||||
|                     let source = null; | ||||
|                     let originalLine = null; | ||||
|                     let originalColumn = null; | ||||
|                     let name = null; | ||||
|                     if (seg.length !== 1) { | ||||
|                         source = resolvedSources[seg[1]]; | ||||
|                         originalLine = seg[2] + 1; | ||||
|                         originalColumn = seg[3]; | ||||
|                     } | ||||
|                     if (seg.length === 5) | ||||
|                         name = names[seg[4]]; | ||||
|                     cb({ | ||||
|                         generatedLine, | ||||
|                         generatedColumn, | ||||
|                         source, | ||||
|                         originalLine, | ||||
|                         originalColumn, | ||||
|                         name, | ||||
|                     }); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         exports.presortedDecodedMap = (map, mapUrl) => { | ||||
|             const clone = Object.assign({}, map); | ||||
|             clone.mappings = []; | ||||
|             const tracer = new TraceMap(clone, mapUrl); | ||||
|             tracer._decoded = map.mappings; | ||||
|             return tracer; | ||||
|         }; | ||||
|         exports.decodedMap = (map) => { | ||||
|             return { | ||||
|                 version: 3, | ||||
|                 file: map.file, | ||||
|                 names: map.names, | ||||
|                 sourceRoot: map.sourceRoot, | ||||
|                 sources: map.sources, | ||||
|                 sourcesContent: map.sourcesContent, | ||||
|                 mappings: exports.decodedMappings(map), | ||||
|             }; | ||||
|         }; | ||||
|         exports.encodedMap = (map) => { | ||||
|             return { | ||||
|                 version: 3, | ||||
|                 file: map.file, | ||||
|                 names: map.names, | ||||
|                 sourceRoot: map.sourceRoot, | ||||
|                 sources: map.sources, | ||||
|                 sourcesContent: map.sourcesContent, | ||||
|                 mappings: exports.encodedMappings(map), | ||||
|             }; | ||||
|         }; | ||||
|     })(); | ||||
|     function traceSegmentInternal(segments, memo, line, column, bias) { | ||||
|         let index = memoizedBinarySearch(segments, column, memo, line); | ||||
|         if (found) { | ||||
|             index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); | ||||
|         } | ||||
|         else if (bias === LEAST_UPPER_BOUND) | ||||
|             index++; | ||||
|         if (index === -1 || index === segments.length) | ||||
|             return null; | ||||
|         return segments[index]; | ||||
|     } | ||||
|  | ||||
|     exports.AnyMap = AnyMap; | ||||
|     exports.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND; | ||||
|     exports.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND; | ||||
|     exports.TraceMap = TraceMap; | ||||
|  | ||||
|     Object.defineProperty(exports, '__esModule', { value: true }); | ||||
|  | ||||
| })); | ||||
| //# sourceMappingURL=trace-mapping.umd.js.map | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										8
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| import { TraceMap } from './trace-mapping'; | ||||
| import type { SectionedSourceMapInput } from './types'; | ||||
| declare type AnyMap = { | ||||
|     new (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap; | ||||
|     (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap; | ||||
| }; | ||||
| export declare const AnyMap: AnyMap; | ||||
| export {}; | ||||
							
								
								
									
										32
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment'; | ||||
| export declare type MemoState = { | ||||
|     lastKey: number; | ||||
|     lastNeedle: number; | ||||
|     lastIndex: number; | ||||
| }; | ||||
| export declare let found: boolean; | ||||
| /** | ||||
|  * A binary search implementation that returns the index if a match is found. | ||||
|  * If no match is found, then the left-index (the index associated with the item that comes just | ||||
|  * before the desired index) is returned. To maintain proper sort order, a splice would happen at | ||||
|  * the next index: | ||||
|  * | ||||
|  * ```js | ||||
|  * const array = [1, 3]; | ||||
|  * const needle = 2; | ||||
|  * const index = binarySearch(array, needle, (item, needle) => item - needle); | ||||
|  * | ||||
|  * assert.equal(index, 0); | ||||
|  * array.splice(index + 1, 0, needle); | ||||
|  * assert.deepEqual(array, [1, 2, 3]); | ||||
|  * ``` | ||||
|  */ | ||||
| export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number; | ||||
| export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; | ||||
| export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number; | ||||
| export declare function memoizedState(): MemoState; | ||||
| /** | ||||
|  * This overly complicated beast is just to record the last tested line/column and the resulting | ||||
|  * index, allowing us to skip a few tests if mappings are monotonically increasing. | ||||
|  */ | ||||
| export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number; | ||||
							
								
								
									
										7
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment'; | ||||
| import type { MemoState } from './binary-search'; | ||||
| export declare type Source = { | ||||
|     __proto__: null; | ||||
|     [line: number]: Exclude<ReverseSegment, [number]>[]; | ||||
| }; | ||||
| export default function buildBySources(decoded: readonly SourceMapSegment[][], memos: MemoState[]): Source[]; | ||||
							
								
								
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| export default function resolve(input: string, base: string | undefined): string; | ||||
							
								
								
									
										2
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| import type { SourceMapSegment } from './sourcemap-segment'; | ||||
| export default function maybeSort(mappings: SourceMapSegment[][], owned: boolean): SourceMapSegment[][]; | ||||
							
								
								
									
										16
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| declare type GeneratedColumn = number; | ||||
| declare type SourcesIndex = number; | ||||
| declare type SourceLine = number; | ||||
| declare type SourceColumn = number; | ||||
| declare type NamesIndex = number; | ||||
| declare type GeneratedLine = number; | ||||
| export declare type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex]; | ||||
| export declare type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn]; | ||||
| export declare const COLUMN = 0; | ||||
| export declare const SOURCES_INDEX = 1; | ||||
| export declare const SOURCE_LINE = 2; | ||||
| export declare const SOURCE_COLUMN = 3; | ||||
| export declare const NAMES_INDEX = 4; | ||||
| export declare const REV_GENERATED_LINE = 1; | ||||
| export declare const REV_GENERATED_COLUMN = 2; | ||||
| export {}; | ||||
							
								
								
									
										4
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| /** | ||||
|  * Removes everything after the last "/", but leaves the slash. | ||||
|  */ | ||||
| export default function stripFilename(path: string | undefined | null): string; | ||||
							
								
								
									
										70
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| import type { SourceMapSegment } from './sourcemap-segment'; | ||||
| import type { SourceMapV3, DecodedSourceMap, EncodedSourceMap, InvalidOriginalMapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, SourceMapInput, Needle, SourceNeedle, SourceMap, EachMapping } from './types'; | ||||
| export type { SourceMapSegment } from './sourcemap-segment'; | ||||
| export type { SourceMapInput, SectionedSourceMapInput, DecodedSourceMap, EncodedSourceMap, SectionedSourceMap, InvalidOriginalMapping, OriginalMapping as Mapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, EachMapping, } from './types'; | ||||
| export declare const LEAST_UPPER_BOUND = -1; | ||||
| export declare const GREATEST_LOWER_BOUND = 1; | ||||
| /** | ||||
|  * Returns the encoded (VLQ string) form of the SourceMap's mappings field. | ||||
|  */ | ||||
| export declare let encodedMappings: (map: TraceMap) => EncodedSourceMap['mappings']; | ||||
| /** | ||||
|  * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field. | ||||
|  */ | ||||
| export declare let decodedMappings: (map: TraceMap) => Readonly<DecodedSourceMap['mappings']>; | ||||
| /** | ||||
|  * A low-level API to find the segment associated with a generated line/column (think, from a | ||||
|  * stack trace). Line and column here are 0-based, unlike `originalPositionFor`. | ||||
|  */ | ||||
| export declare let traceSegment: (map: TraceMap, line: number, column: number) => Readonly<SourceMapSegment> | null; | ||||
| /** | ||||
|  * A higher-level API to find the source/line/column associated with a generated line/column | ||||
|  * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in | ||||
|  * `source-map` library. | ||||
|  */ | ||||
| export declare let originalPositionFor: (map: TraceMap, needle: Needle) => OriginalMapping | InvalidOriginalMapping; | ||||
| /** | ||||
|  * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided | ||||
|  * the found mapping is from the same source and line as the originalPositionFor mapping. | ||||
|  * | ||||
|  * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1` | ||||
|  * using the same needle that would return `id` when calling `originalPositionFor`. | ||||
|  */ | ||||
| export declare let generatedPositionFor: (map: TraceMap, needle: SourceNeedle) => GeneratedMapping | InvalidGeneratedMapping; | ||||
| /** | ||||
|  * Iterates each mapping in generated position order. | ||||
|  */ | ||||
| export declare let eachMapping: (map: TraceMap, cb: (mapping: EachMapping) => void) => void; | ||||
| /** | ||||
|  * A helper that skips sorting of the input map's mappings array, which can be expensive for larger | ||||
|  * maps. | ||||
|  */ | ||||
| export declare let presortedDecodedMap: (map: DecodedSourceMap, mapUrl?: string) => TraceMap; | ||||
| /** | ||||
|  * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects | ||||
|  * a sourcemap, or to JSON.stringify. | ||||
|  */ | ||||
| export declare let decodedMap: (map: TraceMap) => Omit<DecodedSourceMap, 'mappings'> & { | ||||
|     mappings: readonly SourceMapSegment[][]; | ||||
| }; | ||||
| /** | ||||
|  * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects | ||||
|  * a sourcemap, or to JSON.stringify. | ||||
|  */ | ||||
| export declare let encodedMap: (map: TraceMap) => EncodedSourceMap; | ||||
| export { AnyMap } from './any-map'; | ||||
| export declare class TraceMap implements SourceMap { | ||||
|     version: SourceMapV3['version']; | ||||
|     file: SourceMapV3['file']; | ||||
|     names: SourceMapV3['names']; | ||||
|     sourceRoot: SourceMapV3['sourceRoot']; | ||||
|     sources: SourceMapV3['sources']; | ||||
|     sourcesContent: SourceMapV3['sourcesContent']; | ||||
|     resolvedSources: string[]; | ||||
|     private _encoded; | ||||
|     private _decoded; | ||||
|     private _decodedMemo; | ||||
|     private _bySources; | ||||
|     private _bySourceMemos; | ||||
|     constructor(map: SourceMapInput, mapUrl?: string | null); | ||||
| } | ||||
							
								
								
									
										85
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | ||||
| import type { SourceMapSegment } from './sourcemap-segment'; | ||||
| import type { TraceMap } from './trace-mapping'; | ||||
| export interface SourceMapV3 { | ||||
|     file?: string | null; | ||||
|     names: string[]; | ||||
|     sourceRoot?: string; | ||||
|     sources: (string | null)[]; | ||||
|     sourcesContent?: (string | null)[]; | ||||
|     version: 3; | ||||
| } | ||||
| export interface EncodedSourceMap extends SourceMapV3 { | ||||
|     mappings: string; | ||||
| } | ||||
| export interface DecodedSourceMap extends SourceMapV3 { | ||||
|     mappings: SourceMapSegment[][]; | ||||
| } | ||||
| export interface Section { | ||||
|     offset: { | ||||
|         line: number; | ||||
|         column: number; | ||||
|     }; | ||||
|     map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap; | ||||
| } | ||||
| export interface SectionedSourceMap { | ||||
|     file?: string | null; | ||||
|     sections: Section[]; | ||||
|     version: 3; | ||||
| } | ||||
| export declare type OriginalMapping = { | ||||
|     source: string | null; | ||||
|     line: number; | ||||
|     column: number; | ||||
|     name: string | null; | ||||
| }; | ||||
| export declare type InvalidOriginalMapping = { | ||||
|     source: null; | ||||
|     line: null; | ||||
|     column: null; | ||||
|     name: null; | ||||
| }; | ||||
| export declare type GeneratedMapping = { | ||||
|     line: number; | ||||
|     column: number; | ||||
| }; | ||||
| export declare type InvalidGeneratedMapping = { | ||||
|     line: null; | ||||
|     column: null; | ||||
| }; | ||||
| export declare type SourceMapInput = string | EncodedSourceMap | DecodedSourceMap | TraceMap; | ||||
| export declare type SectionedSourceMapInput = SourceMapInput | SectionedSourceMap; | ||||
| export declare type Needle = { | ||||
|     line: number; | ||||
|     column: number; | ||||
|     bias?: 1 | -1; | ||||
| }; | ||||
| export declare type SourceNeedle = { | ||||
|     source: string; | ||||
|     line: number; | ||||
|     column: number; | ||||
|     bias?: 1 | -1; | ||||
| }; | ||||
| export declare type EachMapping = { | ||||
|     generatedLine: number; | ||||
|     generatedColumn: number; | ||||
|     source: null; | ||||
|     originalLine: null; | ||||
|     originalColumn: null; | ||||
|     name: null; | ||||
| } | { | ||||
|     generatedLine: number; | ||||
|     generatedColumn: number; | ||||
|     source: string | null; | ||||
|     originalLine: number; | ||||
|     originalColumn: number; | ||||
|     name: string | null; | ||||
| }; | ||||
| export declare abstract class SourceMap { | ||||
|     version: SourceMapV3['version']; | ||||
|     file: SourceMapV3['file']; | ||||
|     names: SourceMapV3['names']; | ||||
|     sourceRoot: SourceMapV3['sourceRoot']; | ||||
|     sources: SourceMapV3['sources']; | ||||
|     sourcesContent: SourceMapV3['sourcesContent']; | ||||
|     resolvedSources: SourceMapV3['sources']; | ||||
| } | ||||
							
								
								
									
										70
									
								
								node_modules/@jridgewell/trace-mapping/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								node_modules/@jridgewell/trace-mapping/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| { | ||||
|   "name": "@jridgewell/trace-mapping", | ||||
|   "version": "0.3.9", | ||||
|   "description": "Trace the original position through a source map", | ||||
|   "keywords": [ | ||||
|     "source", | ||||
|     "map" | ||||
|   ], | ||||
|   "main": "dist/trace-mapping.umd.js", | ||||
|   "module": "dist/trace-mapping.mjs", | ||||
|   "typings": "dist/types/trace-mapping.d.ts", | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "exports": { | ||||
|     ".": { | ||||
|       "browser": "./dist/trace-mapping.umd.js", | ||||
|       "require": "./dist/trace-mapping.umd.js", | ||||
|       "import": "./dist/trace-mapping.mjs" | ||||
|     }, | ||||
|     "./package.json": "./package.json" | ||||
|   }, | ||||
|   "author": "Justin Ridgewell <justin@ridgewell.name>", | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git+https://github.com/jridgewell/trace-mapping.git" | ||||
|   }, | ||||
|   "license": "MIT", | ||||
|   "scripts": { | ||||
|     "benchmark": "run-s build:rollup benchmark:*", | ||||
|     "benchmark:install": "cd benchmark && npm install", | ||||
|     "benchmark:only": "node benchmark/index.mjs", | ||||
|     "build": "run-s -n build:*", | ||||
|     "build:rollup": "rollup -c rollup.config.js", | ||||
|     "build:ts": "tsc --project tsconfig.build.json", | ||||
|     "lint": "run-s -n lint:*", | ||||
|     "lint:prettier": "npm run test:lint:prettier -- --write", | ||||
|     "lint:ts": "npm run test:lint:ts -- --fix", | ||||
|     "prebuild": "rm -rf dist", | ||||
|     "prepublishOnly": "npm run preversion", | ||||
|     "preversion": "run-s test build", | ||||
|     "test": "run-s -n test:lint test:only", | ||||
|     "test:debug": "ava debug", | ||||
|     "test:lint": "run-s -n test:lint:*", | ||||
|     "test:lint:prettier": "prettier --check '{src,test}/**/*.ts' '**/*.md'", | ||||
|     "test:lint:ts": "eslint '{src,test}/**/*.ts'", | ||||
|     "test:only": "c8 ava", | ||||
|     "test:watch": "ava --watch" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@rollup/plugin-typescript": "8.3.0", | ||||
|     "@typescript-eslint/eslint-plugin": "5.10.0", | ||||
|     "@typescript-eslint/parser": "5.10.0", | ||||
|     "ava": "4.0.1", | ||||
|     "benchmark": "2.1.4", | ||||
|     "c8": "7.11.0", | ||||
|     "esbuild": "0.14.14", | ||||
|     "esbuild-node-loader": "0.6.4", | ||||
|     "eslint": "8.7.0", | ||||
|     "eslint-config-prettier": "8.3.0", | ||||
|     "npm-run-all": "4.1.5", | ||||
|     "prettier": "2.5.1", | ||||
|     "rollup": "2.64.0", | ||||
|     "typescript": "4.5.4" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@jridgewell/resolve-uri": "^3.0.3", | ||||
|     "@jridgewell/sourcemap-codec": "^1.4.10" | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user