{"version":3,"sources":["jsdelivr-header.js","/npm/plugin-resolve-alias@1.0.6/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,QAAQ,OAAS,UAAS,YACtB,EAAW,WAAE,EAAU,QAAE,EAAO,WAAE,EAAY,QAAQ,EAAM,QAAE,IAG9D,IAAK,aAAa,EAAa,EAAY,GAAU,OAErD,GADA,EAAU,SAAS,IACb,EAAY,IAAI,GAAW,OACjC,KAAO,GAAc,CAAE,SAAU,MAAK,GAClC,EAAY,SAAS,KAAQ,OACjC,IAAO,IACA,QAAQ,IAAI,2CAA8C,OAEjE,MAAM,EAAU,QAAQ,EAAY,GAE9B,EAAU,WAAW,OAAO,SAAS,EAAa,KAExC,YAEhB,IAAK,MAAO,EAAM,KAAS,EACvB,EAAQ,MAAM,EAAM,EAAU,GAElC,OAAO,EAAQ,eACnB,EAEA,QAAQ,cAAgB,UAAS,MAAE,EAAK,KAAE,IACtC,MAAM,EAAO,IAAI,IACjB,MAAO,CACH,MAAO,KAAU,GAAS,EAAK,IAAI,KACpB,EAAK,IAAI,IACT,QAAQ,IAAI,EAAM,GAEzC,EAEA,QAAQ,cAAgB,UAAS,OAC7B,EAAS,aAAY,QACrB,EAAU,eAEV,MAAM,EAAQ,IAAI,IAClB,IAAK,MAAO,EAAM,KAAS,OAAO,QAAQ,GACtC,EAAM,IAAI,WAAW,GACX,WAAW,EAAK,KAAK,KAEnC,OAAO,CACX,EAGA,OAAO,UAAU,IAAM,SAAS,GAC1B,OAAQ,KAAK,QAAQ,EAAK,EAChC,OAAO,UAAU,KAAO,SAAS,GAE3B,OAAO,KAAK,MAAM,GAAK,MAAM,GAAG,KAAK,EAAK,EAEhD,MACI,cAAgB,SAChB,aAAe,GACf,aAAe,CAAC,EAChB,OAAS,MACT,MAAQ,IACR,YAAc,KACd,WAAa,MAEX,aAAe,IAAI,IACrB,EAAO,OAAM,GATG,iBASa,IAC3B,WAAa,GACf,EAAM,WACD,EAAM,WARH,KASJ,EAAM,OAAS,EAAM,SATjB,MAWN,SAAW,GAXL,IAWsB,WAAW,GAXjC,IAaN,SAAW,CAAC,EAAU,MAEtB,EAAS,KAAK,GACL,MAhBH,KAiBG,OAET,QAAU,CAAC,EAAQ,KACrB,IAAI,GAAU,EACV,EAAM,EASV,MAAO,CAAE,cARa,IAAM,GAAW,EAQf,MAPV,CAAC,EAAM,EAAM,KACtB,EAAQ,YAAY,EAAK,EAAM,IAAO,UACnC,EAAM,EAAM,UACZ,IAAW,EACX,GAAW,EAAQ,MAAM,IAGH,EAG5B,YAAc,CAAC,EAAQ,EAAM,KAC/B,MAKM,EAAK,KASL,EARe,IACjB,EAAG,gBACC,EAAG,SAAS,cAPF,OACF,UAOR,EAAG,OAAO,GACV,EAAG,SAPW,eAWP,CAAa,GAI5B,MAAO,CAAE,MAHK,IAAM,EAAO,KAAK,GAGhB,QAFA,IAAM,EAAO,QAAQ,EAHjB,IAAQ,EAAG,SAAS,GAAK,EAAO,EAAG,SAAS,GAGnB,CAAY,IAEjC,EAGtB,GAAK,KAWA,CAAE,gBANe,GAAS,IAAI,OAAO,EAF/B,KAQa,SALT,IAAI,IAJJ,IAKA,EAAK,KAAK,cALS,IASA,SAHnB,GALU,IAKM,EAGa,OAF/B,GAAQ,EAAK,QAAQ,wBAAyB","file":"/npm/plugin-resolve-alias@1.0.6/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/plugin-resolve-alias@1.0.6/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\"\n//\nexports.plugin = function({\n    srcFilename, srcContent, devPath, extensions, Aliases:config, Warning })\n{\n    // check input\n    if (!typeofString(srcFilename, srcContent, devPath)) return\n    devPath = setSlash(devPath)\n    if ( !srcFilename.has(devPath) ) return\n    if ( !(extensions || [ EXT_JS ]).some(ext =>\n        srcFilename.endsWith(ext)) ) return\n    if ( !(config ||\n           console.log(\"[plugin-resolve-alias] Aliases missing!\")) ) return\n    //\n    const content = Content(srcContent, Warning)\n    // create relative path fragment\n    const relPath = PARENT_DIR.repeat(distance(srcFilename, devPath))\n                    ||\n                    CURRENT_DIR\n    // find and replace all aliases\n    for (const [name, path] of config)\n        content.match(name, relPath + path)\n    //\n    return content.changedSource()\n}\n//\nexports.createWarning = function({ state, text }) {\n    const coll = new Set()\n    return {\n        print: name => !(state || coll.has(name)) &&\n                       coll.add(name) &&\n                       console.log(text, name)\n    }\n}\n//\nexports.createAliases = function({\n    config = OBJECT_EMPTY,\n    devPath = STRING_EMPTY\n}) {\n    const alias = new Map()\n    for (const [name, path] of Object.entries(config))\n        alias.set(unsetSlash(name),\n                  unsetSlash(path.tail(devPath)))\n    //\n    return alias\n}\n//\n//\nString.prototype.has = function(val)\n    { return ~this.indexOf(val) }\nString.prototype.tail = function(sep)\n    // rejoin the part behind the separator\n    { return this.split(sep).slice(1).join(sep) }\n//\nconst\n    TYPEOF_STRING = 'string',\n    STRING_EMPTY = '',\n    OBJECT_EMPTY = {},\n    EXT_JS = \".js\",\n    SLASH = \"/\",\n    CURRENT_DIR = \"./\",\n    PARENT_DIR = \"../\"\n//\nconst typeofString = (...values) =>\n    values.every(value => typeof value === TYPEOF_STRING)\nconst unsetSlash = value =>\n    value.substring(\n        +value.startsWith(SLASH),\n        value.length - value.endsWith(SLASH)\n    )\nconst setSlash = value => SLASH + unsetSlash(value) + SLASH\n//\nconst distance = (filePath, path) =>\n    // count the slashes behind the path\n    --filePath.tail(path)\n              .split(SLASH)\n              .length\n//\nconst Content = (source, warning) => {\n    let changed = false\n    let src = source\n    const changedSource = () => changed && src\n    const match = (name, path, regex) =>\n        (regex = regexImport(src, name, path)).found() && (\n            src = regex.replace(),\n            changed |= true,\n            warning && warning.print(name)\n        )\n    //\n    return { changedSource, match }\n}\n//\nconst regexImport = (source, name, path) => {\n    const\n        WHITE_SPACE = '\\\\s+',\n        STR_DELIM = `['|\"]`,\n        STR_SLASH_DELIM = `['|\"|\\\\/]`\n    //\n    const rx = Rx()\n    const createSearch = name =>\n        rx.getGlobalSearch(\n            rx.setGroup(`import|from`, WHITE_SPACE, STR_DELIM) +\n            rx.secure(name) +\n            rx.setGroup(STR_SLASH_DELIM)\n        )\n    //\n    const replaceWith = path => rx.getGroup(1) + path + rx.getGroup(2)\n    const search = createSearch(name)\n    const found = () => search.test(source)\n    const replace = () => source.replace(search, replaceWith(path))\n    //\n    return { found, replace }\n}\n\nconst Rx = () => {\n    const\n        LEFT_PAREN = \"(\", RIGHT_PAREN = \")\",\n        GLOBAL = 'g', DOLLAR = '$'\n    //\n    const getGlobalSearch = value => new RegExp(value, GLOBAL)\n    const setGroup = (...elem) =>\n        LEFT_PAREN + elem.join(STRING_EMPTY) + RIGHT_PAREN\n    const getGroup = ord => DOLLAR + ord\n    const secure = name => name.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&')\n    //\n    return { getGlobalSearch, setGroup, getGroup, secure }\n}\n"]}