File: /home/cafsindia/snap.cafsinfotech.in/node_modules/@sentry/browser/esm/transports/fetch.js.map
{"version":3,"file":"fetch.js","sources":["../../../../src/transports/fetch.ts"],"sourcesContent":["import { createTransport } from '@sentry/core';\nimport type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/types';\nimport { rejectedSyncPromise } from '@sentry/utils';\n\nimport type { BrowserTransportOptions } from './types';\nimport type { FetchImpl } from './utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n options: BrowserTransportOptions,\n nativeFetch: FetchImpl = getNativeFetchImplementation(),\n): Transport {\n let pendingBodySize = 0;\n let pendingCount = 0;\n\n function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n const requestSize = request.body.length;\n pendingBodySize += requestSize;\n pendingCount++;\n\n const requestOptions: RequestInit = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n // If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n // We will therefore only activate the flag when we're below that limit.\n // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n ...options.fetchOptions,\n };\n\n try {\n return nativeFetch(options.url, requestOptions).then(response => {\n pendingBodySize -= requestSize;\n pendingCount--;\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n pendingBodySize -= requestSize;\n pendingCount--;\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n"],"names":[],"mappings":";;;;AAQA;AACA;AACA;AACA,SAAA,kBAAA;AACA,EAAA,OAAA;AACA,EAAA,WAAA,GAAA,4BAAA,EAAA;AACA,EAAA;AACA,EAAA,IAAA,eAAA,GAAA,CAAA,CAAA;AACA,EAAA,IAAA,YAAA,GAAA,CAAA,CAAA;AACA;AACA,EAAA,SAAA,WAAA,CAAA,OAAA,EAAA;AACA,IAAA,MAAA,WAAA,GAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAA;AACA,IAAA,eAAA,IAAA,WAAA,CAAA;AACA,IAAA,YAAA,EAAA,CAAA;AACA;AACA,IAAA,MAAA,cAAA,GAAA;AACA,MAAA,IAAA,EAAA,OAAA,CAAA,IAAA;AACA,MAAA,MAAA,EAAA,MAAA;AACA,MAAA,cAAA,EAAA,QAAA;AACA,MAAA,OAAA,EAAA,OAAA,CAAA,OAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAA,SAAA,EAAA,eAAA,IAAA,KAAA,IAAA,YAAA,GAAA,EAAA;AACA,MAAA,GAAA,OAAA,CAAA,YAAA;AACA,KAAA,CAAA;AACA;AACA,IAAA,IAAA;AACA,MAAA,OAAA,WAAA,CAAA,OAAA,CAAA,GAAA,EAAA,cAAA,CAAA,CAAA,IAAA,CAAA,QAAA,IAAA;AACA,QAAA,eAAA,IAAA,WAAA,CAAA;AACA,QAAA,YAAA,EAAA,CAAA;AACA,QAAA,OAAA;AACA,UAAA,UAAA,EAAA,QAAA,CAAA,MAAA;AACA,UAAA,OAAA,EAAA;AACA,YAAA,sBAAA,EAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,sBAAA,CAAA;AACA,YAAA,aAAA,EAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,aAAA,CAAA;AACA,WAAA;AACA,SAAA,CAAA;AACA,OAAA,CAAA,CAAA;AACA,KAAA,CAAA,OAAA,CAAA,EAAA;AACA,MAAA,8BAAA,EAAA,CAAA;AACA,MAAA,eAAA,IAAA,WAAA,CAAA;AACA,MAAA,YAAA,EAAA,CAAA;AACA,MAAA,OAAA,mBAAA,CAAA,CAAA,CAAA,CAAA;AACA,KAAA;AACA,GAAA;AACA;AACA,EAAA,OAAA,eAAA,CAAA,OAAA,EAAA,WAAA,CAAA,CAAA;AACA;;;;"}