12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- Object.defineProperty(exports, '__esModule', { value: true });
- const utils = require('@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 utils.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 = utils.makeDsn(dsnLike);
- if (!dsn) {
- return '';
- }
- const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;
- let encodedOptions = `dsn=${utils.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}`;
- }
- exports.getEnvelopeEndpointWithUrlEncodedAuth = getEnvelopeEndpointWithUrlEncodedAuth;
- exports.getReportDialogEndpoint = getReportDialogEndpoint;
- //# sourceMappingURL=api.js.map
|