{"version":3,"sources":["jsdelivr-header.js","/npm/karma-detect-browsers@2.3.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,IAAI,iBAAmB,CACnB,SACA,WACA,eACA,UACA,mBACA,gBACA,kBAGA,eAAiB,SAAU,EAAQ,GACnC,IAAI,EAAK,QAAQ,MACb,EAAK,QAAQ,MACb,EAAQ,QAAQ,SAChB,EAAW,QAAQ,cACnB,EAAM,EAAO,OAAO,6BAmExB,IAJA,EAAS,GAAU,CAAC,GACb,eAAiB,EAAO,gBAAkB,CAAC,EAClD,EAAO,QAAU,EAAO,SAAW,IAEG,IAAlC,EAAO,eAAe,QAA1B,CAKA,IAAI,EAhEJ,SAA+B,GAC3B,IAAI,EAAG,EACH,EAAe,OAAO,KAAK,GAC3B,EAAS,GAUb,IAPyB,UAArB,QAAQ,WACR,EAAe,EAAa,QAAO,SAAU,GACzC,MAAgB,kBAAT,GAAqC,mBAAT,CACvC,KAIC,EAAI,EAAG,EAAS,EAAa,OAAQ,EAAI,EAAQ,IAAK,CACvD,IAEI,EAFA,EAAU,EAAS,EAAa,IAChC,EAAe,EAAQ,YAAY,QAAQ,WAAa,GACrD,EAAQ,EAAa,OAK5B,GAHI,QAAQ,IAAI,EAAQ,UACpB,EAAI,KAAK,6CAA8C,EAAM,KAAK,QAAQ,IAAI,EAAQ,WAEtF,QAAQ,IAAI,EAAQ,UAAY,EAAM,KAAK,QAAQ,IAAI,EAAQ,UAC/D,EAAO,KAAK,EAAQ,WAKxB,IAAK,EAAI,EAAG,EAAI,EAAO,IACnB,IACI,IAAI,EAAiB,EAAG,WAAW,EAAa,KAAO,EAAM,KAAK,EAAa,IAI3E,EAA8B,SAAjB,EAAQ,MAAwC,UAArB,QAAQ,UAAwB,OAAO,KAAK,EAAG,WAE3F,GAAI,GAAkB,GAAc,EAAO,QAAQ,EAAQ,MAAQ,EAAG,CAElE,EAAO,KAAK,EAAQ,MAGK,UAArB,QAAQ,WACR,QAAQ,IAAI,EAAQ,SAAW,EAAa,IAGhD,KACJ,CACJ,CAAE,MAAO,GAET,CAER,CAEA,OAAO,CACX,CAWwB,CAAqB,GAS7C,GAPI,EAAO,eAAe,iBACtB,EAAoB,EAAkB,KAAI,SAAU,GAChD,OAAO,iBAAiB,QAAQ,IAAY,EAAI,EAAU,WAAa,CAC3E,KAIA,EAAkB,QAAU,EAAG,EAEY,IAAvC,EAAO,eAAe,cACtB,EAAkB,KAAK,aAGvB,EAAO,eAAe,eAAgE,mBAAxC,EAAO,eAAe,gBAEpE,EAAoB,EAAO,eAAe,cAAc,IAG5D,IAAI,EAAc,EAAO,UAAY,GACjC,EAAkB,OAAS,IAC3B,EAAO,SAAW,EAAY,OAC1B,EAAkB,QAAO,SAAU,GAC/B,OAAyC,IAAlC,EAAY,QAAQ,EAC/B,MAGR,EAAI,KAAK,uCAAwC,EAAO,SAC5D,MACI,EAAI,KAAK,0EAhCb,MAFI,EAAI,KAAK,+EAoCjB,EAGA,eAAe,QAAU,CAAC,SAAU,UAGpC,OAAO,QAAU,CACb,2BAA4B,CAAC,UAAW","file":"/npm/karma-detect-browsers@2.3.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/karma-detect-browsers@2.3.3/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';\r\n\r\nvar headlessBrowsers = [\r\n    'Chrome',\r\n    'Chromium',\r\n    'ChromeCanary',\r\n    'Firefox',\r\n    'FirefoxDeveloper',\r\n    'FirefoxAurora',\r\n    'FirefoxNightly',\r\n];\r\n\r\nvar DetectBrowsers = function (config, logger) {\r\n    var fs = require('fs'),\r\n        os = require('os'),\r\n        which = require('which'),\r\n        browsers = require('./browsers'),\r\n        log = logger.create('framework.detect-browsers');\r\n\r\n    /**\r\n     * Returns all browser names found on the current system.\r\n     *\r\n     * @param {!Object} browsers The object with all browsers fro the browsers directory.\r\n     * @returns {Array}\r\n     */\r\n    function getInstalledBrowsers (browsers) {\r\n        var i, length,\r\n            browserNames = Object.keys(browsers),\r\n            result = [];\r\n\r\n        // only use one firefox version on linux\r\n        if (process.platform === 'linux') {\r\n            browserNames = browserNames.filter(function (name) {\r\n                return name !== 'firefoxAurora' && name !== 'firefoxNightly';\r\n            });\r\n        }\r\n\r\n        // iterate over all browsers in the browsers folder\r\n        for (i = 0, length = browserNames.length; i < length; i++) {\r\n            var browser = browsers[browserNames[i]],\r\n                browserPaths = browser.DEFAULT_CMD[process.platform] || [],\r\n                y, paths = browserPaths.length;\r\n\r\n            if (process.env[browser.ENV_CMD]) {\r\n                log.info('which.sync(process.env[browser.ENV_CMD]): ', which.sync(process.env[browser.ENV_CMD]));\r\n            }\r\n            if (process.env[browser.ENV_CMD] && which.sync(process.env[browser.ENV_CMD])) {\r\n                result.push(browser.name);\r\n                continue;\r\n            }\r\n\r\n            // iterate over all browser paths\r\n            for (y = 0; y < paths; y++) {\r\n                try {\r\n                    var browserLocated = fs.existsSync(browserPaths[y]) || which.sync(browserPaths[y]);\r\n\r\n                    // don't use Edge on operating systems other than Windows 10\r\n                    // (the launcher would be found, but would fail to run)\r\n                    var useBrowser = browser.name !== 'Edge' || process.platform === 'win32' && /^1\\d/.test(os.release());\r\n\r\n                    if (browserLocated && useBrowser && result.indexOf(browser.name) < 0) {\r\n                        // add browser when found in file system or when env variable is set\r\n                        result.push(browser.name);\r\n\r\n                        // set env variable on win32 when it does not exist yet\r\n                        if (process.platform === 'win32') {\r\n                            process.env[browser.ENV_CMD] = browserPaths[y];\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n                } catch (e) {\r\n                    // which.sync() failed to find the browser.\r\n                }\r\n            }\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    config = config || {};\r\n    config.detectBrowsers = config.detectBrowsers || {};\r\n    config.plugins = config.plugins || [];\r\n\r\n    if (config.detectBrowsers.enabled === false) {\r\n        log.info('Detecting browsers is disabled. The browsers of the browsers array are used.');\r\n        return;\r\n    }\r\n\r\n    var availableBrowsers = getInstalledBrowsers(browsers);\r\n\r\n    if (config.detectBrowsers.preferHeadless) {\r\n        availableBrowsers = availableBrowsers.map(function (browser) {\r\n            return headlessBrowsers.indexOf(browser) >= 0 ? browser + 'Headless' : browser;\r\n        });\r\n    }\r\n\r\n    // override the browsers in the config only when browsers where find by this plugin\r\n    if (availableBrowsers.length >= 0) {\r\n        // check for PhantomJS option\r\n        if (config.detectBrowsers.usePhantomJS !== false) {\r\n            availableBrowsers.push('PhantomJS');\r\n        }\r\n\r\n        if (config.detectBrowsers.postDetection && typeof config.detectBrowsers.postDetection === 'function') {\r\n            //Add specific process to manage browsers list\r\n            availableBrowsers = config.detectBrowsers.postDetection(availableBrowsers);\r\n        }\r\n\r\n        var browserList = config.browsers || [];\r\n        if (availableBrowsers.length > 0) {\r\n            config.browsers = browserList.concat(\r\n                availableBrowsers.filter(function (browser) {\r\n                    return browserList.indexOf(browser) === -1;\r\n                })\r\n            );\r\n        }\r\n        log.info('The following browsers will be used:', config.browsers);\r\n    } else {\r\n        log.warn('No browsers were detected. The browsers of the browsers array are used.');\r\n    }\r\n};\r\n\r\n// inject karma runner config\r\nDetectBrowsers.$inject = ['config', 'logger'];\r\n\r\n// PUBLISH DI MODULE\r\nmodule.exports = {\r\n    'framework:detectBrowsers': ['factory', DetectBrowsers]\r\n};\r\n"]}