{"version":3,"sources":["jsdelivr-header.js","/gh/Joe12387/detectIncognito@1.3.0/dist/detectIncognito.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,QAAQ,YAAa,EACrB,QAAQ,qBAAkB,EAM1B,IAAI,gBAAkB,WAClB,OAAO,IAAI,SAAQ,SAAU,EAAS,GAClC,IAQQ,EAqBA,EA7BJ,EAAc,UAClB,SAAS,EAAW,GAChB,EAAQ,CACJ,UAAW,EACX,YAAa,GAErB,CAmBA,SAAS,EAAmB,GACxB,OAAO,IAAU,KAAK,WAAW,MACrC,CAwEA,SAAS,SAC4B,IAA7B,UAAU,eArDlB,WACI,IAAI,EAAW,OAAO,KAAK,UAC3B,IACa,OAAO,UAAU,KAAK,EAAU,GACtC,gBAAkB,SAAU,GAC3B,IAAI,EAAI,EACJ,EAA0B,QAAnB,EAAK,EAAE,cAA2B,IAAP,OAAgB,EAAS,EAAG,OAClE,IACI,EAAI,kBAAkB,OAAQ,CAC1B,eAAe,IAChB,IAAI,IAAI,MACX,GAAW,EACf,CACA,MAAO,GACH,IAAI,EAAU,EAId,OAHI,aAAa,QACb,EAA+B,QAApB,EAAK,EAAE,eAA4B,IAAP,EAAgB,EAAK,GAGrD,EADY,iBAAZ,GAGgB,iCAAiC,KAAK,GAErE,CACA,QACI,EAAI,QACJ,OAAO,UAAU,eAAe,EACpC,CACJ,CACJ,CACA,MAAO,GACH,OAAO,GAAW,EACtB,CACJ,CAqBQ,GApBR,WACI,IAAI,EAAS,OAAO,aAChB,EAAU,OAAO,aACrB,IACI,EAAO,KAAM,KAAM,KAAM,KAC7B,CACA,MAAO,GACH,OAAO,GAAW,EACtB,CACA,IACI,EAAQ,QAAQ,OAAQ,KACxB,EAAQ,WAAW,OACvB,CACA,MAAO,GACH,OAAO,GAAW,EACtB,CACO,GAAW,EACtB,CAMQ,EAER,CAcA,SAAS,IACL,UAAU,uBAAuB,oBAAmB,SAAU,EAAG,GAC7D,IAXA,EAaA,EAFiB,KAAK,MAAM,EAAQ,SACgC,EAA9C,KAAK,YAXT,KADlB,EAAI,QACF,kBACuB,IAAzB,EAAE,YAAY,aAC2B,IAAzC,EAAE,YAAY,OAAO,gBACd,YAAY,OAAO,gBAEvB,YAMgD,SAEvD,IAAG,SAAU,GACT,EAAO,IAAI,MAAM,0DACb,EAAE,SACV,GACJ,CAYA,SAAS,SACgB,IAAjB,KAAK,cAAqD,IAA5B,KAAK,QAAQ,WAC3C,KAJJ,EAPS,OAAO,yBAOb,EAAG,GANQ,WACV,GAAW,EACf,IACY,WACR,GAAW,EACf,GAUJ,MAtHkB,KADV,EAAI,UAAU,SACgC,IAAvB,EAAE,QAAQ,UAAkB,EAAmB,KAqItE,EAAc,SACd,KApIR,WACI,IAAI,EAAI,UAAU,OAClB,YAAc,IAAN,GAA2C,IAAxB,EAAE,QAAQ,WAAmB,EAAmB,GAC/E,CAmIa,IA9JL,EAAK,UAAU,UA+Jf,EA9JA,EAAG,MAAM,eACe,IAApB,UAAU,MACH,QAEF,EAAG,MAAM,OACP,OAEF,EAAG,MAAM,OACP,QAEJ,SAGA,WAkJP,UAnIiC,IAA7B,SAAS,sBACoC,IAAjD,SAAS,gBAAgB,MAAM,eAC/B,EAAmB,KAoInB,EAAc,UAlBlB,OAAuC,IAA5B,UAAU,qBA/GY,IAAzB,UAAU,YAA4B,EAAmB,KAqI7D,EAAc,oBAhBlB,OAAgC,IAArB,OAAO,YAoBd,EAAO,IAAI,MAAM,gDAI7B,GACJ,EACA,QAAQ,gBAAkB","file":"/gh/Joe12387/detectIncognito@1.3.0/dist/detectIncognito.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /gh/Joe12387/detectIncognito@1.3.0/dist/detectIncognito.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\";\nexports.__esModule = true;\nexports.detectIncognito = void 0;\n/**\n *\n * detectIncognito v1.3.0 - (c) 2022 Joe Rutkowski <Joe@dreggle.com> (https://github.com/Joe12387/detectIncognito)\n *\n **/\nvar detectIncognito = function () {\n    return new Promise(function (resolve, reject) {\n        var browserName = \"Unknown\";\n        function __callback(isPrivate) {\n            resolve({\n                isPrivate: isPrivate,\n                browserName: browserName\n            });\n        }\n        function identifyChromium() {\n            var ua = navigator.userAgent;\n            if (ua.match(/Chrome/)) {\n                if (navigator.brave !== undefined) {\n                    return \"Brave\";\n                }\n                else if (ua.match(/Edg/)) {\n                    return \"Edge\";\n                }\n                else if (ua.match(/OPR/)) {\n                    return \"Opera\";\n                }\n                return \"Chrome\";\n            }\n            else {\n                return \"Chromium\";\n            }\n        }\n        function assertEvalToString(value) {\n            return value === eval.toString().length;\n        }\n        function isSafari() {\n            var v = navigator.vendor;\n            return (v !== undefined && v.indexOf(\"Apple\") === 0 && assertEvalToString(37));\n        }\n        function isChrome() {\n            var v = navigator.vendor;\n            return (v !== undefined && v.indexOf(\"Google\") === 0 && assertEvalToString(33));\n        }\n        function isFirefox() {\n            return (document.documentElement !== undefined &&\n                document.documentElement.style.MozAppearance !== undefined &&\n                assertEvalToString(37));\n        }\n        function isMSIE() {\n            return (navigator.msSaveBlob !== undefined && assertEvalToString(39));\n        }\n        /**\n         * Safari (Safari for iOS & macOS)\n         **/\n        function newSafariTest() {\n            var tmp_name = String(Math.random());\n            try {\n                var db = window.indexedDB.open(tmp_name, 1);\n                db.onupgradeneeded = function (i) {\n                    var _a, _b;\n                    var res = (_a = i.target) === null || _a === void 0 ? void 0 : _a.result;\n                    try {\n                        res.createObjectStore(\"test\", {\n                            autoIncrement: true\n                        }).put(new Blob);\n                        __callback(false);\n                    }\n                    catch (e) {\n                        var message = e;\n                        if (e instanceof Error) {\n                            message = (_b = e.message) !== null && _b !== void 0 ? _b : e;\n                        }\n                        if (typeof message !== 'string') {\n                            return __callback(false);\n                        }\n                        var matchesExpectedError = /BlobURLs are not yet supported/.test(message);\n                        return __callback(matchesExpectedError);\n                    }\n                    finally {\n                        res.close();\n                        window.indexedDB.deleteDatabase(tmp_name);\n                    }\n                };\n            }\n            catch (e) {\n                return __callback(false);\n            }\n        }\n        function oldSafariTest() {\n            var openDB = window.openDatabase;\n            var storage = window.localStorage;\n            try {\n                openDB(null, null, null, null);\n            }\n            catch (e) {\n                return __callback(true);\n            }\n            try {\n                storage.setItem(\"test\", \"1\");\n                storage.removeItem(\"test\");\n            }\n            catch (e) {\n                return __callback(true);\n            }\n            return __callback(false);\n        }\n        function safariPrivateTest() {\n            if (navigator.maxTouchPoints !== undefined) {\n                newSafariTest();\n            }\n            else {\n                oldSafariTest();\n            }\n        }\n        /**\n         * Chrome\n         **/\n        function getQuotaLimit() {\n            var w = window;\n            if (w.performance !== undefined &&\n                w.performance.memory !== undefined &&\n                w.performance.memory.jsHeapSizeLimit !== undefined) {\n                return performance.memory.jsHeapSizeLimit;\n            }\n            return 1073741824;\n        }\n        // >= 76\n        function storageQuotaChromePrivateTest() {\n            navigator.webkitTemporaryStorage.queryUsageAndQuota(function (_, quota) {\n                var quotaInMib = Math.round(quota / (1024 * 1024));\n                var quotaLimitInMib = Math.round(getQuotaLimit() / (1024 * 1024)) * 2;\n                __callback(quotaInMib < quotaLimitInMib);\n            }, function (e) {\n                reject(new Error(\"detectIncognito somehow failed to query storage quota: \" +\n                    e.message));\n            });\n        }\n        // 50 to 75\n        function oldChromePrivateTest() {\n            var fs = window.webkitRequestFileSystem;\n            var success = function () {\n                __callback(false);\n            };\n            var error = function () {\n                __callback(true);\n            };\n            fs(0, 1, success, error);\n        }\n        function chromePrivateTest() {\n            if (self.Promise !== undefined && self.Promise.allSettled !== undefined) {\n                storageQuotaChromePrivateTest();\n            }\n            else {\n                oldChromePrivateTest();\n            }\n        }\n        /**\n         * Firefox\n         **/\n        function firefoxPrivateTest() {\n            __callback(navigator.serviceWorker === undefined);\n        }\n        /**\n         * MSIE\n         **/\n        function msiePrivateTest() {\n            __callback(window.indexedDB === undefined);\n        }\n        function main() {\n            if (isSafari()) {\n                browserName = 'Safari';\n                safariPrivateTest();\n            }\n            else if (isChrome()) {\n                browserName = identifyChromium();\n                chromePrivateTest();\n            }\n            else if (isFirefox()) {\n                browserName = \"Firefox\";\n                firefoxPrivateTest();\n            }\n            else if (isMSIE()) {\n                browserName = \"Internet Explorer\";\n                msiePrivateTest();\n            }\n            else {\n                reject(new Error(\"detectIncognito cannot determine the browser\"));\n            }\n        }\n        main();\n    });\n};\nexports.detectIncognito = detectIncognito;\n"]}