diff --git a/packages/core/config.d.ts b/packages/core/config.d.ts new file mode 100644 index 0000000000..cee871526c --- /dev/null +++ b/packages/core/config.d.ts @@ -0,0 +1,115 @@ +export interface Schema { + apiKey: { + defaultValue: () => null + message: string + validate: (value: unknown) => boolean + } + appVersion: { + defaultValue: () => undefined + message: string + validate: (value: unknown) => boolean + } + appType: { + defaultValue: () => undefined + message: string + validate: (value: unknown) => boolean + } + autoDetectErrors: { + defaultValue: () => true + message: string + validate: (value: unknown) => boolean + } + enabledErrorTypes: { + defaultValue: () => { unhandledExceptions: boolean, unhandledRejections: boolean } + message: string + allowPartialObject: boolean + validate: (value: unknown) => boolean + } + onError: { + defaultValue: () => [] + message: string + validate: (value: unknown) => boolean + } + onSession: { + defaultValue: () => [] + message: string + validate: (value: unknown) => boolean + } + onBreadcrumb: { + defaultValue: () => [] + message: string + validate: (value: unknown) => boolean + } + endpoints: { + defaultValue: (endpoints: { notify: string, sessions: string } | undefined) => { notify: string | null, sessions: string | null } + message: string + validate: (value: unknown) => boolean + } + autoTrackSessions: { + defaultValue: () => boolean + message: string + validate: (value: unknown) => boolean + } + enabledReleaseStages: { + defaultValue: () => null + message: string + validate: (value: unknown) => boolean + } + releaseStage: { + defaultValue: () => 'production' + message: string + validate: (value: unknown) => boolean + } + maxBreadcrumbs: { + defaultValue: () => 25 + message: string + validate: (value: unknown) => boolean + } + enabledBreadcrumbTypes: { + defaultValue: () => ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual'] + message: string + validate: (value: unknown) => boolean + } + context: { + defaultValue: () => undefined + message: string + validate: (value: unknown) => boolean + } + user: { + defaultValue: () => {} + message: string + validate: (value: unknown) => boolean + } + metadata: { + defaultValue: () => {} + message: string + validate: (value: unknown) => boolean + } + logger: { + defaultValue: () => undefined + message: string + validate: (value: unknown) => boolean + } + redactedKeys: { + defaultValue: () => ['password'] + message: string + validate: (value: unknown) => boolean + } + plugins: { + defaultValue: () => [] + message: string + validate: (value: unknown) => boolean + } + featureFlags: { + defaultValue: () => [] + message: string + validate: (value: unknown) => boolean + } + reportUnhandledPromiseRejectionsAsHandled: { + defaultValue: () => false + message: string + validate: (value: unknown) => boolean + } +} + +export const schema: Schema diff --git a/packages/plugin-interaction-breadcrumbs/src/interaction-breadcrumbs.ts b/packages/plugin-interaction-breadcrumbs/src/interaction-breadcrumbs.ts index ba1b65c961..d910565175 100644 --- a/packages/plugin-interaction-breadcrumbs/src/interaction-breadcrumbs.ts +++ b/packages/plugin-interaction-breadcrumbs/src/interaction-breadcrumbs.ts @@ -4,10 +4,10 @@ import type ClientWithInternals from 'packages/core/client' /* * Leaves breadcrumbs when the user interacts with the DOM */ -export default (win = window): Plugin => ({ +export default (win = window): Plugin => ({ load: (client) => { if (!('addEventListener' in win)) return - if (!client._isBreadcrumbTypeEnabled('user')) return + if (!(client as ClientWithInternals)._isBreadcrumbTypeEnabled('user')) return win.addEventListener('click', (event) => { let targetText, targetSelector @@ -16,8 +16,8 @@ export default (win = window): Plugin => ({ targetSelector = getNodeSelector(event.target, win) } catch (e) { targetText = '[hidden]' - targetSelector = '[hidden]' - client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z') + targetSelector = '[hidden]'; + (client as ClientWithInternals)._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z') } client.leaveBreadcrumb('UI click', { targetText, targetSelector }, 'user') }, true)