{"version":3,"names":["Paths","normalizePath","path","base","root","lively4url","replace","normalized","match","normalizeURL","urlString","url","URL","pathname","normalize","source","split","target","token","pop","push","charAt","join","a","b"],"sources":["paths.js"],"sourcesContent":["export default class Paths {\n    \n  /* url, path, relative path... anything */\n  static normalizePath(path, base, root=lively4url) {\n    base = base.replace(/[^/]*$/,\"\") // if it is not a dir\n    var normalized = path\n    if (path.match(/^[A-Za-z]+:/)) {\n      // do nothing\n    } else if (path.match(/^\\//)) {\n      normalized = path.replace(/^\\//, root + \"/\")\n    } else {\n      normalized =  base + path\n    }\n    return Paths.normalizeURL(normalized)\n  }\n  \n   static normalizeURL(urlString) {\n    var url = new URL(urlString);\n    url.pathname = this.normalize(url.pathname);\n    return  \"\" + url;\n  }\n  \n  \n  /* normalize only the \"path\" part of an URL */\n  static normalize(path) {\n      let source = path.split(/\\/+/)\n      let target = []\n\n      for(let token of source) {\n        if(token === '..') {\n          target.pop()\n        } else if(token !== '' && token !== '.') {\n          target.push(token)\n        }\n      }\n\n      if(path.charAt(0) === '/')\n          return '/' + target.join('/')\n      else\n          return target.join('/')\n  }\n\n  static join(a, b) {\n    if(b[0] === '/') {\n      return this.normalize(b)\n    } else {\n      return this.normalize(a + '/' + b)\n    }\n  }\n}\n"],"mappings":";;;MAAqBA,KAAK;EAAA;EAAA;IAAA;IAAA;MAAA;MAAA;MAAA,mBAALA,KAAK,GAAX,MAAMA,KAAK,CAAC;QAEzB;QACA,OAAOC,aAAa,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,GAACC,UAAU,EAAE;UAChDF,IAAI,GAAGA,IAAI,CAACG,OAAO,CAAC,QAAQ,EAAC,EAAE,CAAC,EAAC;UACjC,IAAIC,UAAU,GAAGL,IAAI;UACrB,IAAIA,IAAI,CAACM,KAAK,CAAC,aAAa,CAAC,EAAE;YAC7B;UAAA,CACD,MAAM,IAAIN,IAAI,CAACM,KAAK,CAAC,KAAK,CAAC,EAAE;YAC5BD,UAAU,GAAGL,IAAI,CAACI,OAAO,CAAC,KAAK,EAAEF,IAAI,GAAG,GAAG,CAAC;UAC9C,CAAC,MAAM;YACLG,UAAU,GAAIJ,IAAI,GAAGD,IAAI;UAC3B;UACA,OAAOF,KAAK,CAACS,YAAY,CAACF,UAAU,CAAC;QACvC;QAEC,OAAOE,YAAY,CAACC,SAAS,EAAE;UAC9B,IAAIC,GAAG,GAAG,IAAIC,GAAG,CAACF,SAAS,CAAC;UAC5BC,GAAG,CAACE,QAAQ,GAAG,IAAI,CAACC,SAAS,CAACH,GAAG,CAACE,QAAQ,CAAC;UAC3C,OAAQ,EAAE,GAAGF,GAAG;QAClB;;QAGA;QACA,OAAOG,SAAS,CAACZ,IAAI,EAAE;UACnB,IAAIa,MAAM,GAAGb,IAAI,CAACc,KAAK,CAAC,KAAK,CAAC;UAC9B,IAAIC,MAAM,GAAG,EAAE;UAEf,KAAI,IAAIC,KAAK,IAAIH,MAAM,EAAE;YACvB,IAAGG,KAAK,KAAK,IAAI,EAAE;cACjBD,MAAM,CAACE,GAAG,EAAE;YACd,CAAC,MAAM,IAAGD,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAK,GAAG,EAAE;cACvCD,MAAM,CAACG,IAAI,CAACF,KAAK,CAAC;YACpB;UACF;UAEA,IAAGhB,IAAI,CAACmB,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EACrB,OAAO,GAAG,GAAGJ,MAAM,CAACK,IAAI,CAAC,GAAG,CAAC,MAE7B,OAAOL,MAAM,CAACK,IAAI,CAAC,GAAG,CAAC;QAC/B;QAEA,OAAOA,IAAI,CAACC,CAAC,EAAEC,CAAC,EAAE;UAChB,IAAGA,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACf,OAAO,IAAI,CAACV,SAAS,CAACU,CAAC,CAAC;UAC1B,CAAC,MAAM;YACL,OAAO,IAAI,CAACV,SAAS,CAACS,CAAC,GAAG,GAAG,GAAGC,CAAC,CAAC;UACpC;QACF;MACF,CAAC;MAAA;QAAA;UAAA;QAAA;QAAA;UAAA,mBAjDoBxB,sCAAK;UAAA;QAAA;QAAA;QAAA;MAAA;IAAA;EAAA;AAAA"}