{"version":3,"file":"js/6391-6afb5043180b5ffef3c7.js","mappings":"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","sources":["webpack://artfully-walls/./node_modules/@sentry/core/build/esm/scope.js","webpack://artfully-walls/./node_modules/@sentry/core/build/esm/sdk.js","webpack://artfully-walls/./node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://artfully-walls/./node_modules/@sentry/core/build/esm/session.js"],"sourcesContent":["import { updateSession } from './session.js';\nimport { isPlainObject } from './utils-hoist/is.js';\nimport { logger } from './utils-hoist/logger.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport { generateTraceId, generateSpanId } from './utils-hoist/propagationContext.js';\nimport { dateTimestampInSeconds } from './utils-hoist/time.js';\nimport { merge } from './utils/merge.js';\nimport { _setSpanForScope, _getSpanForScope } from './utils/spanOnScope.js';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information.\n */\nclass ScopeClass {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called during event processing. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /** Propagation Context for distributed tracing */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n\n /** Session */\n\n /** Request Mode Session Status */\n // eslint-disable-next-line deprecation/deprecation\n\n /** The client on this scope */\n\n /** Contains the last event id of a captured event. */\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n spanId: generateSpanId(),\n };\n }\n\n /**\n * @inheritDoc\n */\n clone() {\n const newScope = new ScopeClass();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n // We need to copy the `values` array so insertions on a cloned scope\n // won't affect the original array.\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values],\n };\n }\n\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._requestSession = this._requestSession;\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * @inheritDoc\n */\n setClient(client) {\n this._client = client;\n }\n\n /**\n * @inheritDoc\n */\n setLastEventId(lastEventId) {\n this._lastEventId = lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this._client ;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line deprecation/deprecation\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const [scopeInstance, requestSession] =\n scopeToMerge instanceof Scope\n ? // eslint-disable-next-line deprecation/deprecation\n [scopeToMerge.getScopeData(), scopeToMerge.getRequestSession()]\n : isPlainObject(scopeToMerge)\n ? [captureContext , (captureContext ).requestSession]\n : [];\n\n const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (requestSession) {\n this._requestSession = requestSession;\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._session = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this.setPropagationContext({ traceId: generateTraceId() });\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n\n const breadcrumbs = this._breadcrumbs;\n breadcrumbs.push(mergedBreadcrumb);\n this._breadcrumbs = breadcrumbs.length > maxCrumbs ? breadcrumbs.slice(-maxCrumbs) : breadcrumbs;\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getLastBreadcrumb() {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /** @inheritDoc */\n getScopeData() {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n };\n }\n\n /**\n * @inheritDoc\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setPropagationContext(\n context,\n ) {\n this._propagationContext = {\n // eslint-disable-next-line deprecation/deprecation\n spanId: generateSpanId(),\n ...context,\n };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getPropagationContext() {\n return this._propagationContext;\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(message, level, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (!this._client) {\n logger.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n\n/**\n * Holds additional event information.\n */\nconst Scope = ScopeClass;\n\n/**\n * Holds additional event information.\n */\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","import { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { logger, consoleSandbox } from './utils-hoist/logger.js';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n client.init();\n return client;\n}\n\n/**\n * Make the given client the current client.\n */\nfunction setCurrentClient(client) {\n getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n//# sourceMappingURL=sdk.js.map\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Use this attribute to represent the sample rate used for a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * The id of the profile that this span occurred in.\n */\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nconst SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\nexport { SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_URL_FULL };\n//# sourceMappingURL=semanticAttributes.js.map\n","import './utils-hoist/version.js';\nimport './utils-hoist/debug-build.js';\nimport './utils-hoist/logger.js';\nimport { dropUndefinedKeys } from './utils-hoist/object.js';\nimport { timestampInSeconds } from './utils-hoist/time.js';\nimport { uuid4 } from './utils-hoist/misc.js';\nimport './utils-hoist/syncpromise.js';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n"],"names":["ScopeClass","constructor","this","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","traceId","spanId","clone","newScope","flags","values","_level","_session","_transactionName","_fingerprint","_requestSession","_client","_lastEventId","setClient","client","setLastEventId","lastEventId","getClient","addScopeListener","callback","push","addEventProcessor","setUser","user","email","undefined","id","ip_address","username","_notifyScopeListeners","getUser","getRequestSession","setRequestSession","requestSession","setTags","tags","setTag","key","value","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","level","setTransactionName","name","setContext","context","setSession","session","getSession","update","captureContext","scopeToMerge","scopeInstance","Scope","getScopeData","contexts","propagationContext","Object","keys","length","clear","setPropagationContext","addBreadcrumb","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","timestamp","breadcrumbs","slice","getLastBreadcrumb","clearBreadcrumbs","addAttachment","attachment","clearAttachments","attachments","eventProcessors","sdkProcessingMetadata","transactionName","span","setSDKProcessingMetadata","newData","getPropagationContext","captureException","exception","hint","eventId","event_id","warn","syntheticException","Error","originalException","captureMessage","message","captureEvent","event","forEach","initAndBind","clientClass","options","debug","enable","console","initialScope","setCurrentClient","init","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","makeSession","startingTime","sid","started","duration","status","errors","ignoreDuration","toJSON","Date","toISOString","did","abnormal_mechanism","attrs","release","environment","ipAddress","user_agent","userAgent","sessionToJSON","updateSession","closeSession"],"sourceRoot":""}