{"version":3,"sources":["modules/env/universal-storage/index.es6.js"],"names":["UniversalStorage","options","host","trim","startsWith","parsedUrl","url","parse","hostname","port","Storage","shared","storageUrl","protocol","window","location","origin","Xdls"],"mappings":";;;;;;;;;;;;;;;;;;;QAKqBA,gB,GAGjB,0BAAYC,OAAZ,EAAqB;AAAA;;AACjB,YAAIA,QAAQC,IAAR,IAAgB,OAAOD,QAAQC,IAAf,KAAwB,QAAxC,IAAoDD,QAAQC,IAAR,CAAaC,IAAb,GAAoBC,UAApB,CAA+B,MAA/B,CAAxD,EAAgG;AAC5F,gBAAMC,YAAYC,cAAIC,KAAJ,CAAUN,QAAQC,IAAlB,CAAlB;AACAD,oBAAQC,IAAR,GAAeG,UAAUG,QAAV,IAAsBH,UAAUI,IAAV,GAAiB,MAAMJ,UAAUI,IAAjC,GAAwC,EAA9D,CAAf;AACH;;AAED,YAAI,OAAOR,QAAQC,IAAf,KAAwB,QAA5B,EAAsC;AAClC,mBAAO,IAAIQ,gBAAQC,MAAZ,CAAmBV,OAAnB,CAAP;AACH;;AAED,YAAMW,aAAaN,cAAIC,KAAJ,CAAU,sBAAWN,QAAQC,IAAnB,CAAV,CAAnB;;AAEA,YAAOU,WAAWC,QAAd,UAA2BD,WAAWV,IAAtC,SAA8CU,WAAWH,IAAzD,KAAoEK,OAAOC,QAAP,CAAgBC,MAApF,IACGJ,WAAWC,QAAd,UAA2BD,WAAWV,IAAtC,KAAiDY,OAAOC,QAAP,CAAgBC,MADrE,EAC6E;AACzE,mBAAO,IAAIN,gBAAQC,MAAZ,CAAmBV,OAAnB,CAAP;AACH;;AAED,eAAO,IAAIgB,eAAKN,MAAT,CAAgBV,OAAhB,CAAP;AACH,K;;AArBgBD,oB,CACVW,M,GAAS,0BAAU,UAACV,OAAD;AAAA,eAAa,IAAID,gBAAJ,CAAqBC,OAArB,CAAb;AAAA,KAAV,C;sBADCD,gB","file":"modules/env/universal-storage/index.js","sourceRoot":"/source/","sourcesContent":["import Xdls, { composeUrl } from 'modules/env/storages-by-path/xdls';\nimport Storage from 'modules/env/storages-by-path/local';\nimport { singleton } from 'modules/utils/singleton';\nimport url from 'url';\n\nexport default class UniversalStorage {\n static shared = singleton((options) => new UniversalStorage(options));\n\n constructor(options) {\n if (options.host && typeof options.host === 'string' && options.host.trim().startsWith('http')) {\n const parsedUrl = url.parse(options.host);\n options.host = parsedUrl.hostname + (parsedUrl.port ? ':' + parsedUrl.port : '');\n }\n\n if (typeof options.host !== 'string') {\n return new Storage.shared(options);\n }\n\n const storageUrl = url.parse(composeUrl(options.host));\n\n if (`${storageUrl.protocol}//${storageUrl.host}:${storageUrl.port}` === window.location.origin ||\n `${storageUrl.protocol}//${storageUrl.host}` === window.location.origin) {\n return new Storage.shared(options);\n }\n\n return new Xdls.shared(options);\n }\n}\n"]}