rittenhop-dev/versions/5.94.2/node_modules/@sentry/utils/esm/supports.js.map
2024-09-23 19:40:12 -04:00

1 line
7.2 KiB
Plaintext

{"version":3,"file":"supports.js","sources":["../../src/supports.ts"],"sourcesContent":["import { DEBUG_BUILD } from './debug-build';\nimport { logger } from './logger';\nimport { getGlobalObject } from './worldwide';\n\n// eslint-disable-next-line deprecation/deprecation\nconst WINDOW = getGlobalObject<Window>();\n\ndeclare const EdgeRuntime: string | undefined;\n\nexport { supportsHistory } from './vendor/supportsHistory';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!supportsFetch()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n"],"names":[],"mappings":";;;;AAIA;AACA,MAAM,MAAO,GAAE,eAAe,EAAU,CAAA;AAKxC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,GAAY;AAC9C,EAAE,IAAI;AACN,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;AACtB,IAAI,OAAO,IAAI,CAAA;AACf,GAAI,CAAA,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAY;AAC5C,EAAE,IAAI;AACN;AACA;AACA;AACA,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;AACpB,IAAI,OAAO,IAAI,CAAA;AACf,GAAI,CAAA,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,GAAY;AAChD,EAAE,IAAI;AACN,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC,CAAA;AACxB,IAAI,OAAO,IAAI,CAAA;AACf,GAAI,CAAA,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAY;AACzC,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,EAAE;AAC5B,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF;AACA,EAAE,IAAI;AACN,IAAI,IAAI,OAAO,EAAE,CAAA;AACjB,IAAI,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAA;AACzC,IAAI,IAAI,QAAQ,EAAE,CAAA;AAClB,IAAI,OAAO,IAAI,CAAA;AACf,GAAI,CAAA,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF,CAAA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,IAAI,EAAqB;AACvD,EAAE,OAAO,IAAA,IAAQ,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;AACzF,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAY;AAC/C,EAAE,IAAI,OAAO,WAAY,KAAI,QAAQ,EAAE;AACvC,IAAI,OAAO,IAAI,CAAA;AACf,GAAE;AACF;AACA,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF;AACA;AACA;AACA,EAAE,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACnC,IAAI,OAAO,IAAI,CAAA;AACf,GAAE;AACF;AACA;AACA;AACA,EAAE,IAAI,MAAO,GAAE,KAAK,CAAA;AACpB,EAAE,MAAM,GAAA,GAAM,MAAM,CAAC,QAAQ,CAAA;AAC7B;AACA,EAAE,IAAI,GAAI,IAAG,QAAQ,GAAG,CAAC,aAAc,EAAA,KAAgB,UAAU,EAAE;AACnE,IAAI,IAAI;AACR,MAAM,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AACjD,MAAM,OAAO,CAAC,MAAO,GAAE,IAAI,CAAA;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACnC,MAAM,IAAI,OAAO,CAAC,aAAA,IAAiB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;AAChE;AACA,QAAQ,MAAA,GAAS,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AAC3D,OAAM;AACN,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACnC,KAAM,CAAA,OAAO,GAAG,EAAE;AAClB,MAAM,WAAY;AAClB,QAAQ,MAAM,CAAC,IAAI,CAAC,iFAAiF,EAAE,GAAG,CAAC,CAAA;AAC3G,KAAI;AACJ,GAAE;AACF;AACA,EAAE,OAAO,MAAM,CAAA;AACf,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,yBAAyB,GAAY;AACrD,EAAE,OAAO,mBAAoB,IAAG,MAAM,CAAA;AACtC,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,GAAY;AAClD;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF;AACA,EAAE,IAAI;AACN,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;AACrB,MAAM,cAAc,EAAE,QAAS;AAC/B,KAAK,CAAC,CAAA;AACN,IAAI,OAAO,IAAI,CAAA;AACf,GAAI,CAAA,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAA;AAChB,GAAE;AACF;;;;"}