| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | import { makeDsn, dsnToString, urlEncode } from '@sentry/utils';const SENTRY_API_VERSION = '7';/** Returns the prefix to construct Sentry ingestion API endpoints. */function getBaseApiEndpoint(dsn) {  const protocol = dsn.protocol ? `${dsn.protocol}:` : '';  const port = dsn.port ? `:${dsn.port}` : '';  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;}/** Returns the ingest API endpoint for target. */function _getIngestEndpoint(dsn) {  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;}/** Returns a URL-encoded string with auth config suitable for a query string. */function _encodedAuth(dsn, sdkInfo) {  return urlEncode({    // We send only the minimum set of required information. See    // https://github.com/getsentry/sentry-javascript/issues/2572.    sentry_key: dsn.publicKey,    sentry_version: SENTRY_API_VERSION,    ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),  });}/** * Returns the envelope endpoint URL with auth in the query string. * * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests. */function getEnvelopeEndpointWithUrlEncodedAuth(  dsn,  // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below  // options: ClientOptions = {} as ClientOptions,  tunnelOrOptions = {} ,) {  // TODO (v8): Use this code instead  // const { tunnel, _metadata = {} } = options;  // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;  const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;  const sdkInfo =    typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;}/** Returns the url to the report dialog endpoint. */function getReportDialogEndpoint(  dsnLike,  dialogOptions,) {  const dsn = makeDsn(dsnLike);  if (!dsn) {    return '';  }  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;  let encodedOptions = `dsn=${dsnToString(dsn)}`;  for (const key in dialogOptions) {    if (key === 'dsn') {      continue;    }    if (key === 'onClose') {      continue;    }    if (key === 'user') {      const user = dialogOptions.user;      if (!user) {        continue;      }      if (user.name) {        encodedOptions += `&name=${encodeURIComponent(user.name)}`;      }      if (user.email) {        encodedOptions += `&email=${encodeURIComponent(user.email)}`;      }    } else {      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;    }  }  return `${endpoint}?${encodedOptions}`;}export { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };//# sourceMappingURL=api.js.map
 |