mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 12:37:53 +00:00
1 line
28 KiB
JSON
1 line
28 KiB
JSON
{"ast":null,"code":"import { timestampWithMs, logger } from '@sentry/utils';\nimport { SpanRecorder } from './span.js';\nimport { Transaction } from './transaction.js';\nvar DEFAULT_IDLE_TIMEOUT = 1000;\nvar DEFAULT_FINAL_TIMEOUT = 30000;\nvar HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nclass IdleTransactionSpanRecorder extends SpanRecorder {\n constructor(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n super(maxlen);\n this._pushActivity = _pushActivity;\n this._popActivity = _popActivity;\n this.transactionSpanId = transactionSpanId;\n ;\n }\n\n /**\n * @inheritDoc\n */\n add(span) {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = endTimestamp => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n super.add(span);\n }\n}\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nclass IdleTransaction extends Transaction {\n // Activities store a list of active spans\n __init() {\n this.activities = {};\n }\n\n // Track state of activities in previous heartbeat\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n __init2() {\n this._heartbeatCounter = 0;\n }\n\n // We should not use heartbeat if we finished a transaction\n __init3() {\n this._finished = false;\n }\n __init4() {\n this._beforeFinishCallbacks = [];\n }\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n\n constructor(transactionContext, _idleHub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n _idleTimeout = DEFAULT_IDLE_TIMEOUT,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n _finalTimeout = DEFAULT_FINAL_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope = false) {\n super(transactionContext, _idleHub);\n this._idleHub = _idleHub;\n this._idleTimeout = _idleTimeout;\n this._finalTimeout = _finalTimeout;\n this._onScope = _onScope;\n IdleTransaction.prototype.__init.call(this);\n IdleTransaction.prototype.__init2.call(this);\n IdleTransaction.prototype.__init3.call(this);\n IdleTransaction.prototype.__init4.call(this);\n ;\n if (_onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n this._startIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n finish(endTimestamp = timestampWithMs()) {\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n for (var callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(span => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n registerBeforeFinishCallback(callback) {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n initSpanRecorder(maxlen) {\n if (!this.spanRecorder) {\n var pushActivity = id => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n var popActivity = id => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idletimeout, if there is one\n */\n _cancelIdleTimeout() {\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n }\n }\n\n /**\n * Creates an idletimeout\n */\n _startIdleTimeout(endTimestamp) {\n this._cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this.finish(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n _pushActivity(spanId) {\n this._cancelIdleTimeout();\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n _popActivity(spanId) {\n if (this.activities[spanId]) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] popActivity ${spanId}`);\n delete this.activities[spanId];\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var endTimestamp = timestampWithMs() + this._idleTimeout / 1000;\n this._startIdleTimeout(endTimestamp);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n _beat() {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var heartbeatString = Object.keys(this.activities).join('');\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n _pingHeartbeat() {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n}\nexport { DEFAULT_FINAL_TIMEOUT, DEFAULT_IDLE_TIMEOUT, HEARTBEAT_INTERVAL, IdleTransaction, IdleTransactionSpanRecorder };","map":{"version":3,"names":["timestampWithMs","logger","SpanRecorder","Transaction","DEFAULT_IDLE_TIMEOUT","DEFAULT_FINAL_TIMEOUT","HEARTBEAT_INTERVAL","IdleTransactionSpanRecorder","constructor","_pushActivity","_popActivity","transactionSpanId","maxlen","add","span","spanId","finish","endTimestamp","undefined","IdleTransaction","__init","activities","__init2","_heartbeatCounter","__init3","_finished","__init4","_beforeFinishCallbacks","transactionContext","_idleHub","_idleTimeout","_finalTimeout","_onScope","prototype","call","clearActiveTransaction","__SENTRY_DEBUG__","log","configureScope","scope","setSpan","_startIdleTimeout","setTimeout","setStatus","spanRecorder","Date","toISOString","op","callback","spans","filter","JSON","stringify","keepSpan","startTimestamp","registerBeforeFinishCallback","push","initSpanRecorder","pushActivity","id","popActivity","_pingHeartbeat","_cancelIdleTimeout","_idleTimeoutID","clearTimeout","Object","keys","length","_beat","heartbeatString","join","_prevHeartbeatString","hub","getScope","transaction","getTransaction"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@sentry/tracing/esm/idletransaction.js"],"sourcesContent":["import { timestampWithMs, logger } from '@sentry/utils';\nimport { SpanRecorder } from './span.js';\nimport { Transaction } from './transaction.js';\n\nvar DEFAULT_IDLE_TIMEOUT = 1000;\nvar DEFAULT_FINAL_TIMEOUT = 30000;\nvar HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nclass IdleTransactionSpanRecorder extends SpanRecorder {\n constructor(\n _pushActivity,\n _popActivity,\n transactionSpanId,\n maxlen,\n ) {\n super(maxlen);this._pushActivity = _pushActivity;this._popActivity = _popActivity;this.transactionSpanId = transactionSpanId;;\n }\n\n /**\n * @inheritDoc\n */\n add(span) {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nclass IdleTransaction extends Transaction {\n // Activities store a list of active spans\n __init() {this.activities = {};}\n\n // Track state of activities in previous heartbeat\n \n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n __init2() {this._heartbeatCounter = 0;}\n\n // We should not use heartbeat if we finished a transaction\n __init3() {this._finished = false;}\n\n __init4() {this._beforeFinishCallbacks = [];}\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n \n\n constructor(\n transactionContext,\n _idleHub,\n /**\n * The time to wait in ms until the idle transaction will be finished. This timer is started each time\n * there are no active spans on this transaction.\n */\n _idleTimeout = DEFAULT_IDLE_TIMEOUT,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n _finalTimeout = DEFAULT_FINAL_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope = false,\n ) {\n super(transactionContext, _idleHub);this._idleHub = _idleHub;this._idleTimeout = _idleTimeout;this._finalTimeout = _finalTimeout;this._onScope = _onScope;IdleTransaction.prototype.__init.call(this);IdleTransaction.prototype.__init2.call(this);IdleTransaction.prototype.__init3.call(this);IdleTransaction.prototype.__init4.call(this);;\n\n if (_onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._startIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n finish(endTimestamp = timestampWithMs()) {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (var callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n registerBeforeFinishCallback(callback) {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n initSpanRecorder(maxlen) {\n if (!this.spanRecorder) {\n var pushActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n var popActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idletimeout, if there is one\n */\n _cancelIdleTimeout() {\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n }\n }\n\n /**\n * Creates an idletimeout\n */\n _startIdleTimeout(endTimestamp) {\n this._cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this.finish(endTimestamp);\n }\n }, this._idleTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n _pushActivity(spanId) {\n this._cancelIdleTimeout();\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n _popActivity(spanId) {\n if (this.activities[spanId]) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] popActivity ${spanId}`);\n delete this.activities[spanId];\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var endTimestamp = timestampWithMs() + this._idleTimeout / 1000;\n this._startIdleTimeout(endTimestamp);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n _beat() {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n var heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n _pingHeartbeat() {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n}\n\nexport { DEFAULT_FINAL_TIMEOUT, DEFAULT_IDLE_TIMEOUT, HEARTBEAT_INTERVAL, IdleTransaction, IdleTransactionSpanRecorder };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |