diff options
Diffstat (limited to 'node_modules/@jridgewell/resolve-uri')
8 files changed, 491 insertions, 0 deletions
diff --git a/node_modules/@jridgewell/resolve-uri/LICENSE b/node_modules/@jridgewell/resolve-uri/LICENSE new file mode 100644 index 0000000..0a81b2a --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/LICENSE @@ -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.
\ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/README.md b/node_modules/@jridgewell/resolve-uri/README.md new file mode 100644 index 0000000..2fe70df --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/README.md @@ -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               | diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs new file mode 100644 index 0000000..b7fa4bd --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs @@ -0,0 +1,177 @@ +// 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. + */ +const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/; +function isAbsoluteUrl(input) { +    return schemeRegex.test(input); +} +function isSchemeRelativeUrl(input) { +    return input.startsWith('//'); +} +function isAbsolutePath(input) { +    return input.startsWith('/'); +} +function parseAbsoluteUrl(input) { +    const match = urlRegex.exec(input); +    return { +        scheme: match[1], +        user: match[2] || '', +        host: match[3], +        port: match[4] || '', +        path: match[5] || '/', +        relativePath: false, +    }; +} +function parseUrl(input) { +    if (isSchemeRelativeUrl(input)) { +        const url = parseAbsoluteUrl('http:' + input); +        url.scheme = ''; +        return url; +    } +    if (isAbsolutePath(input)) { +        const url = parseAbsoluteUrl('http://foo.com' + input); +        url.scheme = ''; +        url.host = ''; +        return url; +    } +    if (!isAbsoluteUrl(input)) { +        const url = parseAbsoluteUrl('http://foo.com/' + input); +        url.scheme = ''; +        url.host = ''; +        url.relativePath = true; +        return url; +    } +    return parseAbsoluteUrl(input); +} +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) { +    // If we're not a relative path, then we're an absolute path, and it doesn't matter what base is. +    if (!url.relativePath) +        return; +    normalizePath(base); +    // 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; +    } +    // If the base path is absolute, then our path is now absolute too. +    url.relativePath = base.relativePath; +} +/** + * The path can have empty directories "//", unneeded parents "foo/..", or current directory + * "foo/.". We need to normalize to a standard representation. + */ +function normalizePath(url) { +    const { relativePath } = url; +    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 (relativePath) { +                // 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); +    // If we have a base, and the input isn't already an absolute URL, then we need to merge. +    if (base && !url.scheme) { +        const baseUrl = parseUrl(base); +        url.scheme = baseUrl.scheme; +        // If there's no host, then we were just a path. +        if (!url.host || baseUrl.scheme === 'file:') { +            // 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; +        } +        mergePaths(url, baseUrl); +    } +    normalizePath(url); +    // If the input (and base, if there was one) are both relative, then we need to output a relative. +    if (url.relativePath) { +        // The first char is always a "/". +        const path = url.path.slice(1); +        if (!path) +            return '.'; +        // 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. +        const keepRelative = (base || input).startsWith('.'); +        return !keepRelative || path.startsWith('.') ? path : './' + path; +    } +    // If there's no host (and no scheme/user/port), then we need to output an absolute path. +    if (!url.scheme && !url.host) +        return url.path; +    // We're outputting either an absolute URL, or a protocol relative one. +    return `${url.scheme}//${url.user}${url.host}${url.port}${url.path}`; +} + +export { resolve as default }; +//# sourceMappingURL=resolve-uri.mjs.map diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map new file mode 100644 index 0000000..e660711 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve-uri.mjs","sources":["../../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?/;\n\ntype Url = {\n  scheme: string;\n  user: string;\n  host: string;\n  port: string;\n  path: string;\n  relativePath: boolean;\n};\n\nfunction isAbsoluteUrl(input: string): boolean {\n  return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n  return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n  return input.startsWith('/');\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n  const match = urlRegex.exec(input)!;\n  return {\n    scheme: match[1],\n    user: match[2] || '',\n    host: match[3],\n    port: match[4] || '',\n    path: match[5] || '/',\n    relativePath: false,\n  };\n}\n\nfunction parseUrl(input: string): Url {\n  if (isSchemeRelativeUrl(input)) {\n    const url = parseAbsoluteUrl('http:' + input);\n    url.scheme = '';\n    return url;\n  }\n  if (isAbsolutePath(input)) {\n    const url = parseAbsoluteUrl('http://foo.com' + input);\n    url.scheme = '';\n    url.host = '';\n    return url;\n  }\n  if (!isAbsoluteUrl(input)) {\n    const url = parseAbsoluteUrl('http://foo.com/' + input);\n    url.scheme = '';\n    url.host = '';\n    url.relativePath = true;\n    return url;\n  }\n  return parseAbsoluteUrl(input);\n}\n\nfunction stripPathFilename(path: string): string {\n  // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n  // paths. It's not a file, so we can't strip it.\n  if (path.endsWith('/..')) return path;\n  const index = path.lastIndexOf('/');\n  return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n  // If we're not a relative path, then we're an absolute path, and it doesn't matter what base is.\n  if (!url.relativePath) return;\n\n  normalizePath(base);\n\n  // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n  // path).\n  if (url.path === '/') {\n    url.path = base.path;\n  } else {\n    // Resolution happens relative to the base path's directory, not the file.\n    url.path = stripPathFilename(base.path) + url.path;\n  }\n\n  // If the base path is absolute, then our path is now absolute too.\n  url.relativePath = base.relativePath;\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url) {\n  const { relativePath } = url;\n  const pieces = url.path.split('/');\n\n  // We need to preserve the first piece always, so that we output a leading slash. The item at\n  // pieces[0] is an empty string.\n  let pointer = 1;\n\n  // Positive is the number of real directories we've output, used for popping a parent directory.\n  // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n  let positive = 0;\n\n  // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n  // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n  // real directory, we won't need to append, unless the other conditions happen again.\n  let addTrailingSlash = false;\n\n  for (let i = 1; i < pieces.length; i++) {\n    const piece = pieces[i];\n\n    // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n    if (!piece) {\n      addTrailingSlash = true;\n      continue;\n    }\n\n    // If we encounter a real directory, then we don't need to append anymore.\n    addTrailingSlash = false;\n\n    // A current directory, which we can always drop.\n    if (piece === '.') continue;\n\n    // A parent directory, we need to see if there are any real directories we can pop. Else, we\n    // have an excess of parents, and we'll need to keep the \"..\".\n    if (piece === '..') {\n      if (positive) {\n        addTrailingSlash = true;\n        positive--;\n        pointer--;\n      } else if (relativePath) {\n        // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n        // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n        pieces[pointer++] = piece;\n      }\n      continue;\n    }\n\n    // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n    // any popped or dropped directories.\n    pieces[pointer++] = piece;\n    positive++;\n  }\n\n  let path = '';\n  for (let i = 1; i < pointer; i++) {\n    path += '/' + pieces[i];\n  }\n  if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n    path += '/';\n  }\n  url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n  if (!input && !base) return '';\n\n  const url = parseUrl(input);\n\n  // If we have a base, and the input isn't already an absolute URL, then we need to merge.\n  if (base && !url.scheme) {\n    const baseUrl = parseUrl(base);\n    url.scheme = baseUrl.scheme;\n    // If there's no host, then we were just a path.\n    if (!url.host || baseUrl.scheme === 'file:') {\n      // The host, user, and port are joined, you can't copy one without the others.\n      url.user = baseUrl.user;\n      url.host = baseUrl.host;\n      url.port = baseUrl.port;\n    }\n    mergePaths(url, baseUrl);\n  }\n\n  normalizePath(url);\n\n  // If the input (and base, if there was one) are both relative, then we need to output a relative.\n  if (url.relativePath) {\n    // The first char is always a \"/\".\n    const path = url.path.slice(1);\n    if (!path) return '.';\n\n    // If base started with a leading \".\", or there is no base and input started with a \".\", then we\n    // need to ensure that the relative path starts with a \".\". We don't know if relative starts\n    // with a \"..\", though, so check before prepending.\n    const keepRelative = (base || input).startsWith('.');\n    return !keepRelative || path.startsWith('.') ? path : './' + path;\n  }\n  // If there's no host (and no scheme/user/port), then we need to output an absolute path.\n  if (!url.scheme && !url.host) return url.path;\n  // We're outputting either an absolute URL, or a protocol relative one.\n  return `${url.scheme}//${url.user}${url.host}${url.port}${url.path}`;\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js new file mode 100644 index 0000000..015f1af --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js @@ -0,0 +1,185 @@ +(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. +     */ +    const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/; +    function isAbsoluteUrl(input) { +        return schemeRegex.test(input); +    } +    function isSchemeRelativeUrl(input) { +        return input.startsWith('//'); +    } +    function isAbsolutePath(input) { +        return input.startsWith('/'); +    } +    function parseAbsoluteUrl(input) { +        const match = urlRegex.exec(input); +        return { +            scheme: match[1], +            user: match[2] || '', +            host: match[3], +            port: match[4] || '', +            path: match[5] || '/', +            relativePath: false, +        }; +    } +    function parseUrl(input) { +        if (isSchemeRelativeUrl(input)) { +            const url = parseAbsoluteUrl('http:' + input); +            url.scheme = ''; +            return url; +        } +        if (isAbsolutePath(input)) { +            const url = parseAbsoluteUrl('http://foo.com' + input); +            url.scheme = ''; +            url.host = ''; +            return url; +        } +        if (!isAbsoluteUrl(input)) { +            const url = parseAbsoluteUrl('http://foo.com/' + input); +            url.scheme = ''; +            url.host = ''; +            url.relativePath = true; +            return url; +        } +        return parseAbsoluteUrl(input); +    } +    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) { +        // If we're not a relative path, then we're an absolute path, and it doesn't matter what base is. +        if (!url.relativePath) +            return; +        normalizePath(base); +        // 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; +        } +        // If the base path is absolute, then our path is now absolute too. +        url.relativePath = base.relativePath; +    } +    /** +     * The path can have empty directories "//", unneeded parents "foo/..", or current directory +     * "foo/.". We need to normalize to a standard representation. +     */ +    function normalizePath(url) { +        const { relativePath } = url; +        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 (relativePath) { +                    // 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); +        // If we have a base, and the input isn't already an absolute URL, then we need to merge. +        if (base && !url.scheme) { +            const baseUrl = parseUrl(base); +            url.scheme = baseUrl.scheme; +            // If there's no host, then we were just a path. +            if (!url.host || baseUrl.scheme === 'file:') { +                // 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; +            } +            mergePaths(url, baseUrl); +        } +        normalizePath(url); +        // If the input (and base, if there was one) are both relative, then we need to output a relative. +        if (url.relativePath) { +            // The first char is always a "/". +            const path = url.path.slice(1); +            if (!path) +                return '.'; +            // 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. +            const keepRelative = (base || input).startsWith('.'); +            return !keepRelative || path.startsWith('.') ? path : './' + path; +        } +        // If there's no host (and no scheme/user/port), then we need to output an absolute path. +        if (!url.scheme && !url.host) +            return url.path; +        // We're outputting either an absolute URL, or a protocol relative one. +        return `${url.scheme}//${url.user}${url.host}${url.port}${url.path}`; +    } + +    return resolve; + +})); +//# sourceMappingURL=resolve-uri.umd.js.map diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map new file mode 100644 index 0000000..fbbbaae --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"resolve-uri.umd.js","sources":["../../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?/;\n\ntype Url = {\n  scheme: string;\n  user: string;\n  host: string;\n  port: string;\n  path: string;\n  relativePath: boolean;\n};\n\nfunction isAbsoluteUrl(input: string): boolean {\n  return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n  return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n  return input.startsWith('/');\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n  const match = urlRegex.exec(input)!;\n  return {\n    scheme: match[1],\n    user: match[2] || '',\n    host: match[3],\n    port: match[4] || '',\n    path: match[5] || '/',\n    relativePath: false,\n  };\n}\n\nfunction parseUrl(input: string): Url {\n  if (isSchemeRelativeUrl(input)) {\n    const url = parseAbsoluteUrl('http:' + input);\n    url.scheme = '';\n    return url;\n  }\n  if (isAbsolutePath(input)) {\n    const url = parseAbsoluteUrl('http://foo.com' + input);\n    url.scheme = '';\n    url.host = '';\n    return url;\n  }\n  if (!isAbsoluteUrl(input)) {\n    const url = parseAbsoluteUrl('http://foo.com/' + input);\n    url.scheme = '';\n    url.host = '';\n    url.relativePath = true;\n    return url;\n  }\n  return parseAbsoluteUrl(input);\n}\n\nfunction stripPathFilename(path: string): string {\n  // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n  // paths. It's not a file, so we can't strip it.\n  if (path.endsWith('/..')) return path;\n  const index = path.lastIndexOf('/');\n  return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n  // If we're not a relative path, then we're an absolute path, and it doesn't matter what base is.\n  if (!url.relativePath) return;\n\n  normalizePath(base);\n\n  // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n  // path).\n  if (url.path === '/') {\n    url.path = base.path;\n  } else {\n    // Resolution happens relative to the base path's directory, not the file.\n    url.path = stripPathFilename(base.path) + url.path;\n  }\n\n  // If the base path is absolute, then our path is now absolute too.\n  url.relativePath = base.relativePath;\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url) {\n  const { relativePath } = url;\n  const pieces = url.path.split('/');\n\n  // We need to preserve the first piece always, so that we output a leading slash. The item at\n  // pieces[0] is an empty string.\n  let pointer = 1;\n\n  // Positive is the number of real directories we've output, used for popping a parent directory.\n  // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n  let positive = 0;\n\n  // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n  // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n  // real directory, we won't need to append, unless the other conditions happen again.\n  let addTrailingSlash = false;\n\n  for (let i = 1; i < pieces.length; i++) {\n    const piece = pieces[i];\n\n    // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n    if (!piece) {\n      addTrailingSlash = true;\n      continue;\n    }\n\n    // If we encounter a real directory, then we don't need to append anymore.\n    addTrailingSlash = false;\n\n    // A current directory, which we can always drop.\n    if (piece === '.') continue;\n\n    // A parent directory, we need to see if there are any real directories we can pop. Else, we\n    // have an excess of parents, and we'll need to keep the \"..\".\n    if (piece === '..') {\n      if (positive) {\n        addTrailingSlash = true;\n        positive--;\n        pointer--;\n      } else if (relativePath) {\n        // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n        // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n        pieces[pointer++] = piece;\n      }\n      continue;\n    }\n\n    // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n    // any popped or dropped directories.\n    pieces[pointer++] = piece;\n    positive++;\n  }\n\n  let path = '';\n  for (let i = 1; i < pointer; i++) {\n    path += '/' + pieces[i];\n  }\n  if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n    path += '/';\n  }\n  url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n  if (!input && !base) return '';\n\n  const url = parseUrl(input);\n\n  // If we have a base, and the input isn't already an absolute URL, then we need to merge.\n  if (base && !url.scheme) {\n    const baseUrl = parseUrl(base);\n    url.scheme = baseUrl.scheme;\n    // If there's no host, then we were just a path.\n    if (!url.host || baseUrl.scheme === 'file:') {\n      // The host, user, and port are joined, you can't copy one without the others.\n      url.user = baseUrl.user;\n      url.host = baseUrl.host;\n      url.port = baseUrl.port;\n    }\n    mergePaths(url, baseUrl);\n  }\n\n  normalizePath(url);\n\n  // If the input (and base, if there was one) are both relative, then we need to output a relative.\n  if (url.relativePath) {\n    // The first char is always a \"/\".\n    const path = url.path.slice(1);\n    if (!path) return '.';\n\n    // If base started with a leading \".\", or there is no base and input started with a \".\", then we\n    // need to ensure that the relative path starts with a \".\". We don't know if relative starts\n    // with a \"..\", though, so check before prepending.\n    const keepRelative = (base || input).startsWith('.');\n    return !keepRelative || path.startsWith('.') ? path : './' + path;\n  }\n  // If there's no host (and no scheme/user/port), then we need to output an absolute path.\n  if (!url.scheme && !url.host) return url.path;\n  // We're outputting either an absolute URL, or a protocol relative one.\n  return `${url.scheme}//${url.user}${url.host}${url.port}${url.path}`;\n}\n"],"names":[],"mappings":";;;;;;IAAA;IACA,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAErC;;;;;;;;IAQA,MAAM,QAAQ,GAAG,0DAA0D,CAAC;IAW5E,SAAS,aAAa,CAAC,KAAa;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,cAAc,CAAC,KAAa;QACnC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAa;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;YACrB,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACd,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;YACxD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;;;QAGrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAS;;QAErC,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,OAAO;QAE9B,aAAa,CAAC,IAAI,CAAC,CAAC;;;QAIpB,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACtB;aAAM;;YAEL,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;SACpD;;QAGD,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,CAAC;IAED;;;;IAIA,SAAS,aAAa,CAAC,GAAQ;QAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;QAInC,IAAI,OAAO,GAAG,CAAC,CAAC;;;QAIhB,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;QAKjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;YAGxB,IAAI,CAAC,KAAK,EAAE;gBACV,gBAAgB,GAAG,IAAI,CAAC;gBACxB,SAAS;aACV;;YAGD,gBAAgB,GAAG,KAAK,CAAC;;YAGzB,IAAI,KAAK,KAAK,GAAG;gBAAE,SAAS;;;YAI5B,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ,EAAE;oBACZ,gBAAgB,GAAG,IAAI,CAAC;oBACxB,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;iBACX;qBAAM,IAAI,YAAY,EAAE;;;oBAGvB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;iBAC3B;gBACD,SAAS;aACV;;;YAID,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,IAAI,IAAI,GAAG,CAAC;SACb;QACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;;aAGwB,OAAO,CAAC,KAAa,EAAE,IAAwB;QACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;QAG5B,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;YAE5B,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;;gBAE3C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;aACzB;YACD,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC1B;QAED,aAAa,CAAC,GAAG,CAAC,CAAC;;QAGnB,IAAI,GAAG,CAAC,YAAY,EAAE;;YAEpB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAC;;;;YAKtB,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACrD,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;SACnE;;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC;;QAE9C,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACvE;;;;;;;;"}
\ No newline at end of file diff --git a/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts new file mode 100644 index 0000000..b7f0b3b --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts @@ -0,0 +1,4 @@ +/** + * Attempts to resolve `input` URL/path relative to `base`. + */ +export default function resolve(input: string, base: string | undefined): string; diff --git a/node_modules/@jridgewell/resolve-uri/package.json b/node_modules/@jridgewell/resolve-uri/package.json new file mode 100644 index 0000000..4026638 --- /dev/null +++ b/node_modules/@jridgewell/resolve-uri/package.json @@ -0,0 +1,64 @@ +{ +  "name": "@jridgewell/resolve-uri", +  "version": "3.0.5", +  "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", +  "typings": "dist/types/resolve-uri.d.ts", +  "exports": { +    ".": { +      "browser": "./dist/resolve-uri.umd.js", +      "require": "./dist/resolve-uri.umd.js", +      "import": "./dist/resolve-uri.mjs" +    }, +    "./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": { +    "@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" +  } +}  | 
