{"version":3,"sources":["jsdelivr-header.js","/npm/links-shortener@1.0.7/main.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,OAAO,CACH,YAED,SAAS,GACR,SAAS,EAAqB,EAAS,EAAQ,GAC3C,IAAK,EACD,OAEC,IACD,EAAS,OAEb,IAAI,EAAY,GAMhB,OAJI,EADC,EAAQ,QAAU,EACP,EAEA,EAAS,EAAQ,SAAS,EAAgB,EAAO,SAE1D,CACX,CAEA,SAAS,EAAqB,EAAS,EAAQ,GAC3C,IAAK,EACD,OAEC,IACD,EAAS,OAEb,IAAI,EAAY,GAMhB,OAJI,EADC,EAAQ,QAAU,EACP,EAEA,EAAQ,OAAO,EAAG,EAAgB,EAAO,QAAW,EAE7D,CACX,CAEA,SAAS,EAAgB,EAAS,EAAa,EAAQ,GACnD,IAAK,IAAY,EACb,OAEC,IACD,EAAS,OAEb,EAAc,EAAY,cAE1B,IAAI,EAAY,GACZ,EAAqB,EAAQ,cAAc,QAAQ,GACnD,EAAe,GAAsB,EAAM,EAAqB,EAAI,EAGxE,OADA,EAAY,EAAS,EAAQ,OAAO,EAAY,EAAgB,EAAO,QAChE,CACX,CAEA,MAAO,CACH,eAAiB,SAAS,EAAM,EAAa,GACzC,IAAK,EACD,OAEJ,EAAc,EAAY,cAC1B,EAAY,GAAa,GACzB,IAAI,EAAM,IAAI,EAAI,GAEd,EAAW,CACX,OAAS,EAAI,YACb,KAAO,EAAI,OACX,MAAQ,EAAI,SACZ,SAAW,EAAI,QAEf,EAAiB,EAAS,OAAS,EAAS,KAAO,EAAS,MAAQ,EAAS,SAC7E,EAAW,EAEf,IAAK,EAAY,OACb,OAAO,EAGX,GAAK,EAAe,cAAc,QAAQ,GAAe,EAAY,QAAW,EAC5E,EAAW,OAER,GAAI,EAAS,SAAkE,IAAxD,EAAS,OAAO,cAAc,QAAQ,GAAqB,CACrF,IAAI,EAAkB,EAGtB,YAAc,EAAgB,EAAS,OAAQ,EAAa,MAAO,GACnE,EAAW,YAAc,EAAS,KAAO,EAAS,MAAQ,EAAS,QAEvE,MAAO,GAAI,EAAS,OAA8D,IAAtD,EAAS,KAAK,cAAc,QAAQ,GAAoB,CAChF,IAAI,EAAkB,SAAS,EAAU,GACrC,EAAgB,SAAS,EAAU,GAEnC,EAAc,EAAoB,EAAS,OAAQ,MAAO,GAG9D,GAAK,EAAS,KAAK,cAAc,QAAQ,GAAe,EAAY,QAAW,EAC3E,EAAW,EAAc,EAAS,KAAO,EAAS,MAAQ,EAAS,aAEhE,CAGH,EAAW,EADK,EAAgB,EAAS,KAAM,EAAa,OAAQ,GAC/B,EAAS,MAAQ,EAAS,QACnE,CAEJ,MAAO,GAAI,EAAS,QAAgE,IAAvD,EAAS,MAAM,cAAc,QAAQ,GAAoB,CAClF,IAAI,EAAkB,SAAS,EAAU,GACrC,EAAgB,SAAS,EAAU,GACnC,EAAiB,SAAS,EAAU,GAEpC,EAAc,EAAoB,EAAS,OAAQ,MAAO,GAC1D,EAAY,EAAqB,EAAS,KAAM,MAAO,GAG3D,GAAK,EAAS,MAAM,cAAc,QAAQ,GAAe,EAAY,QAAW,EAC5E,EAAW,EAAc,EAAa,EAAS,MAAQ,EAAS,aAE7D,CACH,EAAiB,EAAS,MAAM,OAEhC,EAAW,EAAc,EADR,EAAgB,EAAS,MAAO,EAAa,OAAQ,GACpB,EAAS,QAC/D,CAEJ,MAAO,GAAI,EAAS,WAAsE,IAA1D,EAAS,SAAS,cAAc,QAAQ,GAAoB,CAExF,IAAI,EAAkB,SAAS,EAAU,GACrC,EAAgB,SAAS,EAAU,GACnC,EAAiB,SAAS,EAAU,GACpC,EAAoB,SAAS,EAAU,GAEvC,EAAc,EAAoB,EAAS,OAAQ,MAAO,GAC1D,EAAY,EAAqB,EAAS,KAAM,MAAO,GACvD,EAAa,EAAqB,EAAS,MAAO,MAAO,GAG7D,GAAM,EAAS,SAAS,cAAc,QAAQ,GAAe,EAAY,QAAW,EAChF,EAAW,EAAc,EAAa,EAAa,EAAS,aAEzD,CACH,EAAoB,EAAS,SAAS,OAEtC,EAAW,EAAc,IAAc,EADnB,EAAgB,EAAS,SAAU,EAAa,OAAQ,EAEhF,CACJ,CAEA,OAAO,CACX,EAER","file":"/npm/links-shortener@1.0.7/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/links-shortener@1.0.7/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","define([\n    'uri/URI'\n\n], function(Uri) {\n    function makeShorterFromLeft (urlPart, prefix, maxPartLength) {\n        if (!urlPart) {\n            return;\n        }\n        if (!prefix){\n            prefix = '...';\n        }\n        let shortPart = '';\n        if ( urlPart.length <= maxPartLength ){\n            shortPart = urlPart;\n        }  else {\n            shortPart = prefix + urlPart.substr(-(maxPartLength - prefix.length));\n        }\n        return shortPart;\n    };\n\n    function makeShorterFromRight(urlPart, suffix, maxPartLength){\n        if (!urlPart) {\n            return;\n        }\n        if (!suffix){\n            suffix = '...';\n        }\n        let shortPart = '';\n        if ( urlPart.length <= maxPartLength ){\n            shortPart = urlPart;\n        }  else {\n            shortPart = urlPart.substr(0,(maxPartLength - suffix.length)) + suffix;\n        }\n        return shortPart;\n    };\n\n    function makePartShorter(urlPart, searchValue, prefix, maxPartLength) {\n        if (!urlPart || !searchValue) {\n            return;\n        }\n        if (!prefix){\n            prefix = '...';\n        }\n        searchValue = searchValue.toLowerCase();\n\n        let shortPart = '';\n        let indexOfFirstInPart = urlPart.toLowerCase().indexOf(searchValue);\n        let startIndex = ( indexOfFirstInPart >= 5 ) ? indexOfFirstInPart - 5 : indexOfFirstInPart;\n\n        shortPart = prefix + urlPart.substr(startIndex, maxPartLength - prefix.length );\n        return shortPart;\n    };\n\n    return {\n        makeURLShorter : function(link, searchValue, maxLength) {\n            if (!link) {\n                return\n            }\n            searchValue = searchValue.toLowerCase();\n            maxLength = maxLength || 38;\n            let url = new Uri(link);\n\n            let urlParts = {\n                domain : url.authority(),\n                path : url.path(),\n                query : url.search(),\n                fragment : url.hash()\n            };\n            let linkNoProtocol = urlParts.domain + urlParts.path + urlParts.query + urlParts.fragment;\n            let shortUrl = linkNoProtocol;\n\n            if (!searchValue.length) {\n                return shortUrl;\n            }\n\n            if ((linkNoProtocol.toLowerCase().indexOf(searchValue) + searchValue.length) <= maxLength ) {\n                shortUrl = linkNoProtocol;\n\n            } else if (urlParts.domain && urlParts.domain.toLowerCase().indexOf(searchValue) !== -1) {\n                let maxDomainLength = maxLength;\n\n                //short urlParts.domain\n                shortDomain = makePartShorter(urlParts.domain, searchValue, '...', maxDomainLength);\n                shortUrl = shortDomain + urlParts.path + urlParts.query + urlParts.fragment;\n\n            } else if (urlParts.path && urlParts.path.toLowerCase().indexOf(searchValue) !== -1){\n                let maxDomainLength = parseInt(maxLength/2);\n                let maxPathLength = parseInt(maxLength/2);\n\n                let shortDomain = makeShorterFromLeft(urlParts.domain, '...', maxDomainLength);\n\n                // shorting only urlParts.domain\n                if ((urlParts.path.toLowerCase().indexOf(searchValue) + searchValue.length) <= maxPathLength ) {\n                    shortUrl = shortDomain + urlParts.path + urlParts.query + urlParts.fragment;\n\n                } else {\n                    // shortnig urlParts.domain and urlParts.path\n                    let shortPath = makePartShorter(urlParts.path, searchValue, '/...', maxPathLength);\n                    shortUrl = shortDomain + shortPath + urlParts.query + urlParts.fragment;\n                }\n\n            } else if (urlParts.query && urlParts.query.toLowerCase().indexOf(searchValue) !== -1){\n                let maxDomainLength = parseInt(maxLength/3);\n                let maxPathLength = parseInt(maxLength/3);\n                let maxQueryLength = parseInt(maxLength/3);\n\n                let shortDomain = makeShorterFromLeft(urlParts.domain, '...', maxDomainLength);\n                let shortPath = makeShorterFromRight(urlParts.path, '...', maxPathLength);\n\n                // shorting urlParts.domain and urlParts.path\n                if ((urlParts.query.toLowerCase().indexOf(searchValue) + searchValue.length) <= maxQueryLength ) {\n                    shortUrl = shortDomain + shortPath  + urlParts.query + urlParts.fragment;\n\n                } else {\n                    maxQueryLength = urlParts.query.length;\n                    let shortQuery = makePartShorter(urlParts.query, searchValue, '?...', maxQueryLength);\n                    shortUrl = shortDomain + shortPath + shortQuery + urlParts.fragment;\n                }\n\n            } else if (urlParts.fragment && urlParts.fragment.toLowerCase().indexOf(searchValue) !== -1){\n\n                let maxDomainLength = parseInt(maxLength/4);\n                let maxPathLength = parseInt(maxLength/4);\n                let maxQueryLength = parseInt(maxLength/4);\n                let maxFragmentLength = parseInt(maxLength/4);\n\n                let shortDomain = makeShorterFromLeft(urlParts.domain, '...', maxDomainLength);\n                let shortPath = makeShorterFromRight(urlParts.path, '...', maxPathLength);\n                let shortQuery = makeShorterFromRight(urlParts.query, '...', maxQueryLength);\n\n                // shorting urlParts.domain and urlParts.path and urlParts.query\n                if (( urlParts.fragment.toLowerCase().indexOf(searchValue) + searchValue.length) <= maxQueryLength ) {\n                    shortUrl = shortDomain + shortPath  + shortQuery + urlParts.fragment;\n\n                } else {\n                    maxFragmentLength = urlParts.fragment.length;\n                    let shortFragment = makePartShorter(urlParts.fragment, searchValue, '#...', maxFragmentLength);\n                    shortUrl = shortDomain + shortPath + + shortQuery + shortFragment;\n                }\n            }\n\n            return shortUrl;\n        }\n    };\n});\n"]}