UNPKG

4.33 kBSource Map (JSON)View Raw
1{"version":3,"file":"UrlUtils.js","sourceRoot":"","sources":["../../../../../src/_utils/http/UrlUtils.ts"],"names":[],"mappings":";;;AAOA,2BAA6B;AAC7B,yCAA2C;AAE3C,SAAgB,MAAM,CAAC,SAAiB;IACpC,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAFD,wBAEC;AAED,SAAgB,0BAA0B,CAAC,GAAW;IAClD,OAAO,kBAAkB,CAAC,GAAG,CAAC;SACzB,OAAO,CAAC,UAAU,EAAE,UAAC,CAAS;QAC3B,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACX,CAAC;AALD,gEAKC;AAED,SAAgB,0BAA0B,CAAC,GAAW;IAClD,OAAO,kBAAkB,CAAC,GAAG,CAAC;QAC1B,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;QACrC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QAErB,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AACxD,CAAC;AAND,gEAMC;AAGD,SAAgB,cAAc,CAAC,OAAe,EAAE,QAAgB;IAC5D,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAE5C,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACzB,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACnC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;aACxB;iBAAM;gBACH,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;aACvB;YACD,OAAO,GAAG,CAAC;SACd;QAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAChB,IAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxD,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3C,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;SACvC;aAAM;YACH,IAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,mBAAmB,GAAG,OAAO,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D;YAED,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACxC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;aAC7C;iBAAM;gBACH,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3D;SACJ;QACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;KACvG;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAjCD,wCAiCC","sourcesContent":["// ==LICENSE-BEGIN==\n// Copyright 2017 European Digital Reading Lab. All rights reserved.\n// Licensed to the Readium Foundation under one or more contributor license agreements.\n// Use of this source code is governed by a BSD-style license\n// that can be found in the LICENSE file exposed on Github (readium) in the project repository.\n// ==LICENSE-END==\n\nimport * as path from \"path\";\nimport * as querystring from \"querystring\";\n\nexport function isHTTP(urlOrPath: string): boolean {\n return /^https?:\\/\\//.test(urlOrPath);\n}\n\nexport function encodeURIComponent_RFC3986(str: string): string {\n return encodeURIComponent(str)\n .replace(/[!'()*]/g, (c: string) => {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n\nexport function encodeURIComponent_RFC5987(str: string): string {\n return encodeURIComponent(str).\n replace(/['()]/g, querystring.escape). // i.e., %27 %28 %29\n replace(/\\*/g, \"%2A\").\n // |`^\n replace(/%(?:7C|60|5E)/g, querystring.unescape);\n}\n\n// TODO: use URI/URL lib to do this?\nexport function ensureAbsolute(rootUrl: string, linkHref: string) {\n let url = linkHref;\n if (!isHTTP(url) && url.indexOf(\"data:\") !== 0) {\n\n if (url.indexOf(\"//\") === 0) {\n if (rootUrl.indexOf(\"https://\") === 0) {\n url = \"https:\" + url;\n } else {\n url = \"http:\" + url;\n }\n return url;\n }\n\n if (url[0] === \"/\") {\n const j = rootUrl.replace(/:\\/\\//g, \":__\").indexOf(\"/\");\n const rootUrlOrigin = rootUrl.substr(0, j);\n url = path.join(rootUrlOrigin, url);\n } else {\n const i = rootUrl.indexOf(\"?\");\n let rootUrlWithoutQuery = rootUrl;\n if (i >= 0) {\n rootUrlWithoutQuery = rootUrlWithoutQuery.substr(0, i);\n }\n\n if (rootUrlWithoutQuery.substr(-1) === \"/\") {\n url = path.join(rootUrlWithoutQuery, url);\n } else {\n url = path.join(path.dirname(rootUrlWithoutQuery), url);\n }\n }\n url = url.replace(/\\\\/g, \"/\").replace(/^https:\\//g, \"https:\\/\\/\").replace(/^http:\\//g, \"http:\\/\\/\");\n }\n return url;\n}\n"]}
\No newline at end of file