{"version":3,"file":"api.js","sources":["../../src/api.ts"],"sourcesContent":["import type { ReportDialogOptions } from './report-dialog';\nimport type { DsnComponents, DsnLike } from './types/dsn';\nimport type { SdkInfo } from './types/sdkinfo';\nimport { dsnToString, makeDsn } from './utils/dsn';\n\nexport const SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n const params: Record = {\n sentry_version: SENTRY_API_VERSION,\n };\n\n if (dsn.publicKey) {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n params.sentry_key = dsn.publicKey;\n }\n\n if (sdkInfo) {\n params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n }\n\n return new URLSearchParams(params).toString();\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string, sdkInfo?: SdkInfo): string {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(dsnLike: DsnLike, dialogOptions: ReportDialogOptions): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n"],"names":[],"mappings":"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"}