{"version":3,"file":"url.cjs","sources":["../../src/url.ts"],"sourcesContent":["const TEMPORARY_HOST = 'http://example.com';\n\n/**\n * @package\n *\n * @param value - a fully qualified URL, or a relative path\n */\nexport const escapeURLPath = (value: string): string => {\n    const [scheme] = value.match(/^[a-z]+:/) ?? [];\n    const isFullyQualified = scheme != null;\n\n    /**\n     * Browser implementations of `URL` do not escape URLs with unknown schemes\n     * like `jr:, nor do they escape known URLs without a domain like `file:`.\n     * To work around this limitation, we use a temporary HTTP host to escape\n     * `jr:` URL paths.\n     */\n    const urlString = isFullyQualified\n        ? value.replace(/^jr:\\/*/, 'http://')\n        : `${TEMPORARY_HOST}/${value.replace(/^\\//, '')}`;\n\n    const url = new URL(urlString);\n\n    if (isFullyQualified) {\n        return url.href.replace('http:', scheme);\n    }\n\n    const { pathname, search } = url;\n    const path = value.startsWith('/') ? pathname : pathname.replace(/^\\//, '');\n\n    return `${path}${search}`;\n};\n\n/** @package */\nexport const getMediaPath = (\n    mediaMap: Record<string, string>,\n    mediaURL: string\n) => {\n    const mediaPath = mediaURL.match(/jr:\\/\\/[\\w-]+\\/(.+)/);\n\n    if (mediaPath == null) {\n        return escapeURLPath(mediaURL);\n    }\n\n    const path = escapeURLPath(mediaPath[1]);\n    const value = mediaMap[path];\n\n    return value || escapeURLPath(mediaURL);\n};\n"],"names":[],"mappings":";;AAAA,MAAM,iBAAiB;AAOV,MAAA,gBAAgB,CAAC,UAA0B;AACpD,QAAM,CAAC,MAAM,IAAI,MAAM,MAAM,UAAU,KAAK;AAC5C,QAAM,mBAAmB,UAAU;AAQnC,QAAM,YAAY,mBACZ,MAAM,QAAQ,WAAW,SAAS,IAClC,GAAG,cAAc,IAAI,MAAM,QAAQ,OAAO,EAAE,CAAC;AAE7C,QAAA,MAAM,IAAI,IAAI,SAAS;AAE7B,MAAI,kBAAkB;AAClB,WAAO,IAAI,KAAK,QAAQ,SAAS,MAAM;AAAA,EAC3C;AAEM,QAAA,EAAE,UAAU,OAAW,IAAA;AACvB,QAAA,OAAO,MAAM,WAAW,GAAG,IAAI,WAAW,SAAS,QAAQ,OAAO,EAAE;AAEnE,SAAA,GAAG,IAAI,GAAG,MAAM;AAC3B;AAGa,MAAA,eAAe,CACxB,UACA,aACC;AACK,QAAA,YAAY,SAAS,MAAM,qBAAqB;AAEtD,MAAI,aAAa,MAAM;AACnB,WAAO,cAAc,QAAQ;AAAA,EACjC;AAEA,QAAM,OAAO,cAAc,UAAU,CAAC,CAAC;AACjC,QAAA,QAAQ,SAAS,IAAI;AAEpB,SAAA,SAAS,cAAc,QAAQ;AAC1C;;;"}