{"version":3,"file":"resolveCompressedTextureUrl.mjs","sources":["../../src/loaders/resolveCompressedTextureUrl.ts"],"sourcesContent":["import { extensions, ExtensionType, settings, utils } from '@pixi/core';\n\nimport type { ResolveURLParser, UnresolvedAsset } from '@pixi/assets';\n\nconst knownFormats = ['s3tc', 's3tc_sRGB', 'etc', 'etc1', 'pvrtc', 'atc', 'astc', 'bptc'];\n\nexport const resolveCompressedTextureUrl = {\n    extension: ExtensionType.ResolveParser,\n    test: (value: string) =>\n    {\n        const extension = utils.path.extname(value).slice(1);\n\n        return ['basis', 'ktx', 'dds'].includes(extension);\n    },\n    parse: (value: string): UnresolvedAsset =>\n    {\n        // value expected in format: {name}{resolution}.{format}.{extension} - texture@2x.astc.ktx\n        const parts = value.split('.');\n        const extension = parts.pop();\n\n        if (['ktx', 'dds'].includes(extension))\n        {\n            const textureFormat = parts.pop();\n\n            if (knownFormats.includes(textureFormat))\n            {\n                return {\n                    resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? '1'),\n                    format: textureFormat,\n                    src: value,\n                };\n            }\n        }\n\n        return {\n            resolution: parseFloat(settings.RETINA_PREFIX.exec(value)?.[1] ?? '1'),\n            format: extension,\n            src: value,\n        };\n    },\n} as ResolveURLParser;\n\nextensions.add(resolveCompressedTextureUrl);\n"],"names":[],"mappings":";AAIA,MAAM,eAAe,CAAC,QAAQ,aAAa,OAAO,QAAQ,SAAS,OAAO,QAAQ,MAAM,GAE3E,8BAA8B;AAAA,EACvC,WAAW,cAAc;AAAA,EACzB,MAAM,CAAC,UACP;AACI,UAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,EAAE,MAAM,CAAC;AAEnD,WAAO,CAAC,SAAS,OAAO,KAAK,EAAE,SAAS,SAAS;AAAA,EACrD;AAAA,EACA,OAAO,CAAC,UACR;AAEI,UAAM,QAAQ,MAAM,MAAM,GAAG,GACvB,YAAY,MAAM;AAExB,QAAI,CAAC,OAAO,KAAK,EAAE,SAAS,SAAS,GACrC;AACU,YAAA,gBAAgB,MAAM;AAExB,UAAA,aAAa,SAAS,aAAa;AAE5B,eAAA;AAAA,UACH,YAAY,WAAW,SAAS,cAAc,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG;AAAA,UACrE,QAAQ;AAAA,UACR,KAAK;AAAA,QAAA;AAAA,IAGjB;AAEO,WAAA;AAAA,MACH,YAAY,WAAW,SAAS,cAAc,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG;AAAA,MACrE,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,EAEb;AACJ;AAEA,WAAW,IAAI,2BAA2B;"}