File: //home/cafsindia/snap.cafsinfotech.in/node_modules/@sentry/vue/cjs/tracing.js.map
{"version":3,"file":"tracing.js","sources":["../../src/tracing.ts"],"sourcesContent":["import { getCurrentHub } from '@sentry/browser';\nimport type { Span, Transaction } from '@sentry/types';\nimport { logger, timestampInSeconds } from '@sentry/utils';\n\nimport { DEFAULT_HOOKS } from './constants';\nimport type { Hook, Operation, TracingOptions, ViewModel, Vue } from './types';\nimport { formatComponentName } from './vendor/components';\n\nconst VUE_OP = 'ui.vue';\n\ntype Mixins = Parameters<Vue['mixin']>[0];\n\ninterface VueSentry extends ViewModel {\n readonly $root: VueSentry;\n $_sentrySpans?: {\n [key: string]: Span | undefined;\n };\n $_sentryRootSpan?: Span;\n $_sentryRootSpanTimer?: ReturnType<typeof setTimeout>;\n}\n\n// Mappings from operation to corresponding lifecycle hook.\nconst HOOKS: { [key in Operation]: Hook[] } = {\n activate: ['activated', 'deactivated'],\n create: ['beforeCreate', 'created'],\n destroy: ['beforeDestroy', 'destroyed'],\n mount: ['beforeMount', 'mounted'],\n update: ['beforeUpdate', 'updated'],\n};\n\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(): Transaction | undefined {\n return getCurrentHub().getScope().getTransaction();\n}\n\n/** Finish top-level span and activity with a debounce configured using `timeout` option */\nfunction finishRootSpan(vm: VueSentry, timestamp: number, timeout: number): void {\n if (vm.$_sentryRootSpanTimer) {\n clearTimeout(vm.$_sentryRootSpanTimer);\n }\n\n vm.$_sentryRootSpanTimer = setTimeout(() => {\n if (vm.$root && vm.$root.$_sentryRootSpan) {\n vm.$root.$_sentryRootSpan.finish(timestamp);\n vm.$root.$_sentryRootSpan = undefined;\n }\n }, timeout);\n}\n\nexport const createTracingMixins = (options: TracingOptions): Mixins => {\n const hooks = (options.hooks || [])\n .concat(DEFAULT_HOOKS)\n // Removing potential duplicates\n .filter((value, index, self) => self.indexOf(value) === index);\n\n const mixins: Mixins = {};\n\n for (const operation of hooks) {\n // Retrieve corresponding hooks from Vue lifecycle.\n // eg. mount => ['beforeMount', 'mounted']\n const internalHooks = HOOKS[operation];\n if (!internalHooks) {\n __DEBUG_BUILD__ && logger.warn(`Unknown hook: ${operation}`);\n continue;\n }\n\n for (const internalHook of internalHooks) {\n mixins[internalHook] = function (this: VueSentry) {\n const isRoot = this.$root === this;\n\n if (isRoot) {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n this.$_sentryRootSpan =\n this.$_sentryRootSpan ||\n activeTransaction.startChild({\n description: 'Application Render',\n op: `${VUE_OP}.render`,\n origin: 'auto.ui.vue',\n });\n }\n }\n\n // Skip components that we don't want to track to minimize the noise and give a more granular control to the user\n const name = formatComponentName(this, false);\n const shouldTrack = Array.isArray(options.trackComponents)\n ? options.trackComponents.indexOf(name) > -1\n : options.trackComponents;\n\n // We always want to track root component\n if (!isRoot && !shouldTrack) {\n return;\n }\n\n this.$_sentrySpans = this.$_sentrySpans || {};\n\n // Start a new span if current hook is a 'before' hook.\n // Otherwise, retrieve the current span and finish it.\n if (internalHook == internalHooks[0]) {\n const activeTransaction = (this.$root && this.$root.$_sentryRootSpan) || getActiveTransaction();\n if (activeTransaction) {\n // Cancel old span for this hook operation in case it didn't get cleaned up. We're not actually sure if it\n // will ever be the case that cleanup hooks re not called, but we had users report that spans didn't get\n // finished so we finish the span before starting a new one, just to be sure.\n const oldSpan = this.$_sentrySpans[operation];\n if (oldSpan && !oldSpan.endTimestamp) {\n oldSpan.finish();\n }\n\n this.$_sentrySpans[operation] = activeTransaction.startChild({\n description: `Vue <${name}>`,\n op: `${VUE_OP}.${operation}`,\n origin: 'auto.ui.vue',\n });\n }\n } else {\n // The span should already be added via the first handler call (in the 'before' hook)\n const span = this.$_sentrySpans[operation];\n // The before hook did not start the tracking span, so the span was not added.\n // This is probably because it happened before there is an active transaction\n if (!span) return;\n span.finish();\n\n finishRootSpan(this, timestampInSeconds(), options.timeout);\n }\n };\n }\n }\n\n return mixins;\n};\n"],"names":["getCurrentHub","DEFAULT_HOOKS","logger","formatComponentName","timestampInSeconds"],"mappings":";;;;;;;AAQA,MAAA,MAAA,GAAA,QAAA,CAAA;;AAaA;AACA,MAAA,KAAA,GAAA;AACA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AACA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA;AACA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,CAAA;AACA,EAAA,KAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA;AACA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA;AACA,CAAA,CAAA;AACA;AACA;AACA,SAAA,oBAAA,GAAA;AACA,EAAA,OAAAA,qBAAA,EAAA,CAAA,QAAA,EAAA,CAAA,cAAA,EAAA,CAAA;AACA,CAAA;AACA;AACA;AACA,SAAA,cAAA,CAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA;AACA,EAAA,IAAA,EAAA,CAAA,qBAAA,EAAA;AACA,IAAA,YAAA,CAAA,EAAA,CAAA,qBAAA,CAAA,CAAA;AACA,GAAA;AACA;AACA,EAAA,EAAA,CAAA,qBAAA,GAAA,UAAA,CAAA,MAAA;AACA,IAAA,IAAA,EAAA,CAAA,KAAA,IAAA,EAAA,CAAA,KAAA,CAAA,gBAAA,EAAA;AACA,MAAA,EAAA,CAAA,KAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA;AACA,MAAA,EAAA,CAAA,KAAA,CAAA,gBAAA,GAAA,SAAA,CAAA;AACA,KAAA;AACA,GAAA,EAAA,OAAA,CAAA,CAAA;AACA,CAAA;AACA;AACA,MAAA,mBAAA,GAAA,CAAA,OAAA,KAAA;AACA,EAAA,MAAA,KAAA,GAAA,CAAA,OAAA,CAAA,KAAA,IAAA,EAAA;AACA,KAAA,MAAA,CAAAC,uBAAA,CAAA;AACA;AACA,KAAA,MAAA,CAAA,CAAA,KAAA,EAAA,KAAA,EAAA,IAAA,KAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,KAAA,KAAA,CAAA,CAAA;AACA;AACA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA;AACA;AACA,EAAA,KAAA,MAAA,SAAA,IAAA,KAAA,EAAA;AACA;AACA;AACA,IAAA,MAAA,aAAA,GAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,aAAA,EAAA;AACA,MAAA,CAAA,OAAA,gBAAA,KAAA,WAAA,IAAA,gBAAA,KAAAC,YAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,SAAA;AACA,KAAA;AACA;AACA,IAAA,KAAA,MAAA,YAAA,IAAA,aAAA,EAAA;AACA,MAAA,MAAA,CAAA,YAAA,CAAA,GAAA,YAAA;AACA,QAAA,MAAA,MAAA,GAAA,IAAA,CAAA,KAAA,KAAA,IAAA,CAAA;AACA;AACA,QAAA,IAAA,MAAA,EAAA;AACA,UAAA,MAAA,iBAAA,GAAA,oBAAA,EAAA,CAAA;AACA,UAAA,IAAA,iBAAA,EAAA;AACA,YAAA,IAAA,CAAA,gBAAA;AACA,cAAA,IAAA,CAAA,gBAAA;AACA,cAAA,iBAAA,CAAA,UAAA,CAAA;AACA,gBAAA,WAAA,EAAA,oBAAA;AACA,gBAAA,EAAA,EAAA,CAAA,EAAA,MAAA,CAAA,OAAA,CAAA;AACA,gBAAA,MAAA,EAAA,aAAA;AACA,eAAA,CAAA,CAAA;AACA,WAAA;AACA,SAAA;AACA;AACA;AACA,QAAA,MAAA,IAAA,GAAAC,8BAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACA,QAAA,MAAA,WAAA,GAAA,KAAA,CAAA,OAAA,CAAA,OAAA,CAAA,eAAA,CAAA;AACA,YAAA,OAAA,CAAA,eAAA,CAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AACA,YAAA,OAAA,CAAA,eAAA,CAAA;AACA;AACA;AACA,QAAA,IAAA,CAAA,MAAA,IAAA,CAAA,WAAA,EAAA;AACA,UAAA,OAAA;AACA,SAAA;AACA;AACA,QAAA,IAAA,CAAA,aAAA,GAAA,IAAA,CAAA,aAAA,IAAA,EAAA,CAAA;AACA;AACA;AACA;AACA,QAAA,IAAA,YAAA,IAAA,aAAA,CAAA,CAAA,CAAA,EAAA;AACA,UAAA,MAAA,iBAAA,GAAA,CAAA,IAAA,CAAA,KAAA,IAAA,IAAA,CAAA,KAAA,CAAA,gBAAA,KAAA,oBAAA,EAAA,CAAA;AACA,UAAA,IAAA,iBAAA,EAAA;AACA;AACA;AACA;AACA,YAAA,MAAA,OAAA,GAAA,IAAA,CAAA,aAAA,CAAA,SAAA,CAAA,CAAA;AACA,YAAA,IAAA,OAAA,IAAA,CAAA,OAAA,CAAA,YAAA,EAAA;AACA,cAAA,OAAA,CAAA,MAAA,EAAA,CAAA;AACA,aAAA;AACA;AACA,YAAA,IAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,iBAAA,CAAA,UAAA,CAAA;AACA,cAAA,WAAA,EAAA,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AACA,cAAA,EAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAA,CAAA;AACA,cAAA,MAAA,EAAA,aAAA;AACA,aAAA,CAAA,CAAA;AACA,WAAA;AACA,SAAA,MAAA;AACA;AACA,UAAA,MAAA,IAAA,GAAA,IAAA,CAAA,aAAA,CAAA,SAAA,CAAA,CAAA;AACA;AACA;AACA,UAAA,IAAA,CAAA,IAAA,EAAA,OAAA;AACA,UAAA,IAAA,CAAA,MAAA,EAAA,CAAA;AACA;AACA,UAAA,cAAA,CAAA,IAAA,EAAAC,wBAAA,EAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AACA,SAAA;AACA,OAAA,CAAA;AACA,KAAA;AACA,GAAA;AACA;AACA,EAAA,OAAA,MAAA,CAAA;AACA;;;;;"}