o11y 244.7.0 → 244.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/o11y/client/client.js +1 -1
- package/dist/modules/o11y/client/client.js.map +1 -1
- package/dist/modules/o11y/client/version.d.ts +1 -1
- package/dist/modules/o11y/collectors/version.d.ts +1 -1
- package/dist/modules/o11y/core_envelope/core_envelope.js +1 -1
- package/dist/modules/o11y/core_envelope/core_envelope.js.map +1 -1
- package/dist/modules/o11y/core_envelope/version.d.ts +1 -1
- package/dist/modules/o11y/shared/version.d.ts +1 -1
- package/dist/modules/o11y/simple_collector/version.d.ts +1 -1
- package/dist/modules/o11y/web_vitals/version.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../../../../../../node_modules/o11y_schema/sf_instrumentation/activity.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/error.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/idle_detector_report.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/instrumented_event.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/simple.js","../../../../src/library/TaskerImpl.ts","../../../../src/library/IdleDetectorImpl.ts","../../../../src/library/Tracing.ts","../../../../src/library/TimerOverride.ts","../../../../src/library/ActivityImpl.ts","../../../../src/library/ActivityNoOp.ts","../../../../src/library/DomEventHelpers.ts","../../../../src/library/LogValidator.ts","../../../../src/library/BucketHistogramImpl.ts","../../../../src/library/UpCounterImpl.ts","../../../../src/library/ValueRecorderImpl.ts","../../../../src/library/SizeLimitedMap.ts","../../../../src/library/MetricsImpl.ts","../../../../src/library/MockObj.ts","../../../../src/library/InstrumentationImpl.ts","../../../../src/library/RootActivityImpl.ts","../../../../src/library/RootActivityNoOp.ts","../../../../src/library/AppInstrumentationImpl.ts","../../../../src/library/AutomaticClickTracker.ts","../../../../src/library/NextgenImpl.ts","../../../../src/index.ts","../../../../src/console-collector/ConsoleCollector.ts","../../../../src/version.ts","../../../../src/client.ts"],"sourcesContent":["export const activity={namespace:\"sf.instrumentation\",name:\"Activity\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Activity\":{\"reserved\":[[5,5],[7,7]],\"fields\":{\"duration\":{\"id\":3,\"type\":\"double\"},\"stopReason\":{\"id\":6,\"type\":\"string\"},\"isRoot\":{\"id\":8,\"type\":\"bool\"},\"timerOverridden\":{\"id\":12,\"type\":\"uint32\"},\"name\":{\"options\":{\"(meta.max_length)\":25},\"id\":2,\"type\":\"string\"},\"isSampled\":{\"id\":11,\"type\":\"bool\"},\"preRootId\":{\"id\":9,\"type\":\"string\"},\"id\":{\"id\":1,\"type\":\"string\"},\n\"userPayload\":{\"id\":4,\"type\":\"Payload\"},\"errorCount\":{\"id\":10,\"type\":\"uint32\"},\"parentId\":{\"id\":13,\"type\":\"string\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const error={namespace:\"sf.instrumentation\",name:\"Error\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Error\":{\"reserved\":[[5,5],[7,7]],\"fields\":{\"activityId\":{\"id\":6,\"type\":\"string\"},\"stack\":{\"id\":3,\"type\":\"string\"},\"name\":{\"id\":1,\"type\":\"string\"},\"message\":{\"options\":{\"(meta.max_length)\":200},\"id\":2,\"type\":\"string\"},\"userPayload\":{\"id\":4,\"type\":\"Payload\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const idle_detector_report={namespace:\"sf.instrumentation\",name:\"IdleDetectorReport\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"IdleDetectorReport\":{\"fields\":{\"listenerCount\":{\"id\":3,\"type\":\"uint32\"},\"busyTasks\":{\"rule\":\"repeated\",\"id\":5,\"type\":\"string\"},\"busyDurations\":{\"rule\":\"repeated\",\"id\":6,\"type\":\"double\"},\"pollableCount\":{\"id\":4,\"type\":\"uint32\"},\"pollCounts\":{\"rule\":\"repeated\",\"id\":8,\"type\":\"double\"},\"logThreshold\":{\"id\":2,\"type\":\"double\"},\"maxDuration\":{\"id\":1,\n\"type\":\"double\"},\"pollables\":{\"rule\":\"repeated\",\"id\":7,\"type\":\"string\"}}}}}}}}}};","export const instrumented_event={namespace:\"sf.instrumentation\",name:\"InstrumentedEvent\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"MouseEvent\":{\"fields\":{\"cancelable\":{\"id\":5,\"type\":\"bool\"},\"ctrlKey\":{\"id\":9,\"type\":\"bool\"},\"type\":{\"id\":25,\"type\":\"string\"},\"button\":{\"id\":3,\"type\":\"uint32\"},\"offsetX\":{\"id\":17,\"type\":\"uint32\"},\"eventPhase\":{\"id\":12,\"type\":\"uint32\"},\"shiftKey\":{\"id\":23,\"type\":\"bool\"},\"offsetY\":{\"id\":18,\"type\":\"uint32\"},\"composed\":{\"id\":8,\"type\":\"bool\"},\"altKey\":{\"id\":1,\n\"type\":\"bool\"},\"isTrusted\":{\"id\":13,\"type\":\"bool\"},\"buttons\":{\"id\":4,\"type\":\"uint32\"},\"movementY\":{\"id\":16,\"type\":\"uint32\"},\"clientY\":{\"id\":7,\"type\":\"uint32\"},\"clientX\":{\"id\":6,\"type\":\"uint32\"},\"movementX\":{\"id\":15,\"type\":\"uint32\"},\"defaultPrevented\":{\"id\":10,\"type\":\"bool\"},\"metaKey\":{\"id\":14,\"type\":\"bool\"},\"timeStamp\":{\"id\":24,\"type\":\"double\"},\"bubbles\":{\"id\":2,\"type\":\"bool\"},\"detail\":{\"id\":11,\"type\":\"int64\"},\"pageY\":{\"id\":20,\"type\":\"uint32\"},\"pageX\":{\"id\":19,\"type\":\"uint32\"},\"screenX\":{\"id\":21,\n\"type\":\"uint32\"},\"screenY\":{\"id\":22,\"type\":\"uint32\"}}},\"InstrumentedEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"mouseEvent\"]}},\"reserved\":[[4,4],\"xpath\",[6,6],[8,8]],\"fields\":{\"mouseEvent\":{\"id\":7,\"type\":\"MouseEvent\"},\"auto\":{\"id\":3,\"type\":\"bool\"},\"parentComponent\":{\"id\":2,\"type\":\"string\"},\"ownerComponent\":{\"id\":1,\"type\":\"string\"},\"userPayload\":{\"id\":5,\"type\":\"Payload\"},\"simplePath\":{\"id\":9,\"type\":\"string\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const simple={namespace:\"sf.instrumentation\",name:\"Simple\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Simple\":{\"fields\":{\"text\":{\"options\":{\"(meta.max_length)\":25},\"id\":1,\"type\":\"string\"}}}}}}}}}};","import { TaskerMulti, TaskerSingle } from '../interfaces/IdleDetector';\n\nexport type TaskDoneNotifier = () => void;\n\nexport class TaskerImpl implements TaskerSingle, TaskerMulti {\n private _busyCount = 0;\n private _isOk = true; // Once an error occurs, make operations no-op\n\n get isBusy(): boolean {\n return this._isOk ? this._busyCount > 0 : undefined;\n }\n\n constructor(\n public readonly name: string,\n initialCount: number,\n private readonly _doneCallback: TaskDoneNotifier,\n private readonly _overDoneCallback: TaskDoneNotifier\n ) {\n this._busyCount = initialCount;\n }\n\n add(): void {\n if (this._isOk) {\n this._busyCount += 1;\n }\n }\n done(): void {\n if (this._isOk) {\n if (this._busyCount > 0) {\n this._busyCount -= 1;\n if (!this._busyCount) {\n this._doneCallback();\n }\n } else {\n this._isOk = false;\n this._overDoneCallback();\n }\n }\n }\n}\n","import { IdleDetector, IdleDetectorOptions, IdleDetectorReport } from '../interfaces';\nimport {\n ErrorListener,\n IdleDetectedListener,\n IsBusyChecker,\n ReportListener,\n TaskerMulti,\n TaskerSingle\n} from '../interfaces/IdleDetector';\nimport { TaskerImpl } from './TaskerImpl';\nimport { utility } from 'o11y/shared';\n\nconst defaultLogThreshold = 300;\n\ntype TaskReportEntry = {\n name: string;\n start: number;\n end: number;\n};\n\ntype PollableReportEntry = {\n name: string;\n count: number;\n};\n\nexport class IdleDetectorImpl implements IdleDetector {\n private readonly _taskers = new Map<TaskerImpl, TaskReportEntry>();\n private readonly _listeners = new Set<IdleDetectedListener>();\n private readonly _busyCheckers = new Map<IsBusyChecker, string>();\n private readonly _logThreshold: number = defaultLogThreshold;\n private readonly _endedTasks = new Array<TaskReportEntry>();\n private readonly _pollableReport = new Array<PollableReportEntry>();\n private _firstCallbackTime: number;\n private _timerCheckQueued: NodeJS.Timeout;\n private readonly _reportListener: ReportListener;\n private readonly _errorListener: ErrorListener;\n\n constructor(options?: IdleDetectorOptions) {\n if (\n utility.requireArgumentIfDefined(\n options?.logThreshold,\n 'options.logThreshold',\n 'number'\n )\n ) {\n this._logThreshold = options.logThreshold;\n }\n\n if (\n utility.requireArgumentIfDefined(\n options?.reportListener,\n 'options.reportListener',\n 'function'\n )\n ) {\n this._reportListener = options.reportListener;\n }\n\n if (\n utility.requireArgumentIfDefined(\n options?.errorListener,\n 'options.errorListener',\n 'function'\n )\n ) {\n this._errorListener = options.errorListener;\n }\n }\n\n requestIdleDetectedCallback(callback: IdleDetectedListener): void {\n utility.requireArgument(callback, 'callback', 'function');\n if (this._listeners.size === 0) {\n this._firstCallbackTime = utility.time().perfNow;\n }\n this._listeners.add(callback);\n this._checkIfLoaded();\n }\n\n private _reportTaskEnded(tasker: TaskerImpl): void {\n // Report only if we have any listeners\n if (this._listeners.size) {\n const snapshot = Object.assign({}, this._taskers.get(tasker));\n this._endedTasks.push(snapshot);\n }\n }\n\n declareNotifierTaskSingle(name: string): TaskerSingle {\n utility.requireArgument(name, 'name', 'string');\n const tasker = this._addTasker(name, 1);\n\n const retVal: TaskerSingle = {\n get isBusy() {\n return tasker.isBusy;\n },\n done: () => {\n tasker.done();\n this._taskers.delete(tasker);\n }\n };\n\n return retVal;\n }\n\n declareNotifierTaskMulti(name: string, existingBusyCount = 0): TaskerMulti {\n utility.requireArgument(name, 'name', 'string');\n if (existingBusyCount !== undefined) {\n utility.requireArgument(existingBusyCount, 'existingBusyCount', 'number');\n\n if (!Number.isInteger(existingBusyCount) || existingBusyCount < 0) {\n throw new Error('existingBusyCount accepts only non-negative integers');\n }\n }\n const tasker = this._addTasker(name, existingBusyCount);\n\n const retVal: TaskerMulti = {\n get isBusy() {\n return tasker.isBusy;\n },\n add: () => {\n if (!tasker.isBusy) {\n const meta = this._taskers.get(tasker);\n meta.start = utility.time().perfNow;\n meta.end = undefined;\n }\n tasker.add();\n },\n done: tasker.done.bind(tasker) // Note: don't delete multi tasker\n };\n return retVal;\n }\n\n declarePollableTaskMulti(name: string, isBusyChecker: IsBusyChecker): void {\n utility.requireArgument(name, 'name', 'string');\n utility.requireArgument(isBusyChecker, 'isBusyChecker', 'function');\n\n this._busyCheckers.set(isBusyChecker, name);\n }\n\n private _addTasker(name: string, existingBusyCount: number): TaskerImpl {\n const tasker = new TaskerImpl(\n name,\n existingBusyCount,\n () => {\n // Done callback\n this._taskers.get(tasker).end = utility.time().perfNow;\n this._reportTaskEnded(tasker);\n this._checkIfLoaded();\n },\n () => {\n // Overdone callback\n this._errorListener?.(`Overdone: ${tasker.name}`);\n utility.noProdThrow(`Tasker '${tasker.name}' is done too many times.`);\n }\n );\n this._taskers.set(tasker, {\n name,\n start: existingBusyCount > 0 ? utility.time().perfNow : undefined,\n end: undefined\n });\n return tasker;\n }\n\n private _areAllNotifiersIdle(): boolean {\n return !Array.from(this._taskers.keys()).some((t) => t.isBusy);\n }\n\n private _getFirstBusyPollable(): string {\n const entry = Array.from(this._busyCheckers).find((entry) => {\n const isBusyChecker = entry[0];\n const name = entry[1];\n try {\n return isBusyChecker();\n } catch (e) {\n this._errorListener?.(e, `BusyChecker ${name}`);\n utility.noProdThrow(e);\n return false; // Not busy\n }\n });\n\n return entry ? entry[1] : undefined;\n }\n\n private _checkIfLoaded(): void {\n if (!this._listeners.size) {\n // bail out early. We don't have any callbacks queued\n return;\n }\n\n // We restart the idle timer check logic whenever we get an external\n // trigger that a resource was loaded since that would imply that more\n // work could be queued up and we want to be aware of that\n if (this._timerCheckQueued) {\n clearTimeout(this._timerCheckQueued);\n }\n\n if (this._areAllNotifiersIdle()) {\n // Enqueue two RAF to make sure nothing got queued in this js cycle\n // note the use of double setTimeout. We want our setTimeout to queue up after\n // any set timeouts queued within micro tasks that may run after processing this\n // xhr response.\n // Here's a sample timeline\n // .....[ Single Event Loop ].....................................\n // .....[XHR callback][checkIfLoaded][microtasks]-[1st setTimeout]....[2nd setTimeout]\n // ^\n // queue settimeout at the end of event loop --->|\n this._timerCheckQueued = setTimeout(() => {\n this._timerCheckQueued = setTimeout(() => {\n this._doubleCheck();\n }, 40);\n }, 0);\n }\n }\n\n private _doubleCheck(): void {\n this._timerCheckQueued = undefined;\n\n if (this._areAllNotifiersIdle()) {\n const pollableName: string = this._getFirstBusyPollable();\n if (pollableName !== undefined) {\n // we'll have to keep polling until polled operations finish\n this._addToPollableReport(pollableName);\n this._timerCheckQueued = setTimeout(() => {\n this._doubleCheck();\n }, 15);\n } else {\n // OK!! We are certified idle.\n const maxDuration = utility.time().perfNow - this._firstCallbackTime;\n\n // Take a snapshot of internal variables so that we don't get confused\n // if tasks are created or listeners or worse, get into an infinite loop\n // if idle is requested\n const listeners = Array.from(this._listeners.values());\n this._listeners.clear();\n\n this._firstCallbackTime = undefined;\n const endedTasks = this._endedTasks.splice(0);\n const pollableReport = this._pollableReport.splice(0);\n\n this._notify(listeners, maxDuration, endedTasks, pollableReport);\n }\n }\n }\n\n private _addToPollableReport(name: string): void {\n const lastEntry: PollableReportEntry = this._pollableReport.length\n ? this._pollableReport[this._pollableReport.length - 1]\n : undefined;\n\n if (lastEntry?.name === name) {\n lastEntry.count += 1;\n } else {\n this._pollableReport.push({\n name,\n count: 1\n });\n }\n }\n\n private _notify(\n listeners: IdleDetectedListener[],\n maxDuration: number,\n taskReport: Array<TaskReportEntry>,\n pollableReport: Array<PollableReportEntry>\n ): void {\n if (maxDuration >= this._logThreshold && this._reportListener) {\n const logData: IdleDetectorReport = this._getReport(\n maxDuration,\n listeners.length,\n taskReport,\n pollableReport\n );\n this._reportListener(logData);\n }\n listeners.reverse();\n\n const tsNow = utility.time().tsNow;\n for (const [index, listener] of listeners.entries()) {\n try {\n listener(tsNow);\n } catch (e) {\n this._errorListener?.(e, `Listener #${listeners.length - 1 - index}`);\n utility.noProdThrow(e);\n }\n }\n }\n\n getReport(): IdleDetectorReport {\n const perfNow = utility.time().perfNow;\n const maxDuration =\n this._firstCallbackTime > 0 ? perfNow - this._firstCallbackTime : undefined;\n\n const onGoingTasks: Array<TaskReportEntry> = Array.from(this._taskers.entries())\n .filter((e) => e[0].isBusy)\n .map((e) => ({\n name: e[1].name,\n start: e[1].start,\n end: perfNow\n }));\n return this._getReport(\n maxDuration,\n this._listeners.size,\n this._endedTasks.concat(onGoingTasks),\n this._pollableReport\n );\n }\n\n private _getReport(\n maxDuration: number,\n listenerCount: number,\n taskReport: Array<TaskReportEntry>,\n pollableReport: Array<PollableReportEntry>\n ): IdleDetectorReport {\n const sortedTaskers = taskReport\n .map((t) => ({\n name: t.name,\n duration: t.end - t.start\n }))\n .sort((a, b) => b.duration - a.duration);\n return {\n logThreshold: this._logThreshold,\n maxDuration,\n listenerCount,\n pollableCount: this._busyCheckers.size,\n busyTasks: sortedTaskers.map((t) => t.name),\n busyDurations: sortedTaskers.map((t) => t.duration),\n pollables: pollableReport.map((p) => p.name),\n pollCounts: pollableReport.map((p) => p.count)\n };\n }\n}\n","import { TraceHeaders, utility } from 'o11y/shared';\nimport {\n Instrumentation,\n TracingHeadersOptions,\n NetworkInstrumentationOptions,\n Activity\n} from '../interfaces';\nimport { IdleDetector, TaskerMulti } from '../interfaces/IdleDetector';\n\ntype FetchType = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\n\ntype O11yFetchOptions = {\n skipInstr?: boolean;\n};\n\ntype O11yFetchType = (\n input: RequestInfo | URL,\n init?: RequestInit & { o11y?: O11yFetchOptions }\n) => Promise<Response>;\n\ntype XhrType = {\n prototype: XMLHttpRequest;\n new (): XMLHttpRequest;\n readonly DONE: number;\n readonly HEADERS_RECEIVED: number;\n readonly LOADING: number;\n readonly OPENED: number;\n readonly UNSENT: number;\n};\n\ntype XhrOpenType = (\n method: string,\n url: string | URL,\n async?: boolean,\n username?: string | null,\n password?: string | null\n) => void;\n\ntype XhrSendType = (body?: Document | XMLHttpRequestBodyInit | null) => void;\n\ntype O11yInfo = {\n activity?: Activity;\n method?: string;\n url?: string;\n};\ninterface O11yXhr extends XMLHttpRequest {\n _o11y: O11yInfo;\n}\n\nconst defaultTraceIdLengthW3 = 32; // 32 Characters = 128 bits\nconst defaultTraceIdLengthB3 = 16; // 16 Characters = 64 bits\nconst defaultSpanIdLength = 16; // 16 Characters = 64 bits\n\n// Headers for W3 tracing (https://www.w3.org/TR/trace-context/#traceparent-header)\nconst headerTraceParent = 'traceparent';\n\n// Headers for B3 tracing (https://github.com/openzipkin/b3-propagation)\nconst headerB3 = 'b3';\nconst headerTraceId = 'X-B3-TraceId';\nconst headerSpanId = 'X-B3-SpanId';\nconst headerSampled = 'X-B3-Sampled';\nconst headerParentSpanId = 'X-B3-ParentSpanId';\n\nconst defaultActivityNameForFetch = 'fetch';\nconst defaultActivityNameForXhrSend = 'xhr_send';\n\nexport class Tracing {\n private static _global: typeof globalThis = utility.getGlobal();\n private static _originalFetch: FetchType;\n private static _originalXhr: XhrType;\n private static _originalXhrOpen: XhrOpenType;\n private static _originalXhrSend: XhrSendType;\n private static _isNetworkInstrumentationEnabled = false;\n private static _reqIndex = 0;\n\n constructor(\n private readonly _instr: Instrumentation,\n private readonly _idleDetector: IdleDetector\n ) {\n utility.requireArgument(_instr, '_instr', 'object');\n utility.requireArgument(_idleDetector, '_idleDetector', 'object');\n }\n\n private static _getB3CompactFormat(\n traceId: string,\n spanId: string,\n isSampled?: boolean,\n parentSpanId?: string\n ): string {\n // b3={TraceId}-{SpanId}-{SamplingState}-{ParentSpanId}\n // Note: last two fields are optional\n\n let b3 = `${traceId}-${spanId}`;\n\n if (isSampled !== undefined || parentSpanId !== undefined) {\n b3 += isSampled ? '-1' : '-0';\n if (parentSpanId !== undefined) {\n b3 += `-${parentSpanId}`;\n }\n }\n return b3;\n }\n\n private static _getW3CompactFormat(\n traceId: string,\n spanId: string,\n isSampled: boolean\n ): string {\n // traceparent={version}-{trace-id}-{parent-id}-{trace-flags}\n // \"in some tracing systems, parent-id is known as the span-id, where a span is the execution of a client request\"\n return `00-${traceId}-${spanId}-${isSampled ? '01' : '00'}`;\n }\n\n private static _conformTextAsId(text: string, numChars: number): string {\n // First validate\n text = text.toLowerCase();\n const len: number = text.length;\n for (let i = 0; i < len; i += 1) {\n const c = text[i];\n if (!(c >= 'a' && c <= 'f') && !(c >= '0' && c <= '9')) {\n throw new Error(`The text '${text}' has an invalid character at index #${i}`);\n }\n }\n\n if (len > numChars) {\n // Use the right-most characters per spec\n return text.substr(len - numChars);\n }\n if (len < numChars) {\n // Pad left with 0s per spec\n return text.padStart(numChars, '0');\n }\n return text;\n }\n\n public static getHeaders(\n traceId: string,\n spanId: string,\n isSampled?: boolean,\n options?: TracingHeadersOptions\n ): TraceHeaders {\n utility.requireArgument(traceId, 'traceId', 'string');\n utility.requireArgument(spanId, 'spanId', 'string');\n\n const useB3Headers: boolean = options?.useB3Headers;\n\n traceId = this._conformTextAsId(\n traceId,\n options?.traceIdEffectiveLength !== undefined\n ? options.traceIdEffectiveLength\n : useB3Headers\n ? defaultTraceIdLengthB3\n : defaultTraceIdLengthW3\n );\n spanId = this._conformTextAsId(spanId, defaultSpanIdLength);\n\n const parentSpanId =\n (options &&\n options.parentSpanId !== undefined &&\n this._conformTextAsId(options.parentSpanId, defaultSpanIdLength)) ||\n undefined;\n\n const headers: TraceHeaders = {};\n\n if (useB3Headers) {\n // By default, use non-compact\n const isCompact: boolean = options?.useCompactHeader;\n if (isCompact) {\n headers[headerB3] = this._getB3CompactFormat(\n traceId,\n spanId,\n isSampled,\n parentSpanId\n );\n } else {\n headers[headerTraceId] = traceId;\n headers[headerSpanId] = spanId;\n if (parentSpanId !== undefined) {\n headers[headerParentSpanId] = parentSpanId;\n }\n if (isSampled !== undefined) {\n headers[headerSampled] = isSampled ? '1' : '0';\n }\n }\n } else {\n headers[headerTraceParent] = this._getW3CompactFormat(traceId, spanId, isSampled);\n }\n\n return headers;\n }\n\n private _disableNetworkInstrumentation(): void {\n if (Tracing._isNetworkInstrumentationEnabled) {\n if (Tracing._originalFetch) {\n Tracing._global.fetch = Tracing._originalFetch;\n Tracing._originalFetch = undefined;\n }\n if (Tracing._originalXhr) {\n Tracing._global.XMLHttpRequest = Tracing._originalXhr;\n Tracing._originalXhr = undefined;\n }\n if (Tracing._originalXhrOpen) {\n Tracing._global.XMLHttpRequest.prototype.open = Tracing._originalXhrOpen;\n Tracing._originalXhrOpen = undefined;\n }\n if (Tracing._originalXhrSend) {\n Tracing._global.XMLHttpRequest.prototype.send = Tracing._originalXhrSend;\n Tracing._originalXhrSend = undefined;\n }\n Tracing._isNetworkInstrumentationEnabled = false;\n }\n }\n\n private _enableNetworkInstrumentation(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n if (typeof Tracing._global.fetch === 'function') {\n this._overrideFetch(instr, logErrors, activityName, useTracing, options, tasker);\n Tracing._isNetworkInstrumentationEnabled = true;\n }\n\n if (typeof Tracing._global.XMLHttpRequest === 'function') {\n this._overrideXhr(instr, logErrors, activityName, useTracing, options, tasker);\n Tracing._isNetworkInstrumentationEnabled = true;\n }\n }\n\n private static _getTraceHeaders(\n activity: Activity | undefined,\n options: TracingHeadersOptions | undefined,\n method: string,\n url: string\n ): TraceHeaders {\n let traceHeaders: TraceHeaders = activity?.getTraceHeaders(options) || {};\n if (typeof options?.headerProcessor === 'function') {\n traceHeaders = options.headerProcessor({\n method,\n url,\n defaultHeaders: traceHeaders\n });\n } else if (typeof window === 'object') {\n // By default, only send to the original domain on browsers\n let newUrl;\n try {\n newUrl = new URL(url); // no base argument - will throw on non-absolute URLs\n } catch {\n // Relative URL.\n }\n // Check host (not hostname) to ensure port numbers match too.\n if (newUrl && newUrl.host !== window.location.host) {\n traceHeaders = undefined;\n }\n }\n return traceHeaders || {};\n }\n\n private _overrideFetch(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n Tracing._originalFetch = Tracing._global.fetch;\n const o11yFetch: O11yFetchType = async (url, reqOptions, ...restArgs) => {\n let activity: Activity;\n try {\n tasker?.add();\n const ofo: O11yFetchOptions = reqOptions?.o11y;\n if (!ofo?.skipInstr) {\n activity = instr.startActivity(activityName || defaultActivityNameForFetch);\n } else {\n Tracing._reqIndex += 1;\n try {\n // Best effort\n if (typeof url === 'string') {\n const urlObj = new URL(url);\n const kv = `o11y=${Tracing._reqIndex}`;\n urlObj.search += urlObj.search.startsWith('?') ? `&${kv}` : kv;\n url = urlObj.toString();\n }\n } catch {}\n }\n if (reqOptions) {\n delete reqOptions.o11y;\n }\n\n if (useTracing) {\n reqOptions = reqOptions || {};\n const traceHeaders = Tracing._getTraceHeaders(\n activity,\n options,\n reqOptions.method,\n url?.toString()\n );\n reqOptions.headers = Object.assign(reqOptions.headers || {}, traceHeaders);\n }\n\n return await Tracing._originalFetch.call(\n Tracing._global,\n url,\n reqOptions,\n ...restArgs\n );\n } catch (ex) {\n if (logErrors) {\n if (activity) {\n activity.error(ex);\n } else {\n instr.error(ex);\n }\n }\n throw ex;\n } finally {\n activity?.stop();\n tasker?.done();\n }\n };\n Tracing._global.fetch = o11yFetch;\n }\n\n private _overrideXhr(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n Tracing._originalXhr = Tracing._global.XMLHttpRequest;\n Tracing._originalXhrOpen = Tracing._originalXhr.prototype.open;\n Tracing._originalXhrSend = Tracing._originalXhr.prototype.send;\n\n Tracing._originalXhr.prototype.open = function (\n this: O11yXhr,\n method: string,\n url: string | URL,\n async?: boolean,\n username?: string | null,\n password?: string | null\n ) {\n this._o11y = {\n method,\n url: url?.toString()\n };\n\n Tracing._originalXhrOpen.call(this, method, url, async, username, password);\n };\n\n Tracing._originalXhr.prototype.send = function (this: O11yXhr, ...args) {\n let activity: Activity;\n try {\n tasker?.add();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr: O11yXhr = this;\n xhr._o11y = xhr._o11y || {};\n xhr._o11y.activity = activity = instr.startActivity(\n activityName || defaultActivityNameForXhrSend\n );\n if (useTracing) {\n const traceHeaders = Tracing._getTraceHeaders(\n activity,\n options,\n xhr._o11y.method,\n xhr._o11y.url\n );\n\n Object.entries(traceHeaders).forEach((entry) => {\n xhr.setRequestHeader(entry[0], entry[1]);\n });\n }\n Tracing._originalXhrSend.call(this, ...args);\n } catch (ex) {\n if (logErrors) {\n if (activity) {\n activity.error(ex);\n } else {\n instr.error(ex);\n }\n }\n activity?.stop();\n tasker?.done();\n throw ex;\n }\n };\n\n const xhrProxy = new Proxy<XhrType>(Tracing._originalXhr, {\n construct(target: XhrType) {\n const newXhr = new target() as O11yXhr;\n\n // Be the first in the event chain\n newXhr.addEventListener('load', () => {\n newXhr._o11y?.activity?.stop();\n tasker?.done();\n });\n newXhr.addEventListener(\n 'error',\n (__err: ProgressEvent<XMLHttpRequestEventTarget>) => {\n const error = new Error('XHR Network-Level Error');\n const activity = newXhr._o11y?.activity;\n if (activity) {\n if (logErrors) {\n activity.error(error);\n }\n activity.stop();\n } else if (logErrors) {\n instr.error(error);\n }\n tasker?.done();\n }\n );\n newXhr.addEventListener('abort', () => {\n newXhr._o11y?.activity?.discard();\n tasker?.done();\n });\n return newXhr;\n }\n });\n\n Tracing._global.XMLHttpRequest = xhrProxy;\n }\n\n networkInstrumentation(options: boolean | NetworkInstrumentationOptions): void {\n utility.requireArgument(options, 'options', ['boolean', 'object']);\n\n // First disable it if necessary, so we can use the new options if it was already enabled\n this._disableNetworkInstrumentation();\n if (options) {\n const tracingOptions: NetworkInstrumentationOptions =\n typeof options === 'object' ? options : {};\n\n let tasker: TaskerMulti = undefined;\n if (utility.definedValueOrDefault(tracingOptions.useTasker, true)) {\n tasker = this._idleDetector?.declareNotifierTaskMulti('o11y network');\n }\n\n this._enableNetworkInstrumentation(\n utility.definedValueOrDefault(tracingOptions.instrumentation, this._instr),\n utility.definedValueOrDefault(tracingOptions.logErrors, true),\n tracingOptions.activityName,\n utility.definedValueOrDefault(tracingOptions.useTracing, true),\n tracingOptions.tracingHeadersOptions,\n tasker\n );\n }\n }\n\n resetRequestCounter(): void {\n Tracing._reqIndex = 0;\n }\n}\n","export enum TimerOverride {\n none,\n start,\n stop,\n both\n}\n","import { PublicSafety, SchematizedData, TraceHeaders, utility } from 'o11y/shared';\n\nimport {\n Activity,\n ActivityDetail,\n ActivityStopOptions,\n Schema,\n TracingHeadersOptions\n} from '../interfaces';\nimport { Tracing } from './Tracing';\nimport { TimerOverride } from './TimerOverride';\nexport const timedout = 'timedout';\nexport const terminated = 'terminated';\nexport const discarded = 'discarded';\n\nconst stopReason = {\n timedout,\n terminated,\n discarded\n};\n\nexport type onActivityStop = (detail: ActivityDetail) => void;\nexport type onActivityError = (error: unknown, detail: ActivityDetail) => void;\n\nexport class ActivityImpl implements Activity {\n protected readonly _id: string;\n private readonly _safety: PublicSafety;\n private readonly _usePerf: boolean;\n protected static _count = 0;\n private readonly _perfId: string;\n private readonly _perfName: string;\n private _startTimestamp: number;\n private _startPerfTime: number;\n private _stopPerfTime: number;\n private _stopReason: string;\n private _timer: NodeJS.Timer;\n private _errorCount = 0;\n private _timerOverridden: TimerOverride = TimerOverride.none;\n\n constructor(\n protected readonly _name: string,\n protected readonly _rootId: string,\n private readonly _onStopped: onActivityStop,\n private readonly _onError: onActivityError,\n timeout?: number,\n id?: string,\n protected readonly _isSampled?: boolean\n ) {\n const { tsNow, perfNow } = utility.time();\n\n ActivityImpl._count += 1;\n this._id = id || utility.generateUniqueId();\n\n this._usePerf =\n typeof performance !== 'undefined' &&\n typeof performance.mark === 'function' &&\n typeof performance.measure === 'function';\n if (this._usePerf) {\n this._perfName = `${this._name}__${ActivityImpl._count}`;\n this._perfId = `${this._name}__${this.id}`;\n try {\n performance.mark(this._perfId);\n } catch {\n this._usePerf = false;\n }\n }\n\n this._startTimestamp = tsNow;\n this._startPerfTime = perfNow;\n\n if (timeout > 0) {\n this._timer = setTimeout(() => {\n this._stopReason = this._stopReason || stopReason.timedout;\n this.stop();\n }, timeout);\n }\n this._safety = new PublicSafety();\n }\n\n get id(): string {\n return this._id;\n }\n\n getId(): string {\n return this.id;\n }\n\n getRootId(): string {\n return this._rootId;\n }\n\n get stopReason(): string {\n return this._stopReason;\n }\n\n error(error: unknown, userSchemaOrText?: Schema | string, userData?: SchematizedData): void {\n this._safety.tryCatch(() => {\n this._errorCount += 1;\n if (typeof error === 'string') {\n error = new Error(error);\n }\n this._onError(error, this._getDetail(userSchemaOrText, userData));\n });\n }\n\n stop(\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgumentIfDefined(userSchemaOrText, 'userSchemaOrText', [\n 'object',\n 'string'\n ]);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n\n if (options) {\n const perfStart: number = options.perfStartOverride;\n const isStartTimeDefined = utility.requireArgumentIfDefined(\n perfStart,\n 'options.perfStartOverride',\n 'number'\n );\n\n const perfStop: number = options.perfStopOverride;\n const isStopTimeDefined = utility.requireArgumentIfDefined(\n perfStop,\n 'options.perfStopOverride',\n 'number'\n );\n\n if (isStartTimeDefined && perfStart < 0) {\n throw new Error('perfStartOverride, if defined, must be >= 0');\n }\n\n if (\n isStopTimeDefined &&\n (perfStop < 0 ||\n perfStop < (isStartTimeDefined ? perfStart : this._startPerfTime))\n ) {\n throw new Error('perfStopOverride, if defined, must be >= 0 and >= startTime');\n }\n }\n\n this._stopInternal(userSchemaOrText, userData, options);\n });\n }\n\n private _overrideTimer(perfStartTime?: number, perfStopTime?: number): void {\n if (perfStartTime !== undefined) {\n this._startTimestamp = Math.round(\n this._startTimestamp - (this._startPerfTime - perfStartTime)\n );\n this._startPerfTime = perfStartTime;\n this._setTimerOverride(TimerOverride.start);\n }\n\n if (perfStopTime !== undefined) {\n this._stopPerfTime = perfStopTime;\n this._setTimerOverride(TimerOverride.stop);\n }\n }\n\n private _setTimerOverride(value: TimerOverride): void {\n if (\n this._timerOverridden === TimerOverride.both ||\n this._timerOverridden === value ||\n value === TimerOverride.none\n ) {\n return;\n }\n this._timerOverridden =\n this._timerOverridden === TimerOverride.none ? value : TimerOverride.both;\n }\n\n private _stopInternal(\n userSchemaOrText: Schema | string,\n userData: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n // First things first.\n const stopPerfTime = utility.perfNow();\n if (this._usePerf) {\n try {\n // Use a more user-friendly name for measure.\n if (this._stopReason !== stopReason.discarded) {\n performance.measure(this._perfName, this._perfId);\n }\n performance.clearMarks(this._perfId);\n performance.clearMeasures(this._perfName);\n } catch {}\n }\n\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n if (this.isStopped) {\n // Already stopped\n return;\n }\n\n if (options) {\n this._overrideTimer(options.perfStartOverride, options.perfStopOverride);\n }\n\n // We may set this already in override so check that here\n this._stopPerfTime =\n this._timerOverridden === TimerOverride.none ||\n this._timerOverridden === TimerOverride.start\n ? stopPerfTime\n : this._stopPerfTime;\n\n const activityDetail: ActivityDetail = this._getDetail(userSchemaOrText, userData);\n this._onStopped(activityDetail);\n }\n\n get isStopped(): boolean {\n return this._stopPerfTime !== undefined;\n }\n\n discard(): void {\n this._safety.tryCatch(() => {\n this._stopReason = this._stopReason || stopReason.discarded;\n this.stop();\n });\n }\n\n terminate(\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n this._safety.tryCatch(() => {\n this._stopReason = this._stopReason || stopReason.terminated;\n this.stop(userSchemaOrText, userData, options);\n });\n }\n\n getIsSampled(): boolean {\n return this._isSampled || false;\n }\n\n protected _getDetail(\n userSchemaOrText: Schema | string,\n userData: SchematizedData\n ): ActivityDetail {\n return {\n id: this._id,\n rootId: this._rootId,\n name: this._name,\n userSchemaOrText: userSchemaOrText,\n userData,\n stopReason: this._stopReason,\n startTimestamp: this._startTimestamp,\n startPerfTime: this._startPerfTime,\n stopPerfTime: this._stopPerfTime,\n errorCount: this._errorCount,\n isSampled: this.getIsSampled(),\n timerOverridden: this._timerOverridden\n };\n }\n\n public getTraceHeaders(options: TracingHeadersOptions): TraceHeaders {\n // Normally, the root activity ID is the traceId.\n // If the activity is root, it's ID is (also) the traceId.\n // If the activity has no root, it's ID is (also) the traceId. i.e. It creates its own trace.\n const spanId = this.id;\n const traceId = this._rootId || spanId;\n\n return Tracing.getHeaders(traceId, spanId, this.getIsSampled(), options);\n }\n\n getStartTimestamp(): number {\n return this._startTimestamp;\n }\n\n getStartPerfTime(): number {\n return this._startPerfTime;\n }\n\n getStopPerfTime(): number {\n return this._stopPerfTime;\n }\n}\n","import { Activity, TracingHeadersOptions } from '../interfaces';\n\nconst id: string = new Array(16).fill(0).join('');\nclass ActivityNoOp implements Activity {\n getId(): string {\n return id;\n }\n getRootId(): string {\n return undefined;\n }\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n error(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n stop(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n discard(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n terminate(): void {}\n\n getIsSampled(): boolean {\n return false;\n }\n getTraceHeaders(__options: TracingHeadersOptions): Record<string, string> {\n return {};\n }\n getStartTimestamp(): number {\n return undefined;\n }\n getStartPerfTime(): number {\n return undefined;\n }\n getStopPerfTime(): number {\n return undefined;\n }\n}\n\nexport const activityNoOp = Object.freeze(new ActivityNoOp());\n","import { SchematizedPayload } from '../interfaces';\nimport { InstrumentedEventData, MouseEventData } from '../interfaces-private';\nimport { DomEventData } from '../types/TypeDefinitions-Private';\nimport { schemaUtil, utility } from 'o11y/shared';\n\nexport class DomEventHelpers {\n getInstrumentedEventData(\n eventData: DomEventData,\n handledBy: HTMLElement,\n userPayload: SchematizedPayload\n ): InstrumentedEventData {\n const instrumentedEvent: InstrumentedEventData = {\n ownerComponent: handledBy.tagName,\n parentComponent: handledBy.parentElement?.tagName || undefined,\n event: eventData,\n simplePath: utility.getXpath(handledBy)\n };\n\n if (userPayload) {\n instrumentedEvent.userPayload = schemaUtil.makePayload(\n userPayload.schema,\n userPayload.payload,\n true\n );\n }\n\n return instrumentedEvent;\n }\n\n getMouseEventData(e: MouseEvent): MouseEventData {\n return {\n altKey: e.altKey,\n bubbles: e.bubbles,\n button: e.button,\n buttons: e.buttons,\n cancelable: e.cancelable,\n clientX: e.clientX,\n clientY: e.clientY,\n composed: e.composed,\n defaultPrevented: e.defaultPrevented,\n detail: e.detail,\n eventPhase: e.eventPhase,\n isTrusted: e.isTrusted,\n timeStamp: e.timeStamp,\n type: e.type,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n movementX: e.movementX,\n movementY: e.movementY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n pageX: e.pageX,\n pageY: e.pageY,\n screenX: e.screenX,\n screenY: e.screenY,\n shiftKey: e.shiftKey\n };\n }\n}\n\nconst singleton = new DomEventHelpers();\nexport const domEventHelpers = singleton;\n","import { IType, Schema, SchemaTokens } from '../interfaces';\nimport {\n PbjsNestedObjectDescriptor,\n SchematizedData,\n SchematizedDataValue,\n schemaUtil,\n utility\n} from 'o11y/shared';\n\n// These are hard-coded limits at the app-level. They may be overridden with a corresponding\n// option at the field level in the schema metadata.\nexport const maxStringLengthAppLimit = 10000; // For strings\nexport const maxItemCountAppLimit = 10000; // For arrays\n\nconst minUnsigned = 0;\nconst maxFourBytes = 2147483647;\nconst minFourBytes = -2147483648;\nconst maxFourBytesUnsigned = 4294967295;\nconst maxEightBytes = 9223372036854776000;\nconst minEightBytes = -9223372036854776001;\nconst maxEightBytesUnsigned = 18446744073709552000;\n\nexport const enum ErrorCode {\n notAnError = 0, // To ensure truthy-checks work for proper error codes.\n arrayExpected,\n incorrectType,\n infiniteNumber,\n numberOutOfRange,\n malformedBytesArray,\n stringLengthOverflowAppLimit,\n itemCountOverflowAppLimit,\n stringLengthOverflow,\n stringLengthUnderflow,\n itemCountOverflow,\n itemCountUnderflow,\n integerExpected,\n invalidItemValue\n}\n\nexport class ValidationEntry {\n constructor(\n public errorCode: ErrorCode,\n public fields: string[],\n public expected?: string,\n public received?: string\n ) {}\n\n asMessage(schemaId: string): string {\n const key: string =\n this.fields[0] +\n this.fields\n .slice(1)\n .reduce(\n (prev, current) =>\n Number(current) >= 0 ? `${prev}[${current}]` : `${prev}.${current}`,\n ''\n );\n let msg: string;\n\n switch (this.errorCode) {\n case ErrorCode.arrayExpected:\n msg = 'Repeated field must be an array';\n break;\n case ErrorCode.incorrectType:\n msg = `Expected type ${this.expected} but received type ${this.received}`;\n break;\n case ErrorCode.infiniteNumber:\n msg = 'Value must be finite';\n break;\n case ErrorCode.numberOutOfRange:\n msg = 'Value is out of range for its type';\n break;\n case ErrorCode.malformedBytesArray:\n msg = 'Bytes array is malformed';\n break;\n case ErrorCode.stringLengthOverflowAppLimit:\n msg = 'Exceeded app limit for maximum string length';\n break;\n case ErrorCode.itemCountOverflowAppLimit:\n msg = 'Exceeded app limit for item count';\n break;\n case ErrorCode.integerExpected:\n msg = 'Value must be an integer';\n break;\n case ErrorCode.invalidItemValue:\n msg = 'Values like null or undefined are not allowed for items in repeated fields';\n break;\n // TODO: The following should be used when we start validating against schema metadata\n // case ErrorCode.stringLengthOverflow:\n // msg = 'Exceeded maximum string length';\n // break;\n // case ErrorCode.stringLengthUnderflow:\n // msg = 'Failed minimum string length';\n // break;\n // case ErrorCode.itemCountOverflow:\n // msg = 'Exceeded maximum item count';\n // break;\n // case ErrorCode.itemCountUnderflow:\n // msg = 'Failed minimum item count';\n // break;\n default:\n msg = `Unknown error code: ${this.errorCode}`;\n break;\n }\n\n return `Schema ${schemaId} on field \"${key}\": ${msg}`;\n }\n}\n\ntype NumberRangeOptions = {\n min: number;\n max: number;\n isInt: boolean;\n isItem: boolean;\n};\n\nclass LogValidator {\n public validate(schema: Schema, data: SchematizedData, noThrow = false): ValidationEntry[] {\n const schemaTokens: SchemaTokens = schemaUtil.checkSchema(schema);\n utility.requireArgument(data, 'data', 'object');\n\n const schemaId: string = schemaUtil.getSchemaId(schema);\n\n const errorInfos = new Array<ValidationEntry>();\n\n const nestedSchema: PbjsNestedObjectDescriptor = schemaUtil.getTypes(schema);\n this._validateFields(\n errorInfos,\n [],\n data,\n nestedSchema[schemaTokens.message] as IType,\n nestedSchema,\n schemaId\n );\n\n if (errorInfos.length && !noThrow) {\n throw new Error(errorInfos[0].asMessage(schemaId));\n }\n\n return errorInfos;\n }\n\n private _validateFields(\n errorInfos: ValidationEntry[],\n fieldNames: string[],\n data: SchematizedData,\n message: IType,\n descriptor: PbjsNestedObjectDescriptor,\n schemaId: string\n ): void {\n const oneofs = message.oneofs || {};\n const fields = message.fields || {};\n for (const key in data) {\n const value = data[key];\n // if it's null or undefined we don't need to match\n if (value !== undefined && value !== null) {\n const mft: (fieldType: string, isRepeated?: boolean, isItem?: boolean) => void = (\n fieldType,\n isRepeated,\n isItem\n ) =>\n this._matchFieldTypes(\n errorInfos,\n [...fieldNames, key],\n value,\n fieldType,\n descriptor,\n schemaId,\n key,\n isRepeated,\n isItem\n );\n\n if (oneofs[key]) {\n mft(fields[oneofs[key].oneof[0]].type);\n } else if (fields[key]) {\n mft(fields[key].type, fields[key].rule === 'repeated');\n }\n // if the field is not present in the schema then we ignore it and will drop it later\n }\n }\n }\n\n private _matchFieldTypes(\n errorInfos: ValidationEntry[],\n fieldNames: string[],\n fieldDataValue: SchematizedDataValue,\n protobufType: string,\n descriptor: PbjsNestedObjectDescriptor,\n schemaId: string,\n key: string,\n isRepeated: boolean,\n isItem: boolean // true if inside a repeated field\n ): void {\n let errorCode: ErrorCode;\n\n if (isRepeated) {\n if (Array.isArray(fieldDataValue)) {\n if (fieldDataValue.length > maxItemCountAppLimit) {\n errorCode = ErrorCode.itemCountOverflowAppLimit;\n }\n\n fieldDataValue.forEach((value, index: number) => {\n // if it's repeated they should all be the same type so we can just run it as is\n this._matchFieldTypes(\n errorInfos,\n [...fieldNames, index.toString()],\n value,\n protobufType,\n descriptor,\n schemaId,\n key,\n undefined, // rule\n true // isItem\n );\n });\n } else {\n errorCode = ErrorCode.arrayExpected;\n }\n } else if (fieldDataValue == null || fieldDataValue === undefined) {\n if (isItem) {\n // Null and undefined are allowed unless they're in an array\n errorCode = ErrorCode.invalidItemValue;\n }\n } else {\n let numOpts: NumberRangeOptions;\n let javaScriptType: string;\n switch (protobufType) {\n case 'string':\n javaScriptType = 'string';\n if (fieldDataValue.length > maxStringLengthAppLimit) {\n errorCode = ErrorCode.stringLengthOverflowAppLimit;\n }\n break;\n case 'bytes':\n javaScriptType = 'object';\n if (!(fieldDataValue instanceof Uint8Array)) {\n errorCode = ErrorCode.malformedBytesArray;\n }\n break;\n case 'bool':\n javaScriptType = 'boolean';\n break;\n case 'uint32':\n javaScriptType = 'number';\n numOpts = {\n min: minUnsigned,\n max: maxFourBytesUnsigned,\n isInt: true,\n isItem\n };\n break;\n case 'int32':\n case 'sint32':\n case 'fixed32':\n case 'sfixed32':\n javaScriptType = 'number';\n numOpts = {\n min: minFourBytes,\n max: maxFourBytes,\n isInt: true,\n isItem\n };\n break;\n case 'uint64':\n javaScriptType = 'number';\n numOpts = {\n min: minUnsigned,\n max: maxEightBytesUnsigned,\n isInt: true,\n isItem\n };\n break;\n case 'fixed64':\n case 'sfixed64':\n case 'int64':\n case 'sint64':\n javaScriptType = 'number';\n numOpts = {\n min: minEightBytes,\n max: maxEightBytes,\n isInt: true,\n isItem\n };\n break;\n case 'double':\n case 'float':\n javaScriptType = 'number';\n numOpts = {\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n isInt: false,\n isItem\n };\n break;\n default:\n if (new Set(Object.keys(descriptor)).has(protobufType)) {\n //now we check this schema\n this._validateFields(\n errorInfos,\n fieldNames,\n fieldDataValue,\n descriptor[protobufType] as IType,\n descriptor,\n schemaId\n );\n javaScriptType = 'object';\n }\n break;\n }\n\n if (typeof fieldDataValue !== javaScriptType) {\n errorInfos.push(\n new ValidationEntry(\n ErrorCode.incorrectType,\n fieldNames,\n protobufType,\n typeof fieldDataValue\n )\n );\n } else if (numOpts) {\n if (numOpts.isInt && !Number.isFinite(fieldDataValue)) {\n errorCode = ErrorCode.infiniteNumber;\n } else if (numOpts.isInt && !Number.isInteger(fieldDataValue)) {\n errorCode = ErrorCode.integerExpected;\n } else if (\n !(!numOpts.isInt && Number.isNaN(fieldDataValue)) &&\n !(fieldDataValue >= numOpts.min && fieldDataValue <= numOpts.max)\n ) {\n errorCode = ErrorCode.numberOutOfRange;\n }\n }\n }\n if (errorCode) {\n errorInfos.push(new ValidationEntry(errorCode, fieldNames));\n }\n }\n}\n\nexport const logValidator = new LogValidator();\n","import { BucketHistogram } from '../interfaces/BucketHistogram';\nimport { MetricsTags, utility } from 'o11y/shared';\nimport { BucketMetric } from 'src/interfaces';\n\nexport class BucketHistogramImpl implements BucketMetric<number[]>, BucketHistogram {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _values = new Array<number>();\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags,\n private readonly _buckets: number[]\n ) {\n this._createdOn = utility.time().tsNow;\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number[] {\n return this.values;\n }\n\n getBuckets(): number[] {\n return this.buckets;\n }\n\n get buckets(): number[] {\n return this._buckets.slice(0, this._buckets.length);\n }\n\n get values(): number[] {\n return this._values.slice(0, this._values.length);\n }\n\n record(value: number): void {\n if (typeof value === 'number') {\n this._values.push(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('BucketHistogram can only record numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._values = [];\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): MetricsTags {\n return this._tags;\n }\n}\n","import { Metric } from '../interfaces/Metric';\nimport { UpCounter } from '../interfaces/UpCounter';\nimport { MetricsTags, utility } from 'o11y/shared';\n\nexport class UpCounterImpl implements Metric<number>, UpCounter {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _value = 0;\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags\n ) {\n this._createdOn = utility.time().tsNow;\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number {\n return this._value;\n }\n\n increment(value = 1): void {\n if (typeof value === 'number' && value > 0) {\n this._value += Math.round(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('UpCounter can only increment positive numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._value = 0;\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): Readonly<MetricsTags> {\n return this._tags;\n }\n}\n","import { Metric } from '../interfaces/Metric';\nimport { ValueRecorder } from '../interfaces/ValueRecorder';\nimport { MetricsTags, utility } from 'o11y/shared';\n\nexport class ValueRecorderImpl implements Metric<number[]>, ValueRecorder {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _values = new Array<number>();\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags\n ) {\n this._createdOn = utility.time().tsNow;\n // TODO: Add sampling/throttling to put a cap on the size of the array\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number[] {\n return this.values;\n }\n\n get values(): number[] {\n return this._values.slice(0, this._values.length);\n }\n\n record(value: number): void {\n if (typeof value === 'number') {\n this._values.push(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('ValueRecorder can only record numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._values = [];\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): MetricsTags {\n return this._tags;\n }\n}\n","export class SizeLimitedMap<K, V> {\n private readonly _map = new Map<K, V>();\n\n private _maxSize: number;\n constructor(maxSize: number) {\n if (typeof maxSize === 'number' && maxSize > 0) {\n this._maxSize = Math.ceil(maxSize);\n return;\n }\n throw new Error('maxSize must be a positive number');\n }\n\n get maxSize(): number {\n return this._maxSize;\n }\n\n get(key: K): V {\n return this._map.get(key);\n }\n\n has(key: K): boolean {\n return this._map.has(key);\n }\n\n set(key: K, value: V): boolean {\n if (this.has(key) || this._map.size < this.maxSize) {\n this._map.set(key, value);\n return true;\n }\n return false;\n }\n\n getElements(): V[] {\n return Array.from(this._map.values());\n }\n\n clear(): void {\n this._map.clear();\n }\n}\n","import { MetricsReporter, UpCounter, ValueRecorder } from '../interfaces';\n\nimport { BucketHistogramImpl } from './BucketHistogramImpl';\nimport { UpCounterImpl } from './UpCounterImpl';\nimport { ValueRecorderImpl } from './ValueRecorderImpl';\nimport { SizeLimitedMap } from './SizeLimitedMap';\nimport { MetricsTags } from 'o11y/shared';\n\nconst maxCounters = 1000;\nconst maxValueRecorders = 500;\nconst maxBucketHistograms = 500;\n\nenum MetricType {\n Counter,\n Percentile,\n BucketHistogram\n}\n\nexport class MetricsImpl implements MetricsReporter {\n private readonly _upCounters = new SizeLimitedMap<string, UpCounterImpl>(maxCounters);\n private readonly _valueRecorders = new SizeLimitedMap<string, ValueRecorderImpl>(\n maxValueRecorders\n );\n private readonly _bucketHistograms = new SizeLimitedMap<string, BucketHistogramImpl>(\n maxBucketHistograms\n );\n\n constructor(\n private readonly _ownerName: string,\n private readonly _getOwnerAppName: () => string\n ) {}\n\n incrementCounter(\n operation: string,\n increment: number,\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._tagError(tags, hasError);\n this._upCounter(operation, tags).increment(increment);\n }\n\n trackValue(operation: string, value: number, hasError = false, tags: MetricsTags = {}): void {\n this._tagError(tags, hasError);\n this._valueRecorder(operation, tags).record(value);\n }\n\n bucketValue(\n operation: string,\n value: number,\n buckets: number[],\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._tagError(tags, hasError);\n this._bucketHistogram(operation, tags, buckets).record(value);\n }\n\n private _bucketHistogram(name: string, tags: MetricsTags, buckets: number[]): ValueRecorder {\n const { key, sortedTags } = this._getKeyAndSortedTags(\n name,\n tags,\n MetricType.BucketHistogram\n );\n let instrument = this._bucketHistograms.get(key);\n if (!instrument) {\n instrument = new BucketHistogramImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags,\n buckets\n );\n if (!this._bucketHistograms.set(key, instrument)) {\n throw new Error(`Max size of ${maxBucketHistograms} exceeded for BucketHistograms`);\n }\n }\n return instrument;\n }\n\n private _upCounter(name: string, tags: MetricsTags): UpCounter {\n const { key, sortedTags } = this._getKeyAndSortedTags(name, tags, MetricType.Counter);\n let instrument = this._upCounters.get(key);\n if (!instrument) {\n instrument = new UpCounterImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags\n );\n if (!this._upCounters.set(key, instrument)) {\n throw new Error(`Max size of ${maxCounters} exceeded for UpCounters`);\n }\n }\n return instrument;\n }\n\n private _valueRecorder(name: string, tags: MetricsTags): ValueRecorder {\n const { key, sortedTags } = this._getKeyAndSortedTags(name, tags, MetricType.Percentile);\n let instrument = this._valueRecorders.get(key);\n if (!instrument) {\n instrument = new ValueRecorderImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags\n );\n if (!this._valueRecorders.set(key, instrument)) {\n throw new Error(`Max size of ${maxValueRecorders} exceeded for ValueRecorders`);\n }\n }\n return instrument;\n }\n\n getUpCounters(): UpCounterImpl[] {\n return this._upCounters.getElements();\n }\n\n getValueRecorders(): ValueRecorderImpl[] {\n return this._valueRecorders.getElements();\n }\n\n getBucketHistograms(): BucketHistogramImpl[] {\n return this._bucketHistograms.getElements();\n }\n\n private _tagError(tags: MetricsTags, hasError: boolean): void {\n tags.status = hasError === true ? 'error' : 'success';\n }\n\n private _getKeyAndSortedTags(\n operation: string,\n tags: MetricsTags,\n metricType: MetricType\n ): { key: string; sortedTags: MetricsTags } {\n // This method should be called after any manipulation of tags\n const sortedTags = Object.keys(tags)\n .sort()\n .reduce((prev: MetricsTags, curr: string) => {\n prev[curr] = tags[curr];\n return prev;\n }, {});\n const key = `${MetricType[metricType]}:${operation}${JSON.stringify(sortedTags)}`;\n return {\n key,\n sortedTags\n };\n }\n}\n","export class MockBase {\n // All mock objects should extend this\n public readonly isMock = true;\n}\n","import {\n activitySchema,\n errorSchema,\n instrumentedEventSchema,\n simpleSchema\n} from 'o11y_schema/sf_instrumentation';\n\nimport {\n LightningElement,\n LogPromptListener,\n MetricsTags,\n PublicSafety,\n SchematizedData,\n schemaUtil,\n utility\n} from 'o11y/shared';\n\nimport {\n Activity,\n ActivityApiOptions,\n ActivityDetail,\n ApiOptions,\n BucketMetric,\n DomEventApiOptions,\n Instrumentation,\n InstrumentationContext,\n Metric,\n MetricsReporter,\n PayloadProvider,\n Schema,\n SchematizedPayload\n} from '../interfaces';\nimport { ActivityData, ErrorData, InstrumentedEventData } from '../interfaces-private';\n\nimport { ActivityImpl, discarded, onActivityError, onActivityStop } from './ActivityImpl';\nimport { activityNoOp } from './ActivityNoOp';\nimport { AutomaticClickTracker } from './AutomaticClickTracker';\nimport { domEventHelpers } from './DomEventHelpers';\nimport {\n ErrorCode,\n ValidationEntry,\n logValidator,\n maxItemCountAppLimit,\n maxStringLengthAppLimit\n} from './LogValidator';\nimport { MetricsImpl } from './MetricsImpl';\nimport { MockBase } from './MockObj';\nimport { NextgenImpl } from './NextgenImpl';\n\n// @W-10241440, disable timeouts\nconst maxActivityDurationMsecs: number = undefined;\nconst reservedMetricCharacters = ['`'];\nconst reservedMetricNames = {\n internalError: 'o11y-error'\n};\nconst denyListMetricNames = Object.freeze(Array.from(Object.values(reservedMetricNames)));\n\nexport class InstrumentationImpl implements Instrumentation, MetricsReporter {\n protected static readonly defaultAppName = 'APP_NOT_REGISTERED';\n private readonly _metrics: MetricsImpl;\n private readonly _onActivityStoppedCallback: onActivityStop =\n this._handleActivityStop.bind(this);\n protected readonly _onActivityErrorCallback: onActivityError =\n this._handleActivityError.bind(this);\n protected readonly _safety: PublicSafety;\n private readonly _simpleTextMaxLength: number;\n\n constructor(private readonly _nextGen: NextgenImpl, private readonly _name: string) {\n for (const reservedChar of reservedMetricCharacters) {\n if (this._name.indexOf(reservedChar) >= 0) {\n throw new Error(`Name cannot include the reserved character \"${reservedChar}\"`);\n }\n }\n\n this._safety = new PublicSafety({\n increment: (increment) => this._incrementError(increment)\n });\n\n this._metrics = this._initMetrics();\n\n const simpleTextOptions = schemaUtil.getOptions(simpleSchema, 'Simple', 'text');\n this._simpleTextMaxLength = simpleTextOptions\n ? simpleTextOptions['(meta.max_length)']\n : maxStringLengthAppLimit;\n }\n\n protected _initMetrics(): MetricsImpl {\n return new MetricsImpl(\n this.name,\n () => this._nextGen.appName || InstrumentationImpl.defaultAppName\n );\n }\n\n private _incrementError(increment = 1): void {\n this._metrics.incrementCounter(reservedMetricNames.internalError, increment, false);\n }\n\n get name(): string {\n return this._name;\n }\n\n /**\n * This function is to allow for convenience calls to our API, where a string can\n * be provided instead of an actual Schema. In that case, we wrap the text in\n * a built-in simple schema.\n * @param userSchemaOrText Schema or string.\n * @param userData\n * @param onlyIfBoth If true, then both the schema and the data must be specified.\n * @returns\n */\n protected _wrapUserPayload(\n userSchemaOrText: Schema | string,\n userData: SchematizedData,\n onlyIfBoth = false\n ): SchematizedPayload {\n let userSchema: Schema;\n if (typeof userSchemaOrText === 'string') {\n userSchema = simpleSchema;\n if (userSchemaOrText) {\n userData = {\n text: userSchemaOrText.substring(0, this._simpleTextMaxLength)\n };\n } else {\n userData = undefined;\n }\n } else {\n userSchema = userSchemaOrText;\n }\n\n return schemaUtil.makePayload(userSchema, userData, onlyIfBoth);\n }\n\n private _getEffectiveRootId(options?: ApiOptions): string {\n return (\n options?.instrumentationContext?.rootId ??\n this._nextGen.getDefaultInstrumentationContext().rootId\n );\n }\n\n /**\n *\n * @param userSchema The schema of the second argument. Also used as the basis for auto-generated\n * counters for log calls using the same schema.\n * @param userData Optional data that complies with the provided schema\n */\n log(userSchemaOrText: Schema | string, userData?: SchematizedData, options?: ApiOptions): void {\n this._safety.tryCatch(() => {\n const timestamp = utility.time().tsNow;\n utility.requireArgument(userSchemaOrText, 'userSchemaOrText', ['object', 'string']);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n const userPayload = this._wrapUserPayload(userSchemaOrText, userData);\n\n if (userPayload?.payload) {\n this._logInternal(\n this.name,\n userPayload.schema,\n userPayload.payload,\n timestamp,\n this._getEffectiveRootId(options)\n );\n }\n });\n }\n\n protected _logInternal(\n loggerName: string,\n schema: Schema,\n data: SchematizedData,\n timestamp: number,\n rootId?: string\n ): number {\n this._checkInputs(schema, data);\n const appPayload: SchematizedPayload = this._getPayloadFromProvider(\n this._nextGen.appPayloadProvider\n );\n const pagePayload: SchematizedPayload = this._getPayloadFromProvider(\n this._nextGen.pagePayloadProvider\n );\n\n return this._nextGen.addLog(\n loggerName,\n schema,\n data,\n timestamp,\n rootId,\n pagePayload,\n appPayload\n );\n }\n\n error(\n error: unknown,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ApiOptions\n ): void {\n return this._safety.tryCatch(() => {\n utility.requireArgumentIfDefined(userSchemaOrText, 'userSchemaOrText', [\n 'object',\n 'string'\n ]);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n const rootId: string = this._getEffectiveRootId(options);\n this._errorInternal(error, userSchemaOrText, userData, undefined, rootId);\n });\n }\n\n protected _errorInternal(\n err: unknown,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n activityId?: string,\n rootActivityId?: string\n ): number {\n const loggedTimestamp = utility.time().tsNow;\n\n let error: Error;\n if (err instanceof Error) {\n error = err;\n } else {\n let msg: string;\n if (err === undefined || err === null || typeof err.toString !== 'function') {\n msg = 'UNKNOWN';\n } else {\n msg = err.toString();\n }\n error = new Error(msg);\n }\n\n const userPayload = this._wrapUserPayload(userSchemaOrText, userData, true);\n\n const errorData: ErrorData = {\n name: error.name,\n message: error.message,\n stack: error.stack,\n userPayload,\n activityId\n };\n\n return this._logInternal(\n this.name,\n errorSchema,\n errorData,\n loggedTimestamp,\n rootActivityId\n );\n }\n\n startActivity(name: string, options?: ApiOptions): Activity {\n return this._safety.tryCatchReturn(() => {\n utility.requireArgument(name, 'name');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n let context: InstrumentationContext;\n\n const rootId: string = options?.instrumentationContext?.rootId;\n if (rootId) {\n context = {\n rootId,\n isRootActivitySampled: options.instrumentationContext.isRootActivitySampled\n };\n } else {\n // By definition, an activity is sampled if root activity is sampled\n context = this._nextGen.getDefaultInstrumentationContext();\n }\n const activity: Activity = new ActivityImpl(\n name,\n context.rootId,\n this._onActivityStoppedCallback,\n this._onActivityErrorCallback,\n maxActivityDurationMsecs,\n undefined,\n context.isRootActivitySampled\n );\n return activity;\n }, activityNoOp);\n }\n\n protected _getActivityData(detail: ActivityDetail): ActivityData {\n const userPayload = this._wrapUserPayload(detail.userSchemaOrText, detail.userData, true);\n\n return {\n id: detail.id,\n name: detail.name,\n duration: detail.stopPerfTime - detail.startPerfTime,\n stopReason: detail.stopReason,\n userPayload,\n errorCount: detail.errorCount,\n isSampled: detail.isSampled,\n timerOverridden: detail.timerOverridden\n };\n }\n\n private _handleActivityStop(detail: ActivityDetail): void {\n if (detail.stopReason === discarded) {\n return;\n }\n const activityData: ActivityData = this._getActivityData(detail);\n\n this._logActivity(activityData, detail.startTimestamp, detail.rootId);\n }\n\n protected _logActivity(\n activityData: ActivityData,\n startTimestamp: number,\n rootId?: string\n ): void {\n this._logInternal(this.name, activitySchema, activityData, startTimestamp, rootId);\n }\n\n private _handleActivityError(error: unknown, detail: ActivityDetail): void {\n this._errorInternal(\n error,\n detail.userSchemaOrText,\n detail.userData,\n detail.id,\n detail.rootId\n );\n }\n\n private _getPayloadFromProvider(provider: PayloadProvider): SchematizedPayload {\n const payload: SchematizedPayload = provider?.getPayload() || undefined;\n if (payload) {\n this._checkInputs(payload.schema, payload.payload);\n }\n return payload;\n }\n\n domEvent(\n event: Event,\n handledBy: HTMLElement | LightningElement,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: DomEventApiOptions\n ): void {\n this._safety.tryCatch(() => {\n const tsNow = utility.time().tsNow;\n\n utility.requireArgument(event, 'event', [Event, MockBase]);\n // TODO: Using 'object' instead of 'LightningElement' for now (no imports)\n utility.requireArgument(handledBy, 'handledBy', [HTMLElement, 'object']);\n\n let htmlElement;\n if (handledBy instanceof HTMLElement) {\n htmlElement = handledBy;\n } else {\n handledBy = handledBy as LightningElement;\n // Convenience for LightningElement developers who pass \"this\" in handledBy.\n // Get the underlying HTML element\n if (handledBy.template?.host instanceof HTMLElement) {\n htmlElement = handledBy.template.host;\n } else {\n utility.requireArgument(undefined, 'handledBy');\n }\n }\n\n const userPayload: SchematizedPayload = this._wrapUserPayload(\n userSchemaOrText,\n userData,\n true\n );\n\n const rootId: string = this._getEffectiveRootId(options);\n\n switch (event.type) {\n case 'click': {\n const mouseEvent = event as MouseEvent;\n\n // If the user has called domEvent API on this event explicitly,\n // then we don't need to log it by default.\n const acd: AutomaticClickTracker = this._nextGen.getClickTracker();\n if (acd) {\n acd.markEventHandled(mouseEvent);\n }\n\n const mouseEventData = domEventHelpers.getMouseEventData(mouseEvent);\n\n const instrumentedEvent: InstrumentedEventData =\n domEventHelpers.getInstrumentedEventData(\n mouseEventData,\n htmlElement,\n userPayload\n );\n instrumentedEvent.auto = options?._auto;\n\n this._logInternal(\n this.name,\n instrumentedEventSchema,\n instrumentedEvent,\n tsNow,\n rootId\n );\n break;\n }\n default:\n throw new Error(utility.notImplemented);\n }\n });\n }\n\n incrementCounter(\n operation: string,\n increment = 1,\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(increment, 'increment', 'number');\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n this._metrics.incrementCounter(operation, increment, hasError, tags);\n });\n }\n\n trackValue(operation: string, value: number, hasError = false, tags: MetricsTags = {}): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(value, 'value', 'number');\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n\n this._metrics.trackValue(operation, value, hasError, tags);\n });\n }\n\n bucketValue(\n operation: string,\n value: number,\n buckets: number[] = [],\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(value, 'value', 'number');\n utility.requireArgument(buckets, 'buckets', Array);\n Object.entries(buckets).forEach((entry) => {\n utility.requireArgument(entry[1], `Bucket value for '${entry[0]}'`, 'number');\n });\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n\n this._metrics.bucketValue(operation, value, buckets, hasError, tags);\n });\n }\n\n private _checkInputs(schema: Schema, data: SchematizedData): void {\n schemaUtil.checkSchema(schema);\n utility.requireArgument(data, 'data', 'object');\n\n let vEntries: ValidationEntry[];\n let savedUserPayload: SchematizedPayload;\n if (data.userPayload !== undefined && schemaUtil.isInternal(schema)) {\n // For internal schemas where we have nested messages, we need to temporarily\n // remove userPayload, since it's not yet encoded. (If left in place, it would fail\n // validation since it's not UInt8Array). We validate it separately here.\n savedUserPayload = data.userPayload;\n vEntries = logValidator.validate(\n savedUserPayload.schema,\n savedUserPayload.payload,\n true\n );\n this._processValidationResults(\n schemaUtil.getSchemaId(savedUserPayload.schema),\n savedUserPayload.payload,\n vEntries\n );\n data.userPayload = undefined;\n }\n\n vEntries = logValidator.validate(schema, data, true);\n this._processValidationResults(schemaUtil.getSchemaId(schema), data, vEntries);\n\n if (savedUserPayload !== undefined) {\n // Restore userPayload\n data.userPayload = savedUserPayload;\n }\n }\n\n private _processValidationResults(\n schemaId: string,\n data: SchematizedData,\n ventries: ValidationEntry[]\n ): void {\n for (let i = 0; i < ventries.length; i += 1) {\n const ei = ventries[i];\n\n if (\n ei.errorCode == ErrorCode.stringLengthOverflowAppLimit ||\n ei.errorCode == ErrorCode.itemCountOverflowAppLimit\n ) {\n const lfi = ei.fields.length - 1;\n const obj = this._traverseFields(data, ei.fields.slice(0, lfi));\n const field = ei.fields[lfi];\n if (ei.errorCode == ErrorCode.stringLengthOverflowAppLimit) {\n obj[field] = obj[field].substring(0, maxStringLengthAppLimit);\n } else {\n obj[field].splice(maxItemCountAppLimit);\n }\n } else {\n throw new Error(ei.asMessage(schemaId));\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _traverseFields(data: SchematizedData, fields: string[]): any {\n if (!fields.length) {\n return data;\n }\n return this._traverseFields(data[fields[0]], fields.slice(1));\n }\n\n getUpCounters(): Metric<number>[] {\n return this._metrics.getUpCounters().filter((m) => m.getLastUpdatedOn());\n }\n\n getValueRecorders(): Metric<number[]>[] {\n return this._metrics.getValueRecorders().filter((m) => m.getLastUpdatedOn());\n }\n\n getBucketHistograms(): BucketMetric<number[]>[] {\n return this._metrics.getBucketHistograms().filter((m) => m.getLastUpdatedOn());\n }\n\n registerForLogPrompt(listener: LogPromptListener): void {\n utility.requireArgument(listener, 'listener', 'function');\n this._nextGen.registerForLogPrompt(listener);\n }\n\n activity<T>(name: string, execute: (act: Activity) => T, options?: ActivityApiOptions): T {\n const act = this.startActivity(name, options);\n try {\n return execute(act);\n } catch (err) {\n act.error(err, options?.errorPayload?.schema, options?.errorPayload?.payload);\n throw err;\n } finally {\n act.stop(options?.stopPayload?.schema, options?.stopPayload?.payload);\n }\n }\n\n async activityAsync<T>(\n name: string,\n execute: (act: Activity) => Promise<T>,\n options?: ActivityApiOptions\n ): Promise<T> {\n const act = this.startActivity(name, options);\n try {\n return await execute(act);\n } catch (err) {\n act.error(err, options?.errorPayload?.schema, options?.errorPayload?.payload);\n throw err;\n } finally {\n act.stop(options?.stopPayload?.schema, options?.stopPayload?.payload);\n }\n }\n}\n","import { RootActivity, Schema } from '../interfaces';\nimport { ActivityDetail } from '../interfaces/ActivityDetail';\nimport { ActivityImpl, onActivityError, onActivityStop } from './ActivityImpl';\nimport { SchematizedData, utility } from 'o11y/shared';\n\nexport class RootActivityImpl extends ActivityImpl implements RootActivity {\n constructor(\n name: string,\n onStopped: onActivityStop,\n onError: onActivityError,\n rootId?: string,\n _isSampled?: boolean\n ) {\n super(\n name,\n undefined,\n onStopped,\n onError,\n undefined,\n rootId || utility.generateUniqueId(32),\n _isSampled\n );\n }\n\n private _preRootId: string;\n get preRootId(): string {\n return this._preRootId;\n }\n set preRootId(value: string) {\n this._preRootId = value;\n }\n\n protected _getDetail(userSchema: Schema, userData: SchematizedData): ActivityDetail {\n const detail = super._getDetail(userSchema, userData);\n detail.isRoot = true;\n detail.preRootId = this.preRootId;\n return detail;\n }\n}\n","import { RootActivity, TracingHeadersOptions } from '../interfaces';\n\nconst rootId: string = new Array(32).fill(0).join('');\nclass RootActivityNoOp implements RootActivity {\n getId(): string {\n return rootId;\n }\n getRootId(): string {\n return undefined;\n }\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n error(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n stop(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n discard(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n terminate(): void {}\n\n getIsSampled(): boolean {\n return false;\n }\n getTraceHeaders(__options: TracingHeadersOptions): Record<string, string> {\n return {};\n }\n getStartTimestamp(): number {\n return undefined;\n }\n getStartPerfTime(): number {\n return undefined;\n }\n getStopPerfTime(): number {\n return undefined;\n }\n}\n\nexport const rootActivityNoOp = Object.freeze(new RootActivityNoOp());\n","import { ActivityDetail, RootActivity } from '../interfaces';\nimport { ActivityData } from '../interfaces-private';\nimport { discarded, onActivityStop } from './ActivityImpl';\nimport { InstrumentationImpl } from './InstrumentationImpl';\nimport { RootActivityImpl } from './RootActivityImpl';\nimport { rootActivityNoOp } from './RootActivityNoOp';\nimport { utility } from 'o11y/shared';\nimport { MetricsImpl } from './MetricsImpl';\nimport { NextgenImpl } from './NextgenImpl';\n\nexport class AppInstrumentationImpl extends InstrumentationImpl {\n private _singleRootActivity: RootActivityImpl; // Not used when _allowMulti = true\n\n private readonly _onRootActivityStoppedCallback: onActivityStop =\n this._handleRootActivityStop.bind(this);\n\n constructor(_nextGen: NextgenImpl, _name: string, private readonly _allowMulti: boolean) {\n super(_nextGen, _name);\n }\n\n startRootActivity(name: string, rootId?: string, isSampled?: boolean): RootActivity {\n return this._safety.tryCatchReturn(() => {\n utility.requireArgument(name, 'name');\n\n const newRootActivity = new RootActivityImpl(\n name,\n this._onRootActivityStoppedCallback,\n this._onActivityErrorCallback,\n rootId,\n isSampled\n );\n\n if (!this._allowMulti) {\n if (this._singleRootActivity && !this._singleRootActivity.isStopped) {\n const preRootId = this._singleRootActivity.getId();\n this._singleRootActivity.terminate();\n newRootActivity.preRootId = preRootId;\n }\n this._singleRootActivity = newRootActivity;\n }\n\n return newRootActivity as RootActivity;\n }, rootActivityNoOp);\n }\n\n private _handleRootActivityStop(detail: ActivityDetail): void {\n if (detail.stopReason === discarded) {\n return;\n }\n\n const activityData: ActivityData = this._getActivityData(detail);\n\n this._logActivity(activityData, detail.startTimestamp);\n this._singleRootActivity = undefined;\n }\n\n protected _getActivityData(detail: ActivityDetail): ActivityData {\n const activityData: ActivityData = super._getActivityData(detail);\n activityData.isRoot = detail.isRoot;\n activityData.preRootId = detail.preRootId;\n return activityData;\n }\n\n getSingleRootActivityId(): string {\n return this._singleRootActivity?.getId();\n }\n\n isSingleRootActivitySampled(): boolean {\n return this._singleRootActivity?.getIsSampled();\n }\n\n protected _initMetrics(): MetricsImpl {\n return new MetricsImpl(this.name, () => this.name);\n }\n}\n","import { Instrumentation } from '../interfaces';\nimport { utility } from 'o11y/shared';\n\nconst pathLimit = 5;\n\nexport class AutomaticClickTracker {\n private _ignoredEvent: Event;\n private _isActive = false;\n private readonly _boundClickListener = this._clickListener.bind(this);\n\n constructor(private readonly _instr: Instrumentation, private readonly _doc: Document) {\n utility.requireArgument(_instr, '_instr');\n utility.requireArgument(_doc, '_doc');\n }\n\n activate(): void {\n if (!this._isActive) {\n this._doc.addEventListener('click', this._boundClickListener, true);\n this._isActive = true;\n }\n }\n\n deactivate(): void {\n if (this._isActive) {\n this._doc.removeEventListener('click', this._boundClickListener, true);\n this._isActive = false;\n }\n }\n\n markEventHandled(event: MouseEvent): void {\n this._ignoredEvent = event;\n }\n\n private _clickListener(event: MouseEvent): void {\n let eventTargets: EventTarget[] = event.composedPath?.();\n if (!eventTargets || !eventTargets.length) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n eventTargets = (event as any).path;\n }\n const handledBy: HTMLElement = this._getClickableElement(eventTargets);\n\n if (handledBy) {\n // Immediate\n setTimeout(() => {\n if (event !== this._ignoredEvent) {\n this._instr.domEvent(event, handledBy, undefined, undefined, {\n _auto: true\n });\n }\n });\n }\n }\n\n private _getClickableElement(path: EventTarget[]): HTMLElement {\n const limit = path ? Math.min(path.length, pathLimit) : 0;\n for (let x = 0; x < limit; x += 1) {\n const currentElement = path[x] as HTMLElement;\n const tagName = currentElement.tagName?.toLowerCase();\n if (tagName === 'a' || tagName === 'button') {\n return currentElement;\n }\n if (tagName === 'input') {\n const inputElement = currentElement as HTMLInputElement;\n if (inputElement.type?.toLowerCase() === 'button') {\n return inputElement;\n }\n }\n }\n return undefined;\n }\n}\n","import {\n BucketMetric,\n BufferedLog,\n IdleDetector,\n Instrumentation,\n InstrumentationContext,\n InstrumentedAppMethods,\n InstrumentedAppOptions,\n LogCollector,\n LogCollectorOptions,\n LogMeta,\n Metric,\n MetricsCollector,\n Nextgen,\n PayloadProvider,\n Schema,\n SchematizedPayload\n} from '../interfaces';\nimport { AppInstrumentationImpl } from './AppInstrumentationImpl';\nimport { AutomaticClickTracker } from './AutomaticClickTracker';\nimport { InstrumentationImpl } from './InstrumentationImpl';\nimport { Tracing } from './Tracing';\nimport { LogPromptListener, SchematizedData, schemaUtil, utility } from 'o11y/shared';\n\nconst maxInstrumentationLength = 80;\nconst truncatedText = '_CUT';\nconst maxInstrumentationLengthBeforeTruncated = maxInstrumentationLength - truncatedText.length;\n\nexport class NextgenImpl implements Nextgen {\n private readonly _logCollectors = new Set<LogCollector>();\n private readonly _instruments = new Map<string, InstrumentationImpl | AppInstrumentationImpl>();\n private readonly _seqBySchema = new Map<string, number>();\n private _sequence = 0;\n private _appInstr: AppInstrumentationImpl;\n private _autoClickTracker: AutomaticClickTracker;\n private _metricsCollector: MetricsCollector;\n private _appPayloadProvider: PayloadProvider;\n private _pagePayloadProvider: PayloadProvider;\n private _forceDisabledLogCollectors = new Set<LogCollector>();\n private _logCollectorFailures = new Map<LogCollector, number>();\n private static _collectorFailureLimit = 5;\n private _isBufferingEnabled = false;\n private _buffer: BufferedLog[] = [];\n private readonly _logCollectionListeners = new Set<LogPromptListener>();\n private _clientSessionId: string;\n\n get pagePayloadProvider(): PayloadProvider {\n return this._pagePayloadProvider;\n }\n set pagePayloadProvider(provider: PayloadProvider) {\n this._pagePayloadProvider = provider;\n }\n\n get appPayloadProvider(): PayloadProvider {\n return this._appPayloadProvider;\n }\n set appPayloadProvider(provider: PayloadProvider) {\n this._appPayloadProvider = provider;\n }\n\n constructor(private readonly _idleDetector: IdleDetector) {}\n\n registerApp(name: string, options?: InstrumentedAppOptions): InstrumentedAppMethods {\n utility.requireArgument(name, 'name', 'string');\n if (this._appInstr) {\n throw new Error('An app has already been registered with instrumentation.');\n }\n const instr = this._instruments.get(name);\n if (instr) {\n throw new Error(`The instrumentation name ${name} is already taken`);\n }\n this._clientSessionId = options?.clientSessionId?.toString() || utility.generateUniqueId();\n this._appInstr = new AppInstrumentationImpl(\n this,\n name,\n options?.allowMultipleRootActivities\n );\n this._instruments.set(name, this._appInstr);\n this._isBufferingEnabled = options?.enableBuffering;\n\n const tracing = new Tracing(this.getInstrumentation('Network'), this._idleDetector);\n\n return {\n log: this._appInstr.log.bind(this._appInstr),\n error: this._appInstr.error.bind(this._appInstr),\n startActivity: this._appInstr.startActivity.bind(this._appInstr),\n domEvent: this._appInstr.domEvent.bind(this._appInstr),\n incrementCounter: this._appInstr.incrementCounter.bind(this._appInstr),\n trackValue: this._appInstr.trackValue.bind(this._appInstr),\n bucketValue: this._appInstr.bucketValue.bind(this._appInstr),\n networkInstrumentation: tracing.networkInstrumentation.bind(tracing),\n registerForLogPrompt: this._appInstr.registerForLogPrompt.bind(this._appInstr),\n activity: this._appInstr.activity.bind(this._appInstr),\n activityAsync: this._appInstr.activityAsync.bind(this._appInstr),\n\n startRootActivity: this._appInstr.startRootActivity.bind(this._appInstr),\n registerLogCollector: this.registerLogCollector.bind(this),\n registerMetricsCollector: this.registerMetricsCollector.bind(this),\n activateClickTracker: this.activateClickTracker.bind(this),\n deactivateClickTracker: this.deactivateClickTracker.bind(this),\n disableBuffering: this.disableBuffering.bind(this),\n promptLogCollection: this.promptLogCollection.bind(this),\n getClientSessionId: this.getClientSessionId.bind(this)\n };\n }\n\n getInstrumentation(name: string): Instrumentation {\n utility.requireArgument(name, 'name', 'string');\n if (name.length > maxInstrumentationLength) {\n // don't throw if it's too long. just add truncated suffix, but stay within max length\n name = name.substr(0, maxInstrumentationLengthBeforeTruncated) + truncatedText;\n }\n let instr: InstrumentationImpl | AppInstrumentationImpl = this._instruments.get(name);\n if (!instr) {\n instr = new InstrumentationImpl(this, name);\n this._instruments.set(name, instr);\n } else if (instr === this._appInstr) {\n throw new Error(`The instrumentation name ${name} is being used by the app.`);\n }\n return instr;\n }\n\n get appName(): string {\n return this._appInstr?.name;\n }\n\n // This is an internal method that needs to be public\n addLog(\n loggerName: string,\n schema: Schema,\n data: SchematizedData,\n timestamp: number,\n rootId: string,\n pagePayload: SchematizedPayload,\n appPayload: SchematizedPayload\n ): number {\n this._sequence += 1;\n\n // Schema sequences are per user-defined schema, not internal ones such as ActivityData\n const userSchema =\n schemaUtil.isInternal(schema) && data?.userPayload ? data.userPayload.schema : schema;\n const schemaId = schemaUtil.getSchemaId(userSchema);\n let schemaSequence = this._seqBySchema.get(schemaId) || 0;\n schemaSequence += 1;\n this._seqBySchema.set(schemaId, schemaSequence);\n\n const logMeta: LogMeta = {\n timestamp,\n rootId,\n sequence: this._sequence,\n schemaSequence,\n loggerName,\n pagePayload: pagePayload ? utility.clone(pagePayload) : undefined,\n appPayload: appPayload ? utility.clone(appPayload) : undefined,\n loggerAppName: this.appName,\n connectionType: utility.getConnectionType(),\n clientSessionId: this._clientSessionId\n };\n\n if (this._isBufferingEnabled) {\n // Always push to the buffer, even if no eligible collectors\n this._buffer.push({ schema, data: utility.clone(data), logMeta });\n }\n\n const eligibleCollectors: LogCollector[] = Array.from(this._logCollectors).filter(\n (collector: LogCollector) =>\n !this._forceDisabledLogCollectors.has(collector) &&\n !collector.getIsCollectDisabled?.()\n );\n\n if (eligibleCollectors.length > 0) {\n for (const collector of eligibleCollectors) {\n // Make a copy of the aguments passed to the collectors lest they change them.\n const dataClone: SchematizedData = utility.clone(data);\n let failures: number = this._logCollectorFailures.get(collector) || 0;\n\n try {\n collector.collect(schema, dataClone, logMeta);\n // if it got here it means it succeeded/didn't throw so we want to decrement the failure count\n if (failures > 0) {\n this._logCollectorFailures.set(collector, failures - 1);\n }\n } catch (err) {\n failures += 1;\n // If a collector fails too much we just disable it\n if (failures >= NextgenImpl._collectorFailureLimit) {\n this._forceDisabledLogCollectors.add(collector);\n if (this._appInstr && (typeof err === 'string' || err instanceof Error)) {\n this._appInstr.error(err);\n }\n } else {\n this._logCollectorFailures.set(collector, failures);\n // We can't log an error here, or the same collector will immediately be called\n // again, likely resulting in repeat exceptions until the collector gets disabled.\n }\n }\n }\n }\n return this._sequence;\n }\n\n getBuffer(): BufferedLog[] {\n return this._buffer;\n }\n\n disableBuffering(): void {\n this._isBufferingEnabled = false;\n this._buffer = [];\n }\n\n getClickTracker(): AutomaticClickTracker {\n return this._autoClickTracker;\n }\n\n getDefaultInstrumentationContext(): InstrumentationContext {\n return {\n rootId: this._appInstr?.getSingleRootActivityId(),\n isRootActivitySampled: this._appInstr?.isSingleRootActivitySampled()\n };\n }\n\n activateClickTracker(): void {\n if (typeof document !== 'undefined') {\n if (!this._autoClickTracker) {\n this._autoClickTracker = new AutomaticClickTracker(this._appInstr, document);\n }\n this._autoClickTracker.activate();\n }\n }\n\n deactivateClickTracker(): void {\n if (this._autoClickTracker) {\n this._autoClickTracker.deactivate();\n // In case activateClickTracker is called later with a different instrumentation\n this._autoClickTracker = undefined;\n }\n }\n\n registerLogCollector(collector: LogCollector, options?: LogCollectorOptions): void {\n utility.requireArgument(collector, 'collector');\n if (this._logCollectors.has(collector)) {\n return;\n }\n this._logCollectors.add(collector);\n this._logCollectorFailures.set(collector, 0);\n if (\n (!collector.getIsCollectDisabled || !collector.getIsCollectDisabled()) &&\n options &&\n options.retroactive\n ) {\n for (const log of this._buffer) {\n collector.collect(log.schema, log.data, log.logMeta);\n }\n }\n }\n\n registerMetricsCollector(collector: MetricsCollector): void {\n utility.requireArgument(collector, 'collector');\n if (this._metricsCollector) {\n throw new Error('A metrics Collector is already registered.');\n }\n this._metricsCollector = collector;\n this._metricsCollector.receiveMetricsExtractors({\n getAllUpCounters: this._getAllUpCounters.bind(this),\n getAllValueRecorders: this._getAllValueRecorders.bind(this),\n getAllBucketHistograms: this._getAllBucketHistograms.bind(this)\n });\n }\n\n private _getAllUpCounters(): Metric<number>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getUpCounters()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n private _getAllValueRecorders(): Metric<number[]>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getValueRecorders()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n private _getAllBucketHistograms(): BucketMetric<number[]>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getBucketHistograms()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n registerForLogPrompt(listener: LogPromptListener): void {\n this._logCollectionListeners.add(listener);\n }\n\n promptLogCollection(reason: string): void {\n for (const listener of this._logCollectionListeners.keys()) {\n try {\n listener(reason);\n } catch (err) {\n if (!utility.isProduction) {\n throw err;\n }\n }\n }\n }\n\n getClientSessionId(): string {\n return this._clientSessionId;\n }\n}\n","import {\n IdleDetector,\n Instrumentation,\n InstrumentedAppMethods,\n InstrumentedAppOptions\n} from './interfaces';\nimport { NextgenImpl } from './library/NextgenImpl';\nimport { utility } from 'o11y/shared';\n\nexport class Index {\n private _nextgen: NextgenImpl;\n // We are lazily initializing the singleton to allow any options to be processed\n // before the instantiation.\n private get _lazyNextGen(): NextgenImpl {\n if (!this._nextgen) {\n this._nextgen = new NextgenImpl(this._idleDetector);\n }\n return this._nextgen;\n }\n\n constructor(private readonly _idleDetector: IdleDetector) {\n utility.requireArgument(_idleDetector, '_idleDetector');\n }\n\n public registerInstrumentedApp(\n name: string,\n options?: InstrumentedAppOptions\n ): InstrumentedAppMethods {\n if (!options || options.isProduction !== false) {\n // Do this before construction\n // Production by default\n utility.markProduction();\n }\n const retVal: InstrumentedAppMethods = this._lazyNextGen.registerApp(name, options);\n if (options) {\n this._nextgen.appPayloadProvider = options.appPayloadProvider;\n this._nextgen.pagePayloadProvider = options.pagePayloadProvider;\n }\n return retVal;\n }\n\n public getInstrumentation(name?: string): Instrumentation {\n return this._lazyNextGen.getInstrumentation(name);\n }\n}\n\nexport const time = utility.time.bind(utility);\n","import { Environment, LogCollector, LogMeta, Schema } from '../interfaces';\nimport { SchematizedData, schemaUtil } from 'o11y/shared';\n\ntype ColorMap = Record<string, string>;\n\nconst bgColorMap: ColorMap = {\n Error: 'Crimson',\n Activity: 'CadetBlue',\n InstrumentedEvent: 'DarkOliveGreen',\n O11ySample: 'BlueViolet'\n};\nconst colorMap: ColorMap = {\n Error: 'white',\n Activity: 'white',\n InstrumentedEvent: 'white',\n O11ySample: 'white'\n};\nconst defaultColor = 'black';\nconst defaultBgColor = 'Gainsboro';\n\nexport class ConsoleCollector implements LogCollector {\n constructor(environment?: Environment) {\n if (environment) {\n this._log('ConsoleCollector', environment);\n }\n }\n\n collect(schema: Schema, data: SchematizedData, logMeta: LogMeta): void {\n let label, color, bgColor;\n if (schema.namespace === 'sf.instrumentation') {\n label = schema.name;\n color = colorMap[schema.name] || defaultColor;\n bgColor = bgColorMap[schema.name] || defaultBgColor;\n } else {\n label = schemaUtil.getSchemaId(schema);\n }\n\n this._log(label, data, logMeta, color, bgColor);\n }\n\n private _log(\n label: string,\n first?: unknown,\n second?: unknown,\n color: string = defaultColor,\n bgColor: string = defaultBgColor\n ): void {\n const css = `color:${color};background-color:${bgColor}`;\n // eslint-disable-next-line no-console\n console.log(\n `%cO11Y%c ${label}`,\n 'color:white;background-color:#FF6600;font-weight:bold',\n css,\n first || '',\n second || ''\n );\n }\n}\n","// auto-generated\nexport const version = '244.7.0';\n","// This is the file that exports all `o11y` module level exports.\nimport { idleDetectorReportSchema } from 'o11y_schema/sf_instrumentation';\nimport { IdleDetector, IdleDetectorReport } from './interfaces';\nimport { IdleDetectorImpl } from './library/IdleDetectorImpl';\nimport { time, Index } from './index';\n\nexport const idleDetector: IdleDetector = new IdleDetectorImpl({\n logThreshold: 300,\n reportListener: (report: IdleDetectorReport) => {\n idleDetectorInstr?.log(idleDetectorReportSchema, report);\n },\n errorListener: (e: unknown, text?: string) => {\n idleDetectorInstr?.error(e, text);\n }\n});\nconst index = new Index(idleDetector); // singleton\nconst registerInstrumentedApp = index.registerInstrumentedApp.bind(index);\nconst getInstrumentation = index.getInstrumentation.bind(index);\n\nconst idleDetectorInstr = getInstrumentation('IdleDetector');\n\nexport { registerInstrumentedApp, getInstrumentation, time };\nexport { ConsoleCollector } from './console-collector/ConsoleCollector';\nexport { version as _version } from './version';\n"],"names":["simpleSchema","error","errorSchema","activitySchema","instrumentedEventSchema","idleDetectorReportSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../../../../../../node_modules/o11y_schema/sf_instrumentation/activity.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/error.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/idle_detector_report.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/instrumented_event.js","../../../../../../node_modules/o11y_schema/sf_instrumentation/simple.js","../../../../src/library/TaskerImpl.ts","../../../../src/library/IdleDetectorImpl.ts","../../../../src/library/Tracing.ts","../../../../src/library/TimerOverride.ts","../../../../src/library/ActivityImpl.ts","../../../../src/library/ActivityNoOp.ts","../../../../src/library/DomEventHelpers.ts","../../../../src/library/LogValidator.ts","../../../../src/library/BucketHistogramImpl.ts","../../../../src/library/UpCounterImpl.ts","../../../../src/library/ValueRecorderImpl.ts","../../../../src/library/SizeLimitedMap.ts","../../../../src/library/MetricsImpl.ts","../../../../src/library/MockObj.ts","../../../../src/library/InstrumentationImpl.ts","../../../../src/library/RootActivityImpl.ts","../../../../src/library/RootActivityNoOp.ts","../../../../src/library/AppInstrumentationImpl.ts","../../../../src/library/AutomaticClickTracker.ts","../../../../src/library/NextgenImpl.ts","../../../../src/index.ts","../../../../src/console-collector/ConsoleCollector.ts","../../../../src/version.ts","../../../../src/client.ts"],"sourcesContent":["export const activity={namespace:\"sf.instrumentation\",name:\"Activity\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Activity\":{\"reserved\":[[5,5],[7,7]],\"fields\":{\"duration\":{\"id\":3,\"type\":\"double\"},\"stopReason\":{\"id\":6,\"type\":\"string\"},\"isRoot\":{\"id\":8,\"type\":\"bool\"},\"timerOverridden\":{\"id\":12,\"type\":\"uint32\"},\"name\":{\"options\":{\"(meta.max_length)\":25},\"id\":2,\"type\":\"string\"},\"isSampled\":{\"id\":11,\"type\":\"bool\"},\"preRootId\":{\"id\":9,\"type\":\"string\"},\"id\":{\"id\":1,\"type\":\"string\"},\n\"userPayload\":{\"id\":4,\"type\":\"Payload\"},\"errorCount\":{\"id\":10,\"type\":\"uint32\"},\"parentId\":{\"id\":13,\"type\":\"string\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const error={namespace:\"sf.instrumentation\",name:\"Error\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Error\":{\"reserved\":[[5,5],[7,7]],\"fields\":{\"activityId\":{\"id\":6,\"type\":\"string\"},\"stack\":{\"id\":3,\"type\":\"string\"},\"name\":{\"id\":1,\"type\":\"string\"},\"message\":{\"options\":{\"(meta.max_length)\":200},\"id\":2,\"type\":\"string\"},\"userPayload\":{\"id\":4,\"type\":\"Payload\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const idle_detector_report={namespace:\"sf.instrumentation\",name:\"IdleDetectorReport\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"IdleDetectorReport\":{\"fields\":{\"listenerCount\":{\"id\":3,\"type\":\"uint32\"},\"busyTasks\":{\"rule\":\"repeated\",\"id\":5,\"type\":\"string\"},\"busyDurations\":{\"rule\":\"repeated\",\"id\":6,\"type\":\"double\"},\"pollableCount\":{\"id\":4,\"type\":\"uint32\"},\"pollCounts\":{\"rule\":\"repeated\",\"id\":8,\"type\":\"double\"},\"logThreshold\":{\"id\":2,\"type\":\"double\"},\"maxDuration\":{\"id\":1,\n\"type\":\"double\"},\"pollables\":{\"rule\":\"repeated\",\"id\":7,\"type\":\"string\"}}}}}}}}}};","export const instrumented_event={namespace:\"sf.instrumentation\",name:\"InstrumentedEvent\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"MouseEvent\":{\"fields\":{\"cancelable\":{\"id\":5,\"type\":\"bool\"},\"ctrlKey\":{\"id\":9,\"type\":\"bool\"},\"type\":{\"id\":25,\"type\":\"string\"},\"button\":{\"id\":3,\"type\":\"uint32\"},\"offsetX\":{\"id\":17,\"type\":\"uint32\"},\"eventPhase\":{\"id\":12,\"type\":\"uint32\"},\"shiftKey\":{\"id\":23,\"type\":\"bool\"},\"offsetY\":{\"id\":18,\"type\":\"uint32\"},\"composed\":{\"id\":8,\"type\":\"bool\"},\"altKey\":{\"id\":1,\n\"type\":\"bool\"},\"isTrusted\":{\"id\":13,\"type\":\"bool\"},\"buttons\":{\"id\":4,\"type\":\"uint32\"},\"movementY\":{\"id\":16,\"type\":\"uint32\"},\"clientY\":{\"id\":7,\"type\":\"uint32\"},\"clientX\":{\"id\":6,\"type\":\"uint32\"},\"movementX\":{\"id\":15,\"type\":\"uint32\"},\"defaultPrevented\":{\"id\":10,\"type\":\"bool\"},\"metaKey\":{\"id\":14,\"type\":\"bool\"},\"timeStamp\":{\"id\":24,\"type\":\"double\"},\"bubbles\":{\"id\":2,\"type\":\"bool\"},\"detail\":{\"id\":11,\"type\":\"int64\"},\"pageY\":{\"id\":20,\"type\":\"uint32\"},\"pageX\":{\"id\":19,\"type\":\"uint32\"},\"screenX\":{\"id\":21,\n\"type\":\"uint32\"},\"screenY\":{\"id\":22,\"type\":\"uint32\"}}},\"InstrumentedEvent\":{\"oneofs\":{\"event\":{\"oneof\":[\"mouseEvent\"]}},\"reserved\":[[4,4],\"xpath\",[6,6],[8,8]],\"fields\":{\"mouseEvent\":{\"id\":7,\"type\":\"MouseEvent\"},\"auto\":{\"id\":3,\"type\":\"bool\"},\"parentComponent\":{\"id\":2,\"type\":\"string\"},\"ownerComponent\":{\"id\":1,\"type\":\"string\"},\"userPayload\":{\"id\":5,\"type\":\"Payload\"},\"simplePath\":{\"id\":9,\"type\":\"string\"}}},\"Payload\":{\"fields\":{\"payload\":{\"id\":2,\"type\":\"bytes\"},\"schemaName\":{\"id\":1,\"type\":\"string\"}}}}}}}}}};","export const simple={namespace:\"sf.instrumentation\",name:\"Simple\",pbjsSchema:{\"nested\":{\"sf\":{\"nested\":{\"instrumentation\":{\"nested\":{\"Simple\":{\"fields\":{\"text\":{\"options\":{\"(meta.max_length)\":25},\"id\":1,\"type\":\"string\"}}}}}}}}}};","import { TaskerMulti, TaskerSingle } from '../interfaces/IdleDetector';\n\nexport type TaskDoneNotifier = () => void;\n\nexport class TaskerImpl implements TaskerSingle, TaskerMulti {\n private _busyCount = 0;\n private _isOk = true; // Once an error occurs, make operations no-op\n\n get isBusy(): boolean {\n return this._isOk ? this._busyCount > 0 : undefined;\n }\n\n constructor(\n public readonly name: string,\n initialCount: number,\n private readonly _doneCallback: TaskDoneNotifier,\n private readonly _overDoneCallback: TaskDoneNotifier\n ) {\n this._busyCount = initialCount;\n }\n\n add(): void {\n if (this._isOk) {\n this._busyCount += 1;\n }\n }\n done(): void {\n if (this._isOk) {\n if (this._busyCount > 0) {\n this._busyCount -= 1;\n if (!this._busyCount) {\n this._doneCallback();\n }\n } else {\n this._isOk = false;\n this._overDoneCallback();\n }\n }\n }\n}\n","import { IdleDetector, IdleDetectorOptions, IdleDetectorReport } from '../interfaces';\nimport {\n ErrorListener,\n IdleDetectedListener,\n IsBusyChecker,\n ReportListener,\n TaskerMulti,\n TaskerSingle\n} from '../interfaces/IdleDetector';\nimport { TaskerImpl } from './TaskerImpl';\nimport { utility } from 'o11y/shared';\n\nconst defaultLogThreshold = 300;\n\ntype TaskReportEntry = {\n name: string;\n start: number;\n end: number;\n};\n\ntype PollableReportEntry = {\n name: string;\n count: number;\n};\n\nexport class IdleDetectorImpl implements IdleDetector {\n private readonly _taskers = new Map<TaskerImpl, TaskReportEntry>();\n private readonly _listeners = new Set<IdleDetectedListener>();\n private readonly _busyCheckers = new Map<IsBusyChecker, string>();\n private readonly _logThreshold: number = defaultLogThreshold;\n private readonly _endedTasks = new Array<TaskReportEntry>();\n private readonly _pollableReport = new Array<PollableReportEntry>();\n private _firstCallbackTime: number;\n private _timerCheckQueued: NodeJS.Timeout;\n private readonly _reportListener: ReportListener;\n private readonly _errorListener: ErrorListener;\n\n constructor(options?: IdleDetectorOptions) {\n if (\n utility.requireArgumentIfDefined(\n options?.logThreshold,\n 'options.logThreshold',\n 'number'\n )\n ) {\n this._logThreshold = options.logThreshold;\n }\n\n if (\n utility.requireArgumentIfDefined(\n options?.reportListener,\n 'options.reportListener',\n 'function'\n )\n ) {\n this._reportListener = options.reportListener;\n }\n\n if (\n utility.requireArgumentIfDefined(\n options?.errorListener,\n 'options.errorListener',\n 'function'\n )\n ) {\n this._errorListener = options.errorListener;\n }\n }\n\n requestIdleDetectedCallback(callback: IdleDetectedListener): void {\n utility.requireArgument(callback, 'callback', 'function');\n if (this._listeners.size === 0) {\n this._firstCallbackTime = utility.time().perfNow;\n }\n this._listeners.add(callback);\n this._checkIfLoaded();\n }\n\n private _reportTaskEnded(tasker: TaskerImpl): void {\n // Report only if we have any listeners\n if (this._listeners.size) {\n const snapshot = Object.assign({}, this._taskers.get(tasker));\n this._endedTasks.push(snapshot);\n }\n }\n\n declareNotifierTaskSingle(name: string): TaskerSingle {\n utility.requireArgument(name, 'name', 'string');\n const tasker = this._addTasker(name, 1);\n\n const retVal: TaskerSingle = {\n get isBusy() {\n return tasker.isBusy;\n },\n done: () => {\n tasker.done();\n this._taskers.delete(tasker);\n }\n };\n\n return retVal;\n }\n\n declareNotifierTaskMulti(name: string, existingBusyCount = 0): TaskerMulti {\n utility.requireArgument(name, 'name', 'string');\n if (existingBusyCount !== undefined) {\n utility.requireArgument(existingBusyCount, 'existingBusyCount', 'number');\n\n if (!Number.isInteger(existingBusyCount) || existingBusyCount < 0) {\n throw new Error('existingBusyCount accepts only non-negative integers');\n }\n }\n const tasker = this._addTasker(name, existingBusyCount);\n\n const retVal: TaskerMulti = {\n get isBusy() {\n return tasker.isBusy;\n },\n add: () => {\n if (!tasker.isBusy) {\n const meta = this._taskers.get(tasker);\n meta.start = utility.time().perfNow;\n meta.end = undefined;\n }\n tasker.add();\n },\n done: tasker.done.bind(tasker) // Note: don't delete multi tasker\n };\n return retVal;\n }\n\n declarePollableTaskMulti(name: string, isBusyChecker: IsBusyChecker): void {\n utility.requireArgument(name, 'name', 'string');\n utility.requireArgument(isBusyChecker, 'isBusyChecker', 'function');\n\n this._busyCheckers.set(isBusyChecker, name);\n }\n\n private _addTasker(name: string, existingBusyCount: number): TaskerImpl {\n const tasker = new TaskerImpl(\n name,\n existingBusyCount,\n () => {\n // Done callback\n this._taskers.get(tasker).end = utility.time().perfNow;\n this._reportTaskEnded(tasker);\n this._checkIfLoaded();\n },\n () => {\n // Overdone callback\n this._errorListener?.(`Overdone: ${tasker.name}`);\n utility.noProdThrow(`Tasker '${tasker.name}' is done too many times.`);\n }\n );\n this._taskers.set(tasker, {\n name,\n start: existingBusyCount > 0 ? utility.time().perfNow : undefined,\n end: undefined\n });\n return tasker;\n }\n\n private _areAllNotifiersIdle(): boolean {\n return !Array.from(this._taskers.keys()).some((t) => t.isBusy);\n }\n\n private _getFirstBusyPollable(): string {\n const entry = Array.from(this._busyCheckers).find((entry) => {\n const isBusyChecker = entry[0];\n const name = entry[1];\n try {\n return isBusyChecker();\n } catch (e) {\n this._errorListener?.(e, `BusyChecker ${name}`);\n utility.noProdThrow(e);\n return false; // Not busy\n }\n });\n\n return entry ? entry[1] : undefined;\n }\n\n private _checkIfLoaded(): void {\n if (!this._listeners.size) {\n // bail out early. We don't have any callbacks queued\n return;\n }\n\n // We restart the idle timer check logic whenever we get an external\n // trigger that a resource was loaded since that would imply that more\n // work could be queued up and we want to be aware of that\n if (this._timerCheckQueued) {\n clearTimeout(this._timerCheckQueued);\n }\n\n if (this._areAllNotifiersIdle()) {\n // Enqueue two RAF to make sure nothing got queued in this js cycle\n // note the use of double setTimeout. We want our setTimeout to queue up after\n // any set timeouts queued within micro tasks that may run after processing this\n // xhr response.\n // Here's a sample timeline\n // .....[ Single Event Loop ].....................................\n // .....[XHR callback][checkIfLoaded][microtasks]-[1st setTimeout]....[2nd setTimeout]\n // ^\n // queue settimeout at the end of event loop --->|\n this._timerCheckQueued = setTimeout(() => {\n this._timerCheckQueued = setTimeout(() => {\n this._doubleCheck();\n }, 40);\n }, 0);\n }\n }\n\n private _doubleCheck(): void {\n this._timerCheckQueued = undefined;\n\n if (this._areAllNotifiersIdle()) {\n const pollableName: string = this._getFirstBusyPollable();\n if (pollableName !== undefined) {\n // we'll have to keep polling until polled operations finish\n this._addToPollableReport(pollableName);\n this._timerCheckQueued = setTimeout(() => {\n this._doubleCheck();\n }, 15);\n } else {\n // OK!! We are certified idle.\n const maxDuration = utility.time().perfNow - this._firstCallbackTime;\n\n // Take a snapshot of internal variables so that we don't get confused\n // if tasks are created or listeners or worse, get into an infinite loop\n // if idle is requested\n const listeners = Array.from(this._listeners.values());\n this._listeners.clear();\n\n this._firstCallbackTime = undefined;\n const endedTasks = this._endedTasks.splice(0);\n const pollableReport = this._pollableReport.splice(0);\n\n this._notify(listeners, maxDuration, endedTasks, pollableReport);\n }\n }\n }\n\n private _addToPollableReport(name: string): void {\n const lastEntry: PollableReportEntry = this._pollableReport.length\n ? this._pollableReport[this._pollableReport.length - 1]\n : undefined;\n\n if (lastEntry?.name === name) {\n lastEntry.count += 1;\n } else {\n this._pollableReport.push({\n name,\n count: 1\n });\n }\n }\n\n private _notify(\n listeners: IdleDetectedListener[],\n maxDuration: number,\n taskReport: Array<TaskReportEntry>,\n pollableReport: Array<PollableReportEntry>\n ): void {\n if (maxDuration >= this._logThreshold && this._reportListener) {\n const logData: IdleDetectorReport = this._getReport(\n maxDuration,\n listeners.length,\n taskReport,\n pollableReport\n );\n this._reportListener(logData);\n }\n listeners.reverse();\n\n const tsNow = utility.time().tsNow;\n for (const [index, listener] of listeners.entries()) {\n try {\n listener(tsNow);\n } catch (e) {\n this._errorListener?.(e, `Listener #${listeners.length - 1 - index}`);\n utility.noProdThrow(e);\n }\n }\n }\n\n getReport(): IdleDetectorReport {\n const perfNow = utility.time().perfNow;\n const maxDuration =\n this._firstCallbackTime > 0 ? perfNow - this._firstCallbackTime : undefined;\n\n const onGoingTasks: Array<TaskReportEntry> = Array.from(this._taskers.entries())\n .filter((e) => e[0].isBusy)\n .map((e) => ({\n name: e[1].name,\n start: e[1].start,\n end: perfNow\n }));\n return this._getReport(\n maxDuration,\n this._listeners.size,\n this._endedTasks.concat(onGoingTasks),\n this._pollableReport\n );\n }\n\n private _getReport(\n maxDuration: number,\n listenerCount: number,\n taskReport: Array<TaskReportEntry>,\n pollableReport: Array<PollableReportEntry>\n ): IdleDetectorReport {\n const sortedTaskers = taskReport\n .map((t) => ({\n name: t.name,\n duration: t.end - t.start\n }))\n .sort((a, b) => b.duration - a.duration);\n return {\n logThreshold: this._logThreshold,\n maxDuration,\n listenerCount,\n pollableCount: this._busyCheckers.size,\n busyTasks: sortedTaskers.map((t) => t.name),\n busyDurations: sortedTaskers.map((t) => t.duration),\n pollables: pollableReport.map((p) => p.name),\n pollCounts: pollableReport.map((p) => p.count)\n };\n }\n}\n","import { TraceHeaders, utility } from 'o11y/shared';\nimport {\n Instrumentation,\n TracingHeadersOptions,\n NetworkInstrumentationOptions,\n Activity\n} from '../interfaces';\nimport { IdleDetector, TaskerMulti } from '../interfaces/IdleDetector';\n\ntype FetchType = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\n\ntype O11yFetchOptions = {\n skipInstr?: boolean;\n};\n\ntype O11yFetchType = (\n input: RequestInfo | URL,\n init?: RequestInit & { o11y?: O11yFetchOptions }\n) => Promise<Response>;\n\ntype XhrType = {\n prototype: XMLHttpRequest;\n new (): XMLHttpRequest;\n readonly DONE: number;\n readonly HEADERS_RECEIVED: number;\n readonly LOADING: number;\n readonly OPENED: number;\n readonly UNSENT: number;\n};\n\ntype XhrOpenType = (\n method: string,\n url: string | URL,\n async?: boolean,\n username?: string | null,\n password?: string | null\n) => void;\n\ntype XhrSendType = (body?: Document | XMLHttpRequestBodyInit | null) => void;\n\ntype O11yInfo = {\n activity?: Activity;\n method?: string;\n url?: string;\n};\ninterface O11yXhr extends XMLHttpRequest {\n _o11y: O11yInfo;\n}\n\nconst defaultTraceIdLengthW3 = 32; // 32 Characters = 128 bits\nconst defaultTraceIdLengthB3 = 16; // 16 Characters = 64 bits\nconst defaultSpanIdLength = 16; // 16 Characters = 64 bits\n\n// Headers for W3 tracing (https://www.w3.org/TR/trace-context/#traceparent-header)\nconst headerTraceParent = 'traceparent';\n\n// Headers for B3 tracing (https://github.com/openzipkin/b3-propagation)\nconst headerB3 = 'b3';\nconst headerTraceId = 'X-B3-TraceId';\nconst headerSpanId = 'X-B3-SpanId';\nconst headerSampled = 'X-B3-Sampled';\nconst headerParentSpanId = 'X-B3-ParentSpanId';\n\nconst defaultActivityNameForFetch = 'fetch';\nconst defaultActivityNameForXhrSend = 'xhr_send';\n\nexport class Tracing {\n private static _global: typeof globalThis = utility.getGlobal();\n private static _originalFetch: FetchType;\n private static _originalXhr: XhrType;\n private static _originalXhrOpen: XhrOpenType;\n private static _originalXhrSend: XhrSendType;\n private static _isNetworkInstrumentationEnabled = false;\n private static _reqIndex = 0;\n\n constructor(\n private readonly _instr: Instrumentation,\n private readonly _idleDetector: IdleDetector\n ) {\n utility.requireArgument(_instr, '_instr', 'object');\n utility.requireArgument(_idleDetector, '_idleDetector', 'object');\n }\n\n private static _getB3CompactFormat(\n traceId: string,\n spanId: string,\n isSampled?: boolean,\n parentSpanId?: string\n ): string {\n // b3={TraceId}-{SpanId}-{SamplingState}-{ParentSpanId}\n // Note: last two fields are optional\n\n let b3 = `${traceId}-${spanId}`;\n\n if (isSampled !== undefined || parentSpanId !== undefined) {\n b3 += isSampled ? '-1' : '-0';\n if (parentSpanId !== undefined) {\n b3 += `-${parentSpanId}`;\n }\n }\n return b3;\n }\n\n private static _getW3CompactFormat(\n traceId: string,\n spanId: string,\n isSampled: boolean\n ): string {\n // traceparent={version}-{trace-id}-{parent-id}-{trace-flags}\n // \"in some tracing systems, parent-id is known as the span-id, where a span is the execution of a client request\"\n return `00-${traceId}-${spanId}-${isSampled ? '01' : '00'}`;\n }\n\n private static _conformTextAsId(text: string, numChars: number): string {\n // First validate\n text = text.toLowerCase();\n const len: number = text.length;\n for (let i = 0; i < len; i += 1) {\n const c = text[i];\n if (!(c >= 'a' && c <= 'f') && !(c >= '0' && c <= '9')) {\n throw new Error(`The text '${text}' has an invalid character at index #${i}`);\n }\n }\n\n if (len > numChars) {\n // Use the right-most characters per spec\n return text.substr(len - numChars);\n }\n if (len < numChars) {\n // Pad left with 0s per spec\n return text.padStart(numChars, '0');\n }\n return text;\n }\n\n public static getHeaders(\n traceId: string,\n spanId: string,\n isSampled?: boolean,\n options?: TracingHeadersOptions\n ): TraceHeaders {\n utility.requireArgument(traceId, 'traceId', 'string');\n utility.requireArgument(spanId, 'spanId', 'string');\n\n const useB3Headers: boolean = options?.useB3Headers;\n\n traceId = this._conformTextAsId(\n traceId,\n options?.traceIdEffectiveLength !== undefined\n ? options.traceIdEffectiveLength\n : useB3Headers\n ? defaultTraceIdLengthB3\n : defaultTraceIdLengthW3\n );\n spanId = this._conformTextAsId(spanId, defaultSpanIdLength);\n\n const parentSpanId =\n (options &&\n options.parentSpanId !== undefined &&\n this._conformTextAsId(options.parentSpanId, defaultSpanIdLength)) ||\n undefined;\n\n const headers: TraceHeaders = {};\n\n if (useB3Headers) {\n // By default, use non-compact\n const isCompact: boolean = options?.useCompactHeader;\n if (isCompact) {\n headers[headerB3] = this._getB3CompactFormat(\n traceId,\n spanId,\n isSampled,\n parentSpanId\n );\n } else {\n headers[headerTraceId] = traceId;\n headers[headerSpanId] = spanId;\n if (parentSpanId !== undefined) {\n headers[headerParentSpanId] = parentSpanId;\n }\n if (isSampled !== undefined) {\n headers[headerSampled] = isSampled ? '1' : '0';\n }\n }\n } else {\n headers[headerTraceParent] = this._getW3CompactFormat(traceId, spanId, isSampled);\n }\n\n return headers;\n }\n\n private _disableNetworkInstrumentation(): void {\n if (Tracing._isNetworkInstrumentationEnabled) {\n if (Tracing._originalFetch) {\n Tracing._global.fetch = Tracing._originalFetch;\n Tracing._originalFetch = undefined;\n }\n if (Tracing._originalXhr) {\n Tracing._global.XMLHttpRequest = Tracing._originalXhr;\n Tracing._originalXhr = undefined;\n }\n if (Tracing._originalXhrOpen) {\n Tracing._global.XMLHttpRequest.prototype.open = Tracing._originalXhrOpen;\n Tracing._originalXhrOpen = undefined;\n }\n if (Tracing._originalXhrSend) {\n Tracing._global.XMLHttpRequest.prototype.send = Tracing._originalXhrSend;\n Tracing._originalXhrSend = undefined;\n }\n Tracing._isNetworkInstrumentationEnabled = false;\n }\n }\n\n private _enableNetworkInstrumentation(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n if (typeof Tracing._global.fetch === 'function') {\n this._overrideFetch(instr, logErrors, activityName, useTracing, options, tasker);\n Tracing._isNetworkInstrumentationEnabled = true;\n }\n\n if (typeof Tracing._global.XMLHttpRequest === 'function') {\n this._overrideXhr(instr, logErrors, activityName, useTracing, options, tasker);\n Tracing._isNetworkInstrumentationEnabled = true;\n }\n }\n\n private static _getTraceHeaders(\n activity: Activity | undefined,\n options: TracingHeadersOptions | undefined,\n method: string,\n url: string\n ): TraceHeaders {\n let traceHeaders: TraceHeaders = activity?.getTraceHeaders(options) || {};\n if (typeof options?.headerProcessor === 'function') {\n traceHeaders = options.headerProcessor({\n method,\n url,\n defaultHeaders: traceHeaders\n });\n } else if (typeof window === 'object') {\n // By default, only send to the original domain on browsers\n let newUrl;\n try {\n newUrl = new URL(url); // no base argument - will throw on non-absolute URLs\n } catch {\n // Relative URL.\n }\n // Check host (not hostname) to ensure port numbers match too.\n if (newUrl && newUrl.host !== window.location.host) {\n traceHeaders = undefined;\n }\n }\n return traceHeaders || {};\n }\n\n private _overrideFetch(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n Tracing._originalFetch = Tracing._global.fetch;\n const o11yFetch: O11yFetchType = async (url, reqOptions, ...restArgs) => {\n let activity: Activity;\n try {\n tasker?.add();\n const ofo: O11yFetchOptions = reqOptions?.o11y;\n if (!ofo?.skipInstr) {\n activity = instr.startActivity(activityName || defaultActivityNameForFetch);\n } else {\n Tracing._reqIndex += 1;\n try {\n // Best effort\n if (typeof url === 'string') {\n const urlObj = new URL(url);\n const kv = `o11y=${Tracing._reqIndex}`;\n urlObj.search += urlObj.search.startsWith('?') ? `&${kv}` : kv;\n url = urlObj.toString();\n }\n } catch {}\n }\n if (reqOptions) {\n delete reqOptions.o11y;\n }\n\n if (useTracing) {\n reqOptions = reqOptions || {};\n const traceHeaders = Tracing._getTraceHeaders(\n activity,\n options,\n reqOptions.method,\n url?.toString()\n );\n reqOptions.headers = Object.assign(reqOptions.headers || {}, traceHeaders);\n }\n\n return await Tracing._originalFetch.call(\n Tracing._global,\n url,\n reqOptions,\n ...restArgs\n );\n } catch (ex) {\n if (logErrors) {\n if (activity) {\n activity.error(ex);\n } else {\n instr.error(ex);\n }\n }\n throw ex;\n } finally {\n activity?.stop();\n tasker?.done();\n }\n };\n Tracing._global.fetch = o11yFetch;\n }\n\n private _overrideXhr(\n instr: Instrumentation,\n logErrors: boolean,\n activityName: string,\n useTracing: boolean,\n options: TracingHeadersOptions,\n tasker: TaskerMulti\n ): void {\n Tracing._originalXhr = Tracing._global.XMLHttpRequest;\n Tracing._originalXhrOpen = Tracing._originalXhr.prototype.open;\n Tracing._originalXhrSend = Tracing._originalXhr.prototype.send;\n\n Tracing._originalXhr.prototype.open = function (\n this: O11yXhr,\n method: string,\n url: string | URL,\n async?: boolean,\n username?: string | null,\n password?: string | null\n ) {\n this._o11y = {\n method,\n url: url?.toString()\n };\n\n Tracing._originalXhrOpen.call(this, method, url, async, username, password);\n };\n\n Tracing._originalXhr.prototype.send = function (this: O11yXhr, ...args) {\n let activity: Activity;\n try {\n tasker?.add();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr: O11yXhr = this;\n xhr._o11y = xhr._o11y || {};\n xhr._o11y.activity = activity = instr.startActivity(\n activityName || defaultActivityNameForXhrSend\n );\n if (useTracing) {\n const traceHeaders = Tracing._getTraceHeaders(\n activity,\n options,\n xhr._o11y.method,\n xhr._o11y.url\n );\n\n Object.entries(traceHeaders).forEach((entry) => {\n xhr.setRequestHeader(entry[0], entry[1]);\n });\n }\n Tracing._originalXhrSend.call(this, ...args);\n } catch (ex) {\n if (logErrors) {\n if (activity) {\n activity.error(ex);\n } else {\n instr.error(ex);\n }\n }\n activity?.stop();\n tasker?.done();\n throw ex;\n }\n };\n\n const xhrProxy = new Proxy<XhrType>(Tracing._originalXhr, {\n construct(target: XhrType) {\n const newXhr = new target() as O11yXhr;\n\n // Be the first in the event chain\n newXhr.addEventListener('load', () => {\n newXhr._o11y?.activity?.stop();\n tasker?.done();\n });\n newXhr.addEventListener(\n 'error',\n (__err: ProgressEvent<XMLHttpRequestEventTarget>) => {\n const error = new Error('XHR Network-Level Error');\n const activity = newXhr._o11y?.activity;\n if (activity) {\n if (logErrors) {\n activity.error(error);\n }\n activity.stop();\n } else if (logErrors) {\n instr.error(error);\n }\n tasker?.done();\n }\n );\n newXhr.addEventListener('abort', () => {\n newXhr._o11y?.activity?.discard();\n tasker?.done();\n });\n return newXhr;\n }\n });\n\n Tracing._global.XMLHttpRequest = xhrProxy;\n }\n\n networkInstrumentation(options: boolean | NetworkInstrumentationOptions): void {\n utility.requireArgument(options, 'options', ['boolean', 'object']);\n\n // First disable it if necessary, so we can use the new options if it was already enabled\n this._disableNetworkInstrumentation();\n if (options) {\n const tracingOptions: NetworkInstrumentationOptions =\n typeof options === 'object' ? options : {};\n\n let tasker: TaskerMulti = undefined;\n if (utility.definedValueOrDefault(tracingOptions.useTasker, true)) {\n tasker = this._idleDetector?.declareNotifierTaskMulti('o11y network');\n }\n\n this._enableNetworkInstrumentation(\n utility.definedValueOrDefault(tracingOptions.instrumentation, this._instr),\n utility.definedValueOrDefault(tracingOptions.logErrors, true),\n tracingOptions.activityName,\n utility.definedValueOrDefault(tracingOptions.useTracing, true),\n tracingOptions.tracingHeadersOptions,\n tasker\n );\n }\n }\n\n resetRequestCounter(): void {\n Tracing._reqIndex = 0;\n }\n}\n","export enum TimerOverride {\n none,\n start,\n stop,\n both\n}\n","import { PublicSafety, SchematizedData, TraceHeaders, utility } from 'o11y/shared';\n\nimport {\n Activity,\n ActivityDetail,\n ActivityStopOptions,\n Schema,\n TracingHeadersOptions\n} from '../interfaces';\nimport { Tracing } from './Tracing';\nimport { TimerOverride } from './TimerOverride';\nexport const timedout = 'timedout';\nexport const terminated = 'terminated';\nexport const discarded = 'discarded';\n\nconst stopReason = {\n timedout,\n terminated,\n discarded\n};\n\nexport type onActivityStop = (detail: ActivityDetail) => void;\nexport type onActivityError = (error: unknown, detail: ActivityDetail) => void;\n\nexport class ActivityImpl implements Activity {\n protected readonly _id: string;\n private readonly _safety: PublicSafety;\n private readonly _usePerf: boolean;\n protected static _count = 0;\n private readonly _perfId: string;\n private readonly _perfName: string;\n private _startTimestamp: number;\n private _startPerfTime: number;\n private _stopPerfTime: number;\n private _stopReason: string;\n private _timer: NodeJS.Timer;\n private _errorCount = 0;\n private _timerOverridden: TimerOverride = TimerOverride.none;\n\n constructor(\n protected readonly _name: string,\n protected readonly _rootId: string,\n private readonly _onStopped: onActivityStop,\n private readonly _onError: onActivityError,\n timeout?: number,\n id?: string,\n protected readonly _isSampled?: boolean\n ) {\n const { tsNow, perfNow } = utility.time();\n\n ActivityImpl._count += 1;\n this._id = id || utility.generateUniqueId();\n\n this._usePerf =\n typeof performance !== 'undefined' &&\n typeof performance.mark === 'function' &&\n typeof performance.measure === 'function';\n if (this._usePerf) {\n this._perfName = `${this._name}__${ActivityImpl._count}`;\n this._perfId = `${this._name}__${this.id}`;\n try {\n performance.mark(this._perfId);\n } catch {\n this._usePerf = false;\n }\n }\n\n this._startTimestamp = tsNow;\n this._startPerfTime = perfNow;\n\n if (timeout > 0) {\n this._timer = setTimeout(() => {\n this._stopReason = this._stopReason || stopReason.timedout;\n this.stop();\n }, timeout);\n }\n this._safety = new PublicSafety();\n }\n\n get id(): string {\n return this._id;\n }\n\n getId(): string {\n return this.id;\n }\n\n getRootId(): string {\n return this._rootId;\n }\n\n get stopReason(): string {\n return this._stopReason;\n }\n\n error(error: unknown, userSchemaOrText?: Schema | string, userData?: SchematizedData): void {\n this._safety.tryCatch(() => {\n this._errorCount += 1;\n if (typeof error === 'string') {\n error = new Error(error);\n }\n this._onError(error, this._getDetail(userSchemaOrText, userData));\n });\n }\n\n stop(\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgumentIfDefined(userSchemaOrText, 'userSchemaOrText', [\n 'object',\n 'string'\n ]);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n\n if (options) {\n const perfStart: number = options.perfStartOverride;\n const isStartTimeDefined = utility.requireArgumentIfDefined(\n perfStart,\n 'options.perfStartOverride',\n 'number'\n );\n\n const perfStop: number = options.perfStopOverride;\n const isStopTimeDefined = utility.requireArgumentIfDefined(\n perfStop,\n 'options.perfStopOverride',\n 'number'\n );\n\n if (isStartTimeDefined && perfStart < 0) {\n throw new Error('perfStartOverride, if defined, must be >= 0');\n }\n\n if (\n isStopTimeDefined &&\n (perfStop < 0 ||\n perfStop < (isStartTimeDefined ? perfStart : this._startPerfTime))\n ) {\n throw new Error('perfStopOverride, if defined, must be >= 0 and >= startTime');\n }\n }\n\n this._stopInternal(userSchemaOrText, userData, options);\n });\n }\n\n private _overrideTimer(perfStartTime?: number, perfStopTime?: number): void {\n if (perfStartTime !== undefined) {\n this._startTimestamp = Math.round(\n this._startTimestamp - (this._startPerfTime - perfStartTime)\n );\n this._startPerfTime = perfStartTime;\n this._setTimerOverride(TimerOverride.start);\n }\n\n if (perfStopTime !== undefined) {\n this._stopPerfTime = perfStopTime;\n this._setTimerOverride(TimerOverride.stop);\n }\n }\n\n private _setTimerOverride(value: TimerOverride): void {\n if (\n this._timerOverridden === TimerOverride.both ||\n this._timerOverridden === value ||\n value === TimerOverride.none\n ) {\n return;\n }\n this._timerOverridden =\n this._timerOverridden === TimerOverride.none ? value : TimerOverride.both;\n }\n\n private _stopInternal(\n userSchemaOrText: Schema | string,\n userData: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n // First things first.\n const stopPerfTime = utility.perfNow();\n if (this._usePerf) {\n try {\n // Use a more user-friendly name for measure.\n if (this._stopReason !== stopReason.discarded) {\n performance.measure(this._perfName, this._perfId);\n }\n performance.clearMarks(this._perfId);\n performance.clearMeasures(this._perfName);\n } catch {}\n }\n\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n if (this.isStopped) {\n // Already stopped\n return;\n }\n\n if (options) {\n this._overrideTimer(options.perfStartOverride, options.perfStopOverride);\n }\n\n // We may set this already in override so check that here\n this._stopPerfTime =\n this._timerOverridden === TimerOverride.none ||\n this._timerOverridden === TimerOverride.start\n ? stopPerfTime\n : this._stopPerfTime;\n\n const activityDetail: ActivityDetail = this._getDetail(userSchemaOrText, userData);\n this._onStopped(activityDetail);\n }\n\n get isStopped(): boolean {\n return this._stopPerfTime !== undefined;\n }\n\n discard(): void {\n this._safety.tryCatch(() => {\n this._stopReason = this._stopReason || stopReason.discarded;\n this.stop();\n });\n }\n\n terminate(\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ActivityStopOptions\n ): void {\n this._safety.tryCatch(() => {\n this._stopReason = this._stopReason || stopReason.terminated;\n this.stop(userSchemaOrText, userData, options);\n });\n }\n\n getIsSampled(): boolean {\n return this._isSampled || false;\n }\n\n protected _getDetail(\n userSchemaOrText: Schema | string,\n userData: SchematizedData\n ): ActivityDetail {\n return {\n id: this._id,\n rootId: this._rootId,\n name: this._name,\n userSchemaOrText: userSchemaOrText,\n userData,\n stopReason: this._stopReason,\n startTimestamp: this._startTimestamp,\n startPerfTime: this._startPerfTime,\n stopPerfTime: this._stopPerfTime,\n errorCount: this._errorCount,\n isSampled: this.getIsSampled(),\n timerOverridden: this._timerOverridden\n };\n }\n\n public getTraceHeaders(options: TracingHeadersOptions): TraceHeaders {\n // Normally, the root activity ID is the traceId.\n // If the activity is root, it's ID is (also) the traceId.\n // If the activity has no root, it's ID is (also) the traceId. i.e. It creates its own trace.\n const spanId = this.id;\n const traceId = this._rootId || spanId;\n\n return Tracing.getHeaders(traceId, spanId, this.getIsSampled(), options);\n }\n\n getStartTimestamp(): number {\n return this._startTimestamp;\n }\n\n getStartPerfTime(): number {\n return this._startPerfTime;\n }\n\n getStopPerfTime(): number {\n return this._stopPerfTime;\n }\n}\n","import { Activity, TracingHeadersOptions } from '../interfaces';\n\nconst id: string = new Array(16).fill(0).join('');\nclass ActivityNoOp implements Activity {\n getId(): string {\n return id;\n }\n getRootId(): string {\n return undefined;\n }\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n error(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n stop(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n discard(): void {}\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n terminate(): void {}\n\n getIsSampled(): boolean {\n return false;\n }\n getTraceHeaders(__options: TracingHeadersOptions): Record<string, string> {\n return {};\n }\n getStartTimestamp(): number {\n return undefined;\n }\n getStartPerfTime(): number {\n return undefined;\n }\n getStopPerfTime(): number {\n return undefined;\n }\n}\n\nexport const activityNoOp = Object.freeze(new ActivityNoOp());\n","import { SchematizedPayload } from '../interfaces';\nimport { InstrumentedEventData, MouseEventData } from '../interfaces-private';\nimport { DomEventData } from '../types/TypeDefinitions-Private';\nimport { schemaUtil, utility } from 'o11y/shared';\n\nexport class DomEventHelpers {\n getInstrumentedEventData(\n eventData: DomEventData,\n handledBy: HTMLElement,\n userPayload: SchematizedPayload\n ): InstrumentedEventData {\n const instrumentedEvent: InstrumentedEventData = {\n ownerComponent: handledBy.tagName,\n parentComponent: handledBy.parentElement?.tagName || undefined,\n event: eventData,\n simplePath: utility.getXpath(handledBy)\n };\n\n if (userPayload) {\n instrumentedEvent.userPayload = schemaUtil.makePayload(\n userPayload.schema,\n userPayload.payload,\n true\n );\n }\n\n return instrumentedEvent;\n }\n\n getMouseEventData(e: MouseEvent): MouseEventData {\n return {\n altKey: e.altKey,\n bubbles: e.bubbles,\n button: e.button,\n buttons: e.buttons,\n cancelable: e.cancelable,\n clientX: e.clientX,\n clientY: e.clientY,\n composed: e.composed,\n defaultPrevented: e.defaultPrevented,\n detail: e.detail,\n eventPhase: e.eventPhase,\n isTrusted: e.isTrusted,\n timeStamp: e.timeStamp,\n type: e.type,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n movementX: e.movementX,\n movementY: e.movementY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n pageX: e.pageX,\n pageY: e.pageY,\n screenX: e.screenX,\n screenY: e.screenY,\n shiftKey: e.shiftKey\n };\n }\n}\n\nconst singleton = new DomEventHelpers();\nexport const domEventHelpers = singleton;\n","import { IType, Schema, SchemaTokens } from '../interfaces';\nimport {\n PbjsNestedObjectDescriptor,\n SchematizedData,\n SchematizedDataValue,\n schemaUtil,\n utility\n} from 'o11y/shared';\n\n// These are hard-coded limits at the app-level. They may be overridden with a corresponding\n// option at the field level in the schema metadata.\nexport const maxStringLengthAppLimit = 10000; // For strings\nexport const maxItemCountAppLimit = 10000; // For arrays\n\nconst minUnsigned = 0;\nconst maxFourBytes = 2147483647;\nconst minFourBytes = -2147483648;\nconst maxFourBytesUnsigned = 4294967295;\nconst maxEightBytes = 9223372036854776000;\nconst minEightBytes = -9223372036854776001;\nconst maxEightBytesUnsigned = 18446744073709552000;\n\nexport const enum ErrorCode {\n notAnError = 0, // To ensure truthy-checks work for proper error codes.\n arrayExpected,\n incorrectType,\n infiniteNumber,\n numberOutOfRange,\n malformedBytesArray,\n stringLengthOverflowAppLimit,\n itemCountOverflowAppLimit,\n stringLengthOverflow,\n stringLengthUnderflow,\n itemCountOverflow,\n itemCountUnderflow,\n integerExpected,\n invalidItemValue\n}\n\nexport class ValidationEntry {\n constructor(\n public errorCode: ErrorCode,\n public fields: string[],\n public expected?: string,\n public received?: string\n ) {}\n\n asMessage(schemaId: string): string {\n const key: string =\n this.fields[0] +\n this.fields\n .slice(1)\n .reduce(\n (prev, current) =>\n Number(current) >= 0 ? `${prev}[${current}]` : `${prev}.${current}`,\n ''\n );\n let msg: string;\n\n switch (this.errorCode) {\n case ErrorCode.arrayExpected:\n msg = 'Repeated field must be an array';\n break;\n case ErrorCode.incorrectType:\n msg = `Expected type ${this.expected} but received type ${this.received}`;\n break;\n case ErrorCode.infiniteNumber:\n msg = 'Value must be finite';\n break;\n case ErrorCode.numberOutOfRange:\n msg = 'Value is out of range for its type';\n break;\n case ErrorCode.malformedBytesArray:\n msg = 'Bytes array is malformed';\n break;\n case ErrorCode.stringLengthOverflowAppLimit:\n msg = 'Exceeded app limit for maximum string length';\n break;\n case ErrorCode.itemCountOverflowAppLimit:\n msg = 'Exceeded app limit for item count';\n break;\n case ErrorCode.integerExpected:\n msg = 'Value must be an integer';\n break;\n case ErrorCode.invalidItemValue:\n msg = 'Values like null or undefined are not allowed for items in repeated fields';\n break;\n // TODO: The following should be used when we start validating against schema metadata\n // case ErrorCode.stringLengthOverflow:\n // msg = 'Exceeded maximum string length';\n // break;\n // case ErrorCode.stringLengthUnderflow:\n // msg = 'Failed minimum string length';\n // break;\n // case ErrorCode.itemCountOverflow:\n // msg = 'Exceeded maximum item count';\n // break;\n // case ErrorCode.itemCountUnderflow:\n // msg = 'Failed minimum item count';\n // break;\n default:\n msg = `Unknown error code: ${this.errorCode}`;\n break;\n }\n\n return `Schema ${schemaId} on field \"${key}\": ${msg}`;\n }\n}\n\ntype NumberRangeOptions = {\n min: number;\n max: number;\n isInt: boolean;\n isItem: boolean;\n};\n\nclass LogValidator {\n public validate(schema: Schema, data: SchematizedData, noThrow = false): ValidationEntry[] {\n const schemaTokens: SchemaTokens = schemaUtil.checkSchema(schema);\n utility.requireArgument(data, 'data', 'object');\n\n const schemaId: string = schemaUtil.getSchemaId(schema);\n\n const errorInfos = new Array<ValidationEntry>();\n\n const nestedSchema: PbjsNestedObjectDescriptor = schemaUtil.getTypes(schema);\n this._validateFields(\n errorInfos,\n [],\n data,\n nestedSchema[schemaTokens.message] as IType,\n nestedSchema,\n schemaId\n );\n\n if (errorInfos.length && !noThrow) {\n throw new Error(errorInfos[0].asMessage(schemaId));\n }\n\n return errorInfos;\n }\n\n private _validateFields(\n errorInfos: ValidationEntry[],\n fieldNames: string[],\n data: SchematizedData,\n message: IType,\n descriptor: PbjsNestedObjectDescriptor,\n schemaId: string\n ): void {\n const oneofs = message.oneofs || {};\n const fields = message.fields || {};\n for (const key in data) {\n const value = data[key];\n // if it's null or undefined we don't need to match\n if (value !== undefined && value !== null) {\n const mft: (fieldType: string, isRepeated?: boolean, isItem?: boolean) => void = (\n fieldType,\n isRepeated,\n isItem\n ) =>\n this._matchFieldTypes(\n errorInfos,\n [...fieldNames, key],\n value,\n fieldType,\n descriptor,\n schemaId,\n key,\n isRepeated,\n isItem\n );\n\n if (oneofs[key]) {\n mft(fields[oneofs[key].oneof[0]].type);\n } else if (fields[key]) {\n mft(fields[key].type, fields[key].rule === 'repeated');\n }\n // if the field is not present in the schema then we ignore it and will drop it later\n }\n }\n }\n\n private _matchFieldTypes(\n errorInfos: ValidationEntry[],\n fieldNames: string[],\n fieldDataValue: SchematizedDataValue,\n protobufType: string,\n descriptor: PbjsNestedObjectDescriptor,\n schemaId: string,\n key: string,\n isRepeated: boolean,\n isItem: boolean // true if inside a repeated field\n ): void {\n let errorCode: ErrorCode;\n\n if (isRepeated) {\n if (Array.isArray(fieldDataValue)) {\n if (fieldDataValue.length > maxItemCountAppLimit) {\n errorCode = ErrorCode.itemCountOverflowAppLimit;\n }\n\n fieldDataValue.forEach((value, index: number) => {\n // if it's repeated they should all be the same type so we can just run it as is\n this._matchFieldTypes(\n errorInfos,\n [...fieldNames, index.toString()],\n value,\n protobufType,\n descriptor,\n schemaId,\n key,\n undefined, // rule\n true // isItem\n );\n });\n } else {\n errorCode = ErrorCode.arrayExpected;\n }\n } else if (fieldDataValue == null || fieldDataValue === undefined) {\n if (isItem) {\n // Null and undefined are allowed unless they're in an array\n errorCode = ErrorCode.invalidItemValue;\n }\n } else {\n let numOpts: NumberRangeOptions;\n let javaScriptType: string;\n switch (protobufType) {\n case 'string':\n javaScriptType = 'string';\n if (fieldDataValue.length > maxStringLengthAppLimit) {\n errorCode = ErrorCode.stringLengthOverflowAppLimit;\n }\n break;\n case 'bytes':\n javaScriptType = 'object';\n if (!(fieldDataValue instanceof Uint8Array)) {\n errorCode = ErrorCode.malformedBytesArray;\n }\n break;\n case 'bool':\n javaScriptType = 'boolean';\n break;\n case 'uint32':\n javaScriptType = 'number';\n numOpts = {\n min: minUnsigned,\n max: maxFourBytesUnsigned,\n isInt: true,\n isItem\n };\n break;\n case 'int32':\n case 'sint32':\n case 'fixed32':\n case 'sfixed32':\n javaScriptType = 'number';\n numOpts = {\n min: minFourBytes,\n max: maxFourBytes,\n isInt: true,\n isItem\n };\n break;\n case 'uint64':\n javaScriptType = 'number';\n numOpts = {\n min: minUnsigned,\n max: maxEightBytesUnsigned,\n isInt: true,\n isItem\n };\n break;\n case 'fixed64':\n case 'sfixed64':\n case 'int64':\n case 'sint64':\n javaScriptType = 'number';\n numOpts = {\n min: minEightBytes,\n max: maxEightBytes,\n isInt: true,\n isItem\n };\n break;\n case 'double':\n case 'float':\n javaScriptType = 'number';\n numOpts = {\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n isInt: false,\n isItem\n };\n break;\n default:\n if (new Set(Object.keys(descriptor)).has(protobufType)) {\n //now we check this schema\n this._validateFields(\n errorInfos,\n fieldNames,\n fieldDataValue,\n descriptor[protobufType] as IType,\n descriptor,\n schemaId\n );\n javaScriptType = 'object';\n }\n break;\n }\n\n if (typeof fieldDataValue !== javaScriptType) {\n errorInfos.push(\n new ValidationEntry(\n ErrorCode.incorrectType,\n fieldNames,\n protobufType,\n typeof fieldDataValue\n )\n );\n } else if (numOpts) {\n if (numOpts.isInt && !Number.isFinite(fieldDataValue)) {\n errorCode = ErrorCode.infiniteNumber;\n } else if (numOpts.isInt && !Number.isInteger(fieldDataValue)) {\n errorCode = ErrorCode.integerExpected;\n } else if (\n !(!numOpts.isInt && Number.isNaN(fieldDataValue)) &&\n !(fieldDataValue >= numOpts.min && fieldDataValue <= numOpts.max)\n ) {\n errorCode = ErrorCode.numberOutOfRange;\n }\n }\n }\n if (errorCode) {\n errorInfos.push(new ValidationEntry(errorCode, fieldNames));\n }\n }\n}\n\nexport const logValidator = new LogValidator();\n","import { BucketHistogram } from '../interfaces/BucketHistogram';\nimport { MetricsTags, utility } from 'o11y/shared';\nimport { BucketMetric } from 'src/interfaces';\n\nexport class BucketHistogramImpl implements BucketMetric<number[]>, BucketHistogram {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _values = new Array<number>();\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags,\n private readonly _buckets: number[]\n ) {\n this._createdOn = utility.time().tsNow;\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number[] {\n return this.values;\n }\n\n getBuckets(): number[] {\n return this.buckets;\n }\n\n get buckets(): number[] {\n return this._buckets.slice(0, this._buckets.length);\n }\n\n get values(): number[] {\n return this._values.slice(0, this._values.length);\n }\n\n record(value: number): void {\n if (typeof value === 'number') {\n this._values.push(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('BucketHistogram can only record numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._values = [];\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): MetricsTags {\n return this._tags;\n }\n}\n","import { Metric } from '../interfaces/Metric';\nimport { UpCounter } from '../interfaces/UpCounter';\nimport { MetricsTags, utility } from 'o11y/shared';\n\nexport class UpCounterImpl implements Metric<number>, UpCounter {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _value = 0;\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags\n ) {\n this._createdOn = utility.time().tsNow;\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number {\n return this._value;\n }\n\n increment(value = 1): void {\n if (typeof value === 'number' && value > 0) {\n this._value += Math.round(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('UpCounter can only increment positive numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._value = 0;\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): Readonly<MetricsTags> {\n return this._tags;\n }\n}\n","import { Metric } from '../interfaces/Metric';\nimport { ValueRecorder } from '../interfaces/ValueRecorder';\nimport { MetricsTags, utility } from 'o11y/shared';\n\nexport class ValueRecorderImpl implements Metric<number[]>, ValueRecorder {\n private readonly _createdOn: number;\n private _lastUpdatedOn: number;\n private _values = new Array<number>();\n\n constructor(\n private readonly _name: string,\n private readonly _ownerName: string,\n private readonly _ownerAppName: string,\n private readonly _tags: MetricsTags\n ) {\n this._createdOn = utility.time().tsNow;\n // TODO: Add sampling/throttling to put a cap on the size of the array\n }\n\n getName(): string {\n return this._name;\n }\n\n getCreatedOn(): number {\n return this._createdOn;\n }\n\n getLastUpdatedOn(): number {\n return this._lastUpdatedOn;\n }\n\n getData(): number[] {\n return this.values;\n }\n\n get values(): number[] {\n return this._values.slice(0, this._values.length);\n }\n\n record(value: number): void {\n if (typeof value === 'number') {\n this._values.push(value);\n this._lastUpdatedOn = utility.time().tsNow;\n return;\n }\n\n throw new Error('ValueRecorder can only record numbers.');\n }\n\n reset(): void {\n this._lastUpdatedOn = undefined;\n this._values = [];\n }\n\n getOwnerName(): string {\n return this._ownerName;\n }\n\n getOwnerAppName(): string {\n return this._ownerAppName;\n }\n\n getTags(): MetricsTags {\n return this._tags;\n }\n}\n","export class SizeLimitedMap<K, V> {\n private readonly _map = new Map<K, V>();\n\n private _maxSize: number;\n constructor(maxSize: number) {\n if (typeof maxSize === 'number' && maxSize > 0) {\n this._maxSize = Math.ceil(maxSize);\n return;\n }\n throw new Error('maxSize must be a positive number');\n }\n\n get maxSize(): number {\n return this._maxSize;\n }\n\n get(key: K): V {\n return this._map.get(key);\n }\n\n has(key: K): boolean {\n return this._map.has(key);\n }\n\n set(key: K, value: V): boolean {\n if (this.has(key) || this._map.size < this.maxSize) {\n this._map.set(key, value);\n return true;\n }\n return false;\n }\n\n getElements(): V[] {\n return Array.from(this._map.values());\n }\n\n clear(): void {\n this._map.clear();\n }\n}\n","import { MetricsReporter, UpCounter, ValueRecorder } from '../interfaces';\n\nimport { BucketHistogramImpl } from './BucketHistogramImpl';\nimport { UpCounterImpl } from './UpCounterImpl';\nimport { ValueRecorderImpl } from './ValueRecorderImpl';\nimport { SizeLimitedMap } from './SizeLimitedMap';\nimport { MetricsTags } from 'o11y/shared';\n\nconst maxCounters = 1000;\nconst maxValueRecorders = 500;\nconst maxBucketHistograms = 500;\n\nenum MetricType {\n Counter,\n Percentile,\n BucketHistogram\n}\n\nexport class MetricsImpl implements MetricsReporter {\n private readonly _upCounters = new SizeLimitedMap<string, UpCounterImpl>(maxCounters);\n private readonly _valueRecorders = new SizeLimitedMap<string, ValueRecorderImpl>(\n maxValueRecorders\n );\n private readonly _bucketHistograms = new SizeLimitedMap<string, BucketHistogramImpl>(\n maxBucketHistograms\n );\n\n constructor(\n private readonly _ownerName: string,\n private readonly _getOwnerAppName: () => string\n ) {}\n\n incrementCounter(\n operation: string,\n increment: number,\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._tagError(tags, hasError);\n this._upCounter(operation, tags).increment(increment);\n }\n\n trackValue(operation: string, value: number, hasError = false, tags: MetricsTags = {}): void {\n this._tagError(tags, hasError);\n this._valueRecorder(operation, tags).record(value);\n }\n\n bucketValue(\n operation: string,\n value: number,\n buckets: number[],\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._tagError(tags, hasError);\n this._bucketHistogram(operation, tags, buckets).record(value);\n }\n\n private _bucketHistogram(name: string, tags: MetricsTags, buckets: number[]): ValueRecorder {\n const { key, sortedTags } = this._getKeyAndSortedTags(\n name,\n tags,\n MetricType.BucketHistogram\n );\n let instrument = this._bucketHistograms.get(key);\n if (!instrument) {\n instrument = new BucketHistogramImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags,\n buckets\n );\n if (!this._bucketHistograms.set(key, instrument)) {\n throw new Error(`Max size of ${maxBucketHistograms} exceeded for BucketHistograms`);\n }\n }\n return instrument;\n }\n\n private _upCounter(name: string, tags: MetricsTags): UpCounter {\n const { key, sortedTags } = this._getKeyAndSortedTags(name, tags, MetricType.Counter);\n let instrument = this._upCounters.get(key);\n if (!instrument) {\n instrument = new UpCounterImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags\n );\n if (!this._upCounters.set(key, instrument)) {\n throw new Error(`Max size of ${maxCounters} exceeded for UpCounters`);\n }\n }\n return instrument;\n }\n\n private _valueRecorder(name: string, tags: MetricsTags): ValueRecorder {\n const { key, sortedTags } = this._getKeyAndSortedTags(name, tags, MetricType.Percentile);\n let instrument = this._valueRecorders.get(key);\n if (!instrument) {\n instrument = new ValueRecorderImpl(\n name,\n this._ownerName,\n this._getOwnerAppName(),\n sortedTags\n );\n if (!this._valueRecorders.set(key, instrument)) {\n throw new Error(`Max size of ${maxValueRecorders} exceeded for ValueRecorders`);\n }\n }\n return instrument;\n }\n\n getUpCounters(): UpCounterImpl[] {\n return this._upCounters.getElements();\n }\n\n getValueRecorders(): ValueRecorderImpl[] {\n return this._valueRecorders.getElements();\n }\n\n getBucketHistograms(): BucketHistogramImpl[] {\n return this._bucketHistograms.getElements();\n }\n\n private _tagError(tags: MetricsTags, hasError: boolean): void {\n tags.status = hasError === true ? 'error' : 'success';\n }\n\n private _getKeyAndSortedTags(\n operation: string,\n tags: MetricsTags,\n metricType: MetricType\n ): { key: string; sortedTags: MetricsTags } {\n // This method should be called after any manipulation of tags\n const sortedTags = Object.keys(tags)\n .sort()\n .reduce((prev: MetricsTags, curr: string) => {\n prev[curr] = tags[curr];\n return prev;\n }, {});\n const key = `${MetricType[metricType]}:${operation}${JSON.stringify(sortedTags)}`;\n return {\n key,\n sortedTags\n };\n }\n}\n","export class MockBase {\n // All mock objects should extend this\n public readonly isMock = true;\n}\n","import {\n activitySchema,\n errorSchema,\n instrumentedEventSchema,\n simpleSchema\n} from 'o11y_schema/sf_instrumentation';\n\nimport {\n LightningElement,\n LogPromptListener,\n MetricsTags,\n PublicSafety,\n SchematizedData,\n schemaUtil,\n utility\n} from 'o11y/shared';\n\nimport {\n Activity,\n ActivityApiOptions,\n ActivityDetail,\n ApiOptions,\n BucketMetric,\n DomEventApiOptions,\n Instrumentation,\n InstrumentationContext,\n Metric,\n MetricsReporter,\n PayloadProvider,\n Schema,\n SchematizedPayload\n} from '../interfaces';\nimport { ActivityData, ErrorData, InstrumentedEventData } from '../interfaces-private';\n\nimport { ActivityImpl, discarded, onActivityError, onActivityStop } from './ActivityImpl';\nimport { activityNoOp } from './ActivityNoOp';\nimport { AutomaticClickTracker } from './AutomaticClickTracker';\nimport { domEventHelpers } from './DomEventHelpers';\nimport {\n ErrorCode,\n ValidationEntry,\n logValidator,\n maxItemCountAppLimit,\n maxStringLengthAppLimit\n} from './LogValidator';\nimport { MetricsImpl } from './MetricsImpl';\nimport { MockBase } from './MockObj';\nimport { NextgenImpl } from './NextgenImpl';\n\n// @W-10241440, disable timeouts\nconst maxActivityDurationMsecs: number = undefined;\nconst reservedMetricCharacters = ['`'];\nconst reservedMetricNames = {\n internalError: 'o11y-error'\n};\nconst denyListMetricNames = Object.freeze(Array.from(Object.values(reservedMetricNames)));\n\nexport class InstrumentationImpl implements Instrumentation, MetricsReporter {\n protected static readonly defaultAppName = 'APP_NOT_REGISTERED';\n private readonly _metrics: MetricsImpl;\n private readonly _onActivityStoppedCallback: onActivityStop =\n this._handleActivityStop.bind(this);\n protected readonly _onActivityErrorCallback: onActivityError =\n this._handleActivityError.bind(this);\n protected readonly _safety: PublicSafety;\n private readonly _simpleTextMaxLength: number;\n\n constructor(private readonly _nextGen: NextgenImpl, private readonly _name: string) {\n for (const reservedChar of reservedMetricCharacters) {\n if (this._name.indexOf(reservedChar) >= 0) {\n throw new Error(`Name cannot include the reserved character \"${reservedChar}\"`);\n }\n }\n\n this._safety = new PublicSafety({\n increment: (increment) => this._incrementError(increment)\n });\n\n this._metrics = this._initMetrics();\n\n const simpleTextOptions = schemaUtil.getOptions(simpleSchema, 'Simple', 'text');\n this._simpleTextMaxLength = simpleTextOptions\n ? simpleTextOptions['(meta.max_length)']\n : maxStringLengthAppLimit;\n }\n\n protected _initMetrics(): MetricsImpl {\n return new MetricsImpl(\n this.name,\n () => this._nextGen.appName || InstrumentationImpl.defaultAppName\n );\n }\n\n private _incrementError(increment = 1): void {\n this._metrics.incrementCounter(reservedMetricNames.internalError, increment, false);\n }\n\n get name(): string {\n return this._name;\n }\n\n /**\n * This function is to allow for convenience calls to our API, where a string can\n * be provided instead of an actual Schema. In that case, we wrap the text in\n * a built-in simple schema.\n * @param userSchemaOrText Schema or string.\n * @param userData\n * @param onlyIfBoth If true, then both the schema and the data must be specified.\n * @returns\n */\n protected _wrapUserPayload(\n userSchemaOrText: Schema | string,\n userData: SchematizedData,\n onlyIfBoth = false\n ): SchematizedPayload {\n let userSchema: Schema;\n if (typeof userSchemaOrText === 'string') {\n userSchema = simpleSchema;\n if (userSchemaOrText) {\n userData = {\n text: userSchemaOrText.substring(0, this._simpleTextMaxLength)\n };\n } else {\n userData = undefined;\n }\n } else {\n userSchema = userSchemaOrText;\n }\n\n return schemaUtil.makePayload(userSchema, userData, onlyIfBoth);\n }\n\n private _getEffectiveRootId(options?: ApiOptions): string {\n return (\n options?.instrumentationContext?.rootId ??\n this._nextGen.getDefaultInstrumentationContext().rootId\n );\n }\n\n /**\n *\n * @param userSchema The schema of the second argument. Also used as the basis for auto-generated\n * counters for log calls using the same schema.\n * @param userData Optional data that complies with the provided schema\n */\n log(userSchemaOrText: Schema | string, userData?: SchematizedData, options?: ApiOptions): void {\n this._safety.tryCatch(() => {\n const timestamp = utility.time().tsNow;\n utility.requireArgument(userSchemaOrText, 'userSchemaOrText', ['object', 'string']);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n const userPayload = this._wrapUserPayload(userSchemaOrText, userData);\n\n if (userPayload?.payload) {\n this._logInternal(\n this.name,\n userPayload.schema,\n userPayload.payload,\n timestamp,\n this._getEffectiveRootId(options)\n );\n }\n });\n }\n\n protected _logInternal(\n loggerName: string,\n schema: Schema,\n data: SchematizedData,\n timestamp: number,\n rootId?: string\n ): number {\n this._checkInputs(schema, data);\n const appPayload: SchematizedPayload = this._getPayloadFromProvider(\n this._nextGen.appPayloadProvider\n );\n const pagePayload: SchematizedPayload = this._getPayloadFromProvider(\n this._nextGen.pagePayloadProvider\n );\n\n return this._nextGen.addLog(\n loggerName,\n schema,\n data,\n timestamp,\n rootId,\n pagePayload,\n appPayload\n );\n }\n\n error(\n error: unknown,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: ApiOptions\n ): void {\n return this._safety.tryCatch(() => {\n utility.requireArgumentIfDefined(userSchemaOrText, 'userSchemaOrText', [\n 'object',\n 'string'\n ]);\n utility.requireArgumentIfDefined(userData, 'userData', 'object');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n const rootId: string = this._getEffectiveRootId(options);\n this._errorInternal(error, userSchemaOrText, userData, undefined, rootId);\n });\n }\n\n protected _errorInternal(\n err: unknown,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n activityId?: string,\n rootActivityId?: string\n ): number {\n const loggedTimestamp = utility.time().tsNow;\n\n let error: Error;\n if (err instanceof Error) {\n error = err;\n } else {\n let msg: string;\n if (err === undefined || err === null || typeof err.toString !== 'function') {\n msg = 'UNKNOWN';\n } else {\n msg = err.toString();\n }\n error = new Error(msg);\n }\n\n const userPayload = this._wrapUserPayload(userSchemaOrText, userData, true);\n\n const errorData: ErrorData = {\n name: error.name,\n message: error.message,\n stack: error.stack,\n userPayload,\n activityId\n };\n\n return this._logInternal(\n this.name,\n errorSchema,\n errorData,\n loggedTimestamp,\n rootActivityId\n );\n }\n\n startActivity(name: string, options?: ApiOptions): Activity {\n return this._safety.tryCatchReturn(() => {\n utility.requireArgument(name, 'name');\n utility.requireArgumentIfDefined(options, 'options', 'object');\n\n let context: InstrumentationContext;\n\n const rootId: string = options?.instrumentationContext?.rootId;\n if (rootId) {\n context = {\n rootId,\n isRootActivitySampled: options.instrumentationContext.isRootActivitySampled\n };\n } else {\n // By definition, an activity is sampled if root activity is sampled\n context = this._nextGen.getDefaultInstrumentationContext();\n }\n const activity: Activity = new ActivityImpl(\n name,\n context.rootId,\n this._onActivityStoppedCallback,\n this._onActivityErrorCallback,\n maxActivityDurationMsecs,\n undefined,\n context.isRootActivitySampled\n );\n return activity;\n }, activityNoOp);\n }\n\n protected _getActivityData(detail: ActivityDetail): ActivityData {\n const userPayload = this._wrapUserPayload(detail.userSchemaOrText, detail.userData, true);\n\n return {\n id: detail.id,\n name: detail.name,\n duration: detail.stopPerfTime - detail.startPerfTime,\n stopReason: detail.stopReason,\n userPayload,\n errorCount: detail.errorCount,\n isSampled: detail.isSampled,\n timerOverridden: detail.timerOverridden\n };\n }\n\n private _handleActivityStop(detail: ActivityDetail): void {\n if (detail.stopReason === discarded) {\n return;\n }\n const activityData: ActivityData = this._getActivityData(detail);\n\n this._logActivity(activityData, detail.startTimestamp, detail.rootId);\n }\n\n protected _logActivity(\n activityData: ActivityData,\n startTimestamp: number,\n rootId?: string\n ): void {\n this._logInternal(this.name, activitySchema, activityData, startTimestamp, rootId);\n }\n\n private _handleActivityError(error: unknown, detail: ActivityDetail): void {\n this._errorInternal(\n error,\n detail.userSchemaOrText,\n detail.userData,\n detail.id,\n detail.rootId\n );\n }\n\n private _getPayloadFromProvider(provider: PayloadProvider): SchematizedPayload {\n const payload: SchematizedPayload = provider?.getPayload() || undefined;\n if (payload) {\n this._checkInputs(payload.schema, payload.payload);\n }\n return payload;\n }\n\n domEvent(\n event: Event,\n handledBy: HTMLElement | LightningElement,\n userSchemaOrText?: Schema | string,\n userData?: SchematizedData,\n options?: DomEventApiOptions\n ): void {\n this._safety.tryCatch(() => {\n const tsNow = utility.time().tsNow;\n\n utility.requireArgument(event, 'event', [Event, MockBase]);\n // TODO: Using 'object' instead of 'LightningElement' for now (no imports)\n utility.requireArgument(handledBy, 'handledBy', [HTMLElement, 'object']);\n\n let htmlElement;\n if (handledBy instanceof HTMLElement) {\n htmlElement = handledBy;\n } else {\n handledBy = handledBy as LightningElement;\n // Convenience for LightningElement developers who pass \"this\" in handledBy.\n // Get the underlying HTML element\n if (handledBy.template?.host instanceof HTMLElement) {\n htmlElement = handledBy.template.host;\n } else {\n utility.requireArgument(undefined, 'handledBy');\n }\n }\n\n const userPayload: SchematizedPayload = this._wrapUserPayload(\n userSchemaOrText,\n userData,\n true\n );\n\n const rootId: string = this._getEffectiveRootId(options);\n\n switch (event.type) {\n case 'click': {\n const mouseEvent = event as MouseEvent;\n\n // If the user has called domEvent API on this event explicitly,\n // then we don't need to log it by default.\n const acd: AutomaticClickTracker = this._nextGen.getClickTracker();\n if (acd) {\n acd.markEventHandled(mouseEvent);\n }\n\n const mouseEventData = domEventHelpers.getMouseEventData(mouseEvent);\n\n const instrumentedEvent: InstrumentedEventData =\n domEventHelpers.getInstrumentedEventData(\n mouseEventData,\n htmlElement,\n userPayload\n );\n instrumentedEvent.auto = options?._auto;\n\n this._logInternal(\n this.name,\n instrumentedEventSchema,\n instrumentedEvent,\n tsNow,\n rootId\n );\n break;\n }\n default:\n throw new Error(utility.notImplemented);\n }\n });\n }\n\n incrementCounter(\n operation: string,\n increment = 1,\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(increment, 'increment', 'number');\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n this._metrics.incrementCounter(operation, increment, hasError, tags);\n });\n }\n\n trackValue(operation: string, value: number, hasError = false, tags: MetricsTags = {}): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(value, 'value', 'number');\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n\n this._metrics.trackValue(operation, value, hasError, tags);\n });\n }\n\n bucketValue(\n operation: string,\n value: number,\n buckets: number[] = [],\n hasError = false,\n tags: MetricsTags = {}\n ): void {\n this._safety.tryCatch(() => {\n utility.requireArgument(operation, 'operation', 'string');\n utility.checkForDenyListedValues(operation, 'operation', denyListMetricNames);\n utility.checkForReservedCharacters(operation, 'operation', reservedMetricCharacters);\n utility.requireArgument(value, 'value', 'number');\n utility.requireArgument(buckets, 'buckets', Array);\n Object.entries(buckets).forEach((entry) => {\n utility.requireArgument(entry[1], `Bucket value for '${entry[0]}'`, 'number');\n });\n utility.requireArgument(hasError, 'hasError', 'boolean');\n utility.requireArgument(tags, 'tags', 'object');\n Object.entries(tags).forEach((entry) => {\n utility.requireArgument(entry[1], `Tag value for '${entry[0]}'`, [\n 'string',\n 'number',\n 'boolean'\n ]);\n });\n\n this._metrics.bucketValue(operation, value, buckets, hasError, tags);\n });\n }\n\n private _checkInputs(schema: Schema, data: SchematizedData): void {\n schemaUtil.checkSchema(schema);\n utility.requireArgument(data, 'data', 'object');\n\n let vEntries: ValidationEntry[];\n let savedUserPayload: SchematizedPayload;\n if (data.userPayload !== undefined && schemaUtil.isInternal(schema)) {\n // For internal schemas where we have nested messages, we need to temporarily\n // remove userPayload, since it's not yet encoded. (If left in place, it would fail\n // validation since it's not UInt8Array). We validate it separately here.\n savedUserPayload = data.userPayload;\n vEntries = logValidator.validate(\n savedUserPayload.schema,\n savedUserPayload.payload,\n true\n );\n this._processValidationResults(\n schemaUtil.getSchemaId(savedUserPayload.schema),\n savedUserPayload.payload,\n vEntries\n );\n data.userPayload = undefined;\n }\n\n vEntries = logValidator.validate(schema, data, true);\n this._processValidationResults(schemaUtil.getSchemaId(schema), data, vEntries);\n\n if (savedUserPayload !== undefined) {\n // Restore userPayload\n data.userPayload = savedUserPayload;\n }\n }\n\n private _processValidationResults(\n schemaId: string,\n data: SchematizedData,\n ventries: ValidationEntry[]\n ): void {\n for (let i = 0; i < ventries.length; i += 1) {\n const ei = ventries[i];\n\n if (\n ei.errorCode == ErrorCode.stringLengthOverflowAppLimit ||\n ei.errorCode == ErrorCode.itemCountOverflowAppLimit\n ) {\n const lfi = ei.fields.length - 1;\n const obj = this._traverseFields(data, ei.fields.slice(0, lfi));\n const field = ei.fields[lfi];\n if (ei.errorCode == ErrorCode.stringLengthOverflowAppLimit) {\n obj[field] = obj[field].substring(0, maxStringLengthAppLimit);\n } else {\n obj[field].splice(maxItemCountAppLimit);\n }\n } else {\n throw new Error(ei.asMessage(schemaId));\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _traverseFields(data: SchematizedData, fields: string[]): any {\n if (!fields.length) {\n return data;\n }\n return this._traverseFields(data[fields[0]], fields.slice(1));\n }\n\n getUpCounters(): Metric<number>[] {\n return this._metrics.getUpCounters().filter((m) => m.getLastUpdatedOn());\n }\n\n getValueRecorders(): Metric<number[]>[] {\n return this._metrics.getValueRecorders().filter((m) => m.getLastUpdatedOn());\n }\n\n getBucketHistograms(): BucketMetric<number[]>[] {\n return this._metrics.getBucketHistograms().filter((m) => m.getLastUpdatedOn());\n }\n\n registerForLogPrompt(listener: LogPromptListener): void {\n utility.requireArgument(listener, 'listener', 'function');\n this._nextGen.registerForLogPrompt(listener);\n }\n\n activity<T>(name: string, execute: (act: Activity) => T, options?: ActivityApiOptions): T {\n const act = this.startActivity(name, options);\n try {\n return execute(act);\n } catch (err) {\n act.error(err, options?.errorPayload?.schema, options?.errorPayload?.payload);\n throw err;\n } finally {\n act.stop(options?.stopPayload?.schema, options?.stopPayload?.payload);\n }\n }\n\n async activityAsync<T>(\n name: string,\n execute: (act: Activity) => Promise<T>,\n options?: ActivityApiOptions\n ): Promise<T> {\n const act = this.startActivity(name, options);\n try {\n return await execute(act);\n } catch (err) {\n act.error(err, options?.errorPayload?.schema, options?.errorPayload?.payload);\n throw err;\n } finally {\n act.stop(options?.stopPayload?.schema, options?.stopPayload?.payload);\n }\n }\n}\n","import { RootActivity, Schema } from '../interfaces';\nimport { ActivityDetail } from '../interfaces/ActivityDetail';\nimport { ActivityImpl, onActivityError, onActivityStop } from './ActivityImpl';\nimport { SchematizedData, utility } from 'o11y/shared';\n\nexport class RootActivityImpl extends ActivityImpl implements RootActivity {\n constructor(\n name: string,\n onStopped: onActivityStop,\n onError: onActivityError,\n rootId?: string,\n _isSampled?: boolean\n ) {\n super(\n name,\n undefined,\n onStopped,\n onError,\n undefined,\n rootId || utility.generateUniqueId(32),\n _isSampled\n );\n }\n\n private _preRootId: string;\n get preRootId(): string {\n return this._preRootId;\n }\n set preRootId(value: string) {\n this._preRootId = value;\n }\n\n protected _getDetail(userSchema: Schema, userData: SchematizedData): ActivityDetail {\n const detail = super._getDetail(userSchema, userData);\n detail.isRoot = true;\n detail.preRootId = this.preRootId;\n return detail;\n }\n}\n","import { RootActivity, TracingHeadersOptions } from '../interfaces';\n\nconst rootId: string = new Array(32).fill(0).join('');\nclass RootActivityNoOp implements RootActivity {\n getId(): string {\n return rootId;\n }\n getRootId(): string {\n return undefined;\n }\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n error(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n stop(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n discard(): void {}\n\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n terminate(): void {}\n\n getIsSampled(): boolean {\n return false;\n }\n getTraceHeaders(__options: TracingHeadersOptions): Record<string, string> {\n return {};\n }\n getStartTimestamp(): number {\n return undefined;\n }\n getStartPerfTime(): number {\n return undefined;\n }\n getStopPerfTime(): number {\n return undefined;\n }\n}\n\nexport const rootActivityNoOp = Object.freeze(new RootActivityNoOp());\n","import { ActivityDetail, RootActivity } from '../interfaces';\nimport { ActivityData } from '../interfaces-private';\nimport { discarded, onActivityStop } from './ActivityImpl';\nimport { InstrumentationImpl } from './InstrumentationImpl';\nimport { RootActivityImpl } from './RootActivityImpl';\nimport { rootActivityNoOp } from './RootActivityNoOp';\nimport { utility } from 'o11y/shared';\nimport { MetricsImpl } from './MetricsImpl';\nimport { NextgenImpl } from './NextgenImpl';\n\nexport class AppInstrumentationImpl extends InstrumentationImpl {\n private _singleRootActivity: RootActivityImpl; // Not used when _allowMulti = true\n\n private readonly _onRootActivityStoppedCallback: onActivityStop =\n this._handleRootActivityStop.bind(this);\n\n constructor(_nextGen: NextgenImpl, _name: string, private readonly _allowMulti: boolean) {\n super(_nextGen, _name);\n }\n\n startRootActivity(name: string, rootId?: string, isSampled?: boolean): RootActivity {\n return this._safety.tryCatchReturn(() => {\n utility.requireArgument(name, 'name');\n\n const newRootActivity = new RootActivityImpl(\n name,\n this._onRootActivityStoppedCallback,\n this._onActivityErrorCallback,\n rootId,\n isSampled\n );\n\n if (!this._allowMulti) {\n if (this._singleRootActivity && !this._singleRootActivity.isStopped) {\n const preRootId = this._singleRootActivity.getId();\n this._singleRootActivity.terminate();\n newRootActivity.preRootId = preRootId;\n }\n this._singleRootActivity = newRootActivity;\n }\n\n return newRootActivity as RootActivity;\n }, rootActivityNoOp);\n }\n\n private _handleRootActivityStop(detail: ActivityDetail): void {\n if (detail.stopReason === discarded) {\n return;\n }\n\n const activityData: ActivityData = this._getActivityData(detail);\n\n this._logActivity(activityData, detail.startTimestamp);\n this._singleRootActivity = undefined;\n }\n\n protected _getActivityData(detail: ActivityDetail): ActivityData {\n const activityData: ActivityData = super._getActivityData(detail);\n activityData.isRoot = detail.isRoot;\n activityData.preRootId = detail.preRootId;\n return activityData;\n }\n\n getSingleRootActivityId(): string {\n return this._singleRootActivity?.getId();\n }\n\n isSingleRootActivitySampled(): boolean {\n return this._singleRootActivity?.getIsSampled();\n }\n\n protected _initMetrics(): MetricsImpl {\n return new MetricsImpl(this.name, () => this.name);\n }\n}\n","import { Instrumentation } from '../interfaces';\nimport { utility } from 'o11y/shared';\n\nconst pathLimit = 5;\n\nexport class AutomaticClickTracker {\n private _ignoredEvent: Event;\n private _isActive = false;\n private readonly _boundClickListener = this._clickListener.bind(this);\n\n constructor(private readonly _instr: Instrumentation, private readonly _doc: Document) {\n utility.requireArgument(_instr, '_instr');\n utility.requireArgument(_doc, '_doc');\n }\n\n activate(): void {\n if (!this._isActive) {\n this._doc.addEventListener('click', this._boundClickListener, true);\n this._isActive = true;\n }\n }\n\n deactivate(): void {\n if (this._isActive) {\n this._doc.removeEventListener('click', this._boundClickListener, true);\n this._isActive = false;\n }\n }\n\n markEventHandled(event: MouseEvent): void {\n this._ignoredEvent = event;\n }\n\n private _clickListener(event: MouseEvent): void {\n let eventTargets: EventTarget[] = event.composedPath?.();\n if (!eventTargets || !eventTargets.length) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n eventTargets = (event as any).path;\n }\n const handledBy: HTMLElement = this._getClickableElement(eventTargets);\n\n if (handledBy) {\n // Immediate\n setTimeout(() => {\n if (event !== this._ignoredEvent) {\n this._instr.domEvent(event, handledBy, undefined, undefined, {\n _auto: true\n });\n }\n });\n }\n }\n\n private _getClickableElement(path: EventTarget[]): HTMLElement {\n const limit = path ? Math.min(path.length, pathLimit) : 0;\n for (let x = 0; x < limit; x += 1) {\n const currentElement = path[x] as HTMLElement;\n const tagName = currentElement.tagName?.toLowerCase();\n if (tagName === 'a' || tagName === 'button') {\n return currentElement;\n }\n if (tagName === 'input') {\n const inputElement = currentElement as HTMLInputElement;\n if (inputElement.type?.toLowerCase() === 'button') {\n return inputElement;\n }\n }\n }\n return undefined;\n }\n}\n","import {\n BucketMetric,\n BufferedLog,\n IdleDetector,\n Instrumentation,\n InstrumentationContext,\n InstrumentedAppMethods,\n InstrumentedAppOptions,\n LogCollector,\n LogCollectorOptions,\n LogMeta,\n Metric,\n MetricsCollector,\n Nextgen,\n PayloadProvider,\n Schema,\n SchematizedPayload\n} from '../interfaces';\nimport { AppInstrumentationImpl } from './AppInstrumentationImpl';\nimport { AutomaticClickTracker } from './AutomaticClickTracker';\nimport { InstrumentationImpl } from './InstrumentationImpl';\nimport { Tracing } from './Tracing';\nimport { LogPromptListener, SchematizedData, schemaUtil, utility } from 'o11y/shared';\n\nconst maxInstrumentationLength = 80;\nconst truncatedText = '_CUT';\nconst maxInstrumentationLengthBeforeTruncated = maxInstrumentationLength - truncatedText.length;\n\nexport class NextgenImpl implements Nextgen {\n private readonly _logCollectors = new Set<LogCollector>();\n private readonly _instruments = new Map<string, InstrumentationImpl | AppInstrumentationImpl>();\n private readonly _seqBySchema = new Map<string, number>();\n private _sequence = 0;\n private _appInstr: AppInstrumentationImpl;\n private _autoClickTracker: AutomaticClickTracker;\n private _metricsCollector: MetricsCollector;\n private _appPayloadProvider: PayloadProvider;\n private _pagePayloadProvider: PayloadProvider;\n private _forceDisabledLogCollectors = new Set<LogCollector>();\n private _logCollectorFailures = new Map<LogCollector, number>();\n private static _collectorFailureLimit = 5;\n private _isBufferingEnabled = false;\n private _buffer: BufferedLog[] = [];\n private readonly _logCollectionListeners = new Set<LogPromptListener>();\n private _clientSessionId: string;\n\n get pagePayloadProvider(): PayloadProvider {\n return this._pagePayloadProvider;\n }\n set pagePayloadProvider(provider: PayloadProvider) {\n this._pagePayloadProvider = provider;\n }\n\n get appPayloadProvider(): PayloadProvider {\n return this._appPayloadProvider;\n }\n set appPayloadProvider(provider: PayloadProvider) {\n this._appPayloadProvider = provider;\n }\n\n constructor(private readonly _idleDetector: IdleDetector) {}\n\n registerApp(name: string, options?: InstrumentedAppOptions): InstrumentedAppMethods {\n utility.requireArgument(name, 'name', 'string');\n if (this._appInstr) {\n throw new Error('An app has already been registered with instrumentation.');\n }\n const instr = this._instruments.get(name);\n if (instr) {\n throw new Error(`The instrumentation name ${name} is already taken`);\n }\n this._clientSessionId = options?.clientSessionId?.toString() || utility.generateUniqueId();\n this._appInstr = new AppInstrumentationImpl(\n this,\n name,\n options?.allowMultipleRootActivities\n );\n this._instruments.set(name, this._appInstr);\n this._isBufferingEnabled = options?.enableBuffering;\n\n const tracing = new Tracing(this.getInstrumentation('Network'), this._idleDetector);\n\n return {\n log: this._appInstr.log.bind(this._appInstr),\n error: this._appInstr.error.bind(this._appInstr),\n startActivity: this._appInstr.startActivity.bind(this._appInstr),\n domEvent: this._appInstr.domEvent.bind(this._appInstr),\n incrementCounter: this._appInstr.incrementCounter.bind(this._appInstr),\n trackValue: this._appInstr.trackValue.bind(this._appInstr),\n bucketValue: this._appInstr.bucketValue.bind(this._appInstr),\n networkInstrumentation: tracing.networkInstrumentation.bind(tracing),\n registerForLogPrompt: this._appInstr.registerForLogPrompt.bind(this._appInstr),\n activity: this._appInstr.activity.bind(this._appInstr),\n activityAsync: this._appInstr.activityAsync.bind(this._appInstr),\n\n startRootActivity: this._appInstr.startRootActivity.bind(this._appInstr),\n registerLogCollector: this.registerLogCollector.bind(this),\n registerMetricsCollector: this.registerMetricsCollector.bind(this),\n activateClickTracker: this.activateClickTracker.bind(this),\n deactivateClickTracker: this.deactivateClickTracker.bind(this),\n disableBuffering: this.disableBuffering.bind(this),\n promptLogCollection: this.promptLogCollection.bind(this),\n getClientSessionId: this.getClientSessionId.bind(this)\n };\n }\n\n getInstrumentation(name: string): Instrumentation {\n utility.requireArgument(name, 'name', 'string');\n if (name.length > maxInstrumentationLength) {\n // don't throw if it's too long. just add truncated suffix, but stay within max length\n name = name.substr(0, maxInstrumentationLengthBeforeTruncated) + truncatedText;\n }\n let instr: InstrumentationImpl | AppInstrumentationImpl = this._instruments.get(name);\n if (!instr) {\n instr = new InstrumentationImpl(this, name);\n this._instruments.set(name, instr);\n } else if (instr === this._appInstr) {\n throw new Error(`The instrumentation name ${name} is being used by the app.`);\n }\n return instr;\n }\n\n get appName(): string {\n return this._appInstr?.name;\n }\n\n // This is an internal method that needs to be public\n addLog(\n loggerName: string,\n schema: Schema,\n data: SchematizedData,\n timestamp: number,\n rootId: string,\n pagePayload: SchematizedPayload,\n appPayload: SchematizedPayload\n ): number {\n this._sequence += 1;\n\n // Schema sequences are per user-defined schema, not internal ones such as ActivityData\n const userSchema =\n schemaUtil.isInternal(schema) && data?.userPayload ? data.userPayload.schema : schema;\n const schemaId = schemaUtil.getSchemaId(userSchema);\n let schemaSequence = this._seqBySchema.get(schemaId) || 0;\n schemaSequence += 1;\n this._seqBySchema.set(schemaId, schemaSequence);\n\n const logMeta: LogMeta = {\n timestamp,\n rootId,\n sequence: this._sequence,\n schemaSequence,\n loggerName,\n pagePayload: pagePayload ? utility.clone(pagePayload) : undefined,\n appPayload: appPayload ? utility.clone(appPayload) : undefined,\n loggerAppName: this.appName,\n connectionType: utility.getConnectionType(),\n clientSessionId: this._clientSessionId\n };\n\n if (this._isBufferingEnabled) {\n // Always push to the buffer, even if no eligible collectors\n this._buffer.push({ schema, data: utility.clone(data), logMeta });\n }\n\n const eligibleCollectors: LogCollector[] = Array.from(this._logCollectors).filter(\n (collector: LogCollector) =>\n !this._forceDisabledLogCollectors.has(collector) &&\n !collector.getIsCollectDisabled?.()\n );\n\n if (eligibleCollectors.length > 0) {\n for (const collector of eligibleCollectors) {\n // Make a copy of the aguments passed to the collectors lest they change them.\n const dataClone: SchematizedData = utility.clone(data);\n let failures: number = this._logCollectorFailures.get(collector) || 0;\n\n try {\n collector.collect(schema, dataClone, logMeta);\n // if it got here it means it succeeded/didn't throw so we want to decrement the failure count\n if (failures > 0) {\n this._logCollectorFailures.set(collector, failures - 1);\n }\n } catch (err) {\n failures += 1;\n // If a collector fails too much we just disable it\n if (failures >= NextgenImpl._collectorFailureLimit) {\n this._forceDisabledLogCollectors.add(collector);\n if (this._appInstr && (typeof err === 'string' || err instanceof Error)) {\n this._appInstr.error(err);\n }\n } else {\n this._logCollectorFailures.set(collector, failures);\n // We can't log an error here, or the same collector will immediately be called\n // again, likely resulting in repeat exceptions until the collector gets disabled.\n }\n }\n }\n }\n return this._sequence;\n }\n\n getBuffer(): BufferedLog[] {\n return this._buffer;\n }\n\n disableBuffering(): void {\n this._isBufferingEnabled = false;\n this._buffer = [];\n }\n\n getClickTracker(): AutomaticClickTracker {\n return this._autoClickTracker;\n }\n\n getDefaultInstrumentationContext(): InstrumentationContext {\n return {\n rootId: this._appInstr?.getSingleRootActivityId(),\n isRootActivitySampled: this._appInstr?.isSingleRootActivitySampled()\n };\n }\n\n activateClickTracker(): void {\n if (typeof document !== 'undefined') {\n if (!this._autoClickTracker) {\n this._autoClickTracker = new AutomaticClickTracker(this._appInstr, document);\n }\n this._autoClickTracker.activate();\n }\n }\n\n deactivateClickTracker(): void {\n if (this._autoClickTracker) {\n this._autoClickTracker.deactivate();\n // In case activateClickTracker is called later with a different instrumentation\n this._autoClickTracker = undefined;\n }\n }\n\n registerLogCollector(collector: LogCollector, options?: LogCollectorOptions): void {\n utility.requireArgument(collector, 'collector');\n if (this._logCollectors.has(collector)) {\n return;\n }\n this._logCollectors.add(collector);\n this._logCollectorFailures.set(collector, 0);\n if (\n (!collector.getIsCollectDisabled || !collector.getIsCollectDisabled()) &&\n options &&\n options.retroactive\n ) {\n for (const log of this._buffer) {\n collector.collect(log.schema, log.data, log.logMeta);\n }\n }\n }\n\n registerMetricsCollector(collector: MetricsCollector): void {\n utility.requireArgument(collector, 'collector');\n if (this._metricsCollector) {\n throw new Error('A metrics Collector is already registered.');\n }\n this._metricsCollector = collector;\n this._metricsCollector.receiveMetricsExtractors({\n getAllUpCounters: this._getAllUpCounters.bind(this),\n getAllValueRecorders: this._getAllValueRecorders.bind(this),\n getAllBucketHistograms: this._getAllBucketHistograms.bind(this)\n });\n }\n\n private _getAllUpCounters(): Metric<number>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getUpCounters()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n private _getAllValueRecorders(): Metric<number[]>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getValueRecorders()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n private _getAllBucketHistograms(): BucketMetric<number[]>[] {\n const arrOfArrs = Array.from(this._instruments.values()).map((instr) =>\n instr.getBucketHistograms()\n );\n return arrOfArrs.reduce((pv, cv) => pv.concat(cv), []);\n }\n\n registerForLogPrompt(listener: LogPromptListener): void {\n this._logCollectionListeners.add(listener);\n }\n\n promptLogCollection(reason: string): void {\n for (const listener of this._logCollectionListeners.keys()) {\n try {\n listener(reason);\n } catch (err) {\n if (!utility.isProduction) {\n throw err;\n }\n }\n }\n }\n\n getClientSessionId(): string {\n return this._clientSessionId;\n }\n}\n","import {\n IdleDetector,\n Instrumentation,\n InstrumentedAppMethods,\n InstrumentedAppOptions\n} from './interfaces';\nimport { NextgenImpl } from './library/NextgenImpl';\nimport { utility } from 'o11y/shared';\n\nexport class Index {\n private _nextgen: NextgenImpl;\n // We are lazily initializing the singleton to allow any options to be processed\n // before the instantiation.\n private get _lazyNextGen(): NextgenImpl {\n if (!this._nextgen) {\n this._nextgen = new NextgenImpl(this._idleDetector);\n }\n return this._nextgen;\n }\n\n constructor(private readonly _idleDetector: IdleDetector) {\n utility.requireArgument(_idleDetector, '_idleDetector');\n }\n\n public registerInstrumentedApp(\n name: string,\n options?: InstrumentedAppOptions\n ): InstrumentedAppMethods {\n if (!options || options.isProduction !== false) {\n // Do this before construction\n // Production by default\n utility.markProduction();\n }\n const retVal: InstrumentedAppMethods = this._lazyNextGen.registerApp(name, options);\n if (options) {\n this._nextgen.appPayloadProvider = options.appPayloadProvider;\n this._nextgen.pagePayloadProvider = options.pagePayloadProvider;\n }\n return retVal;\n }\n\n public getInstrumentation(name?: string): Instrumentation {\n return this._lazyNextGen.getInstrumentation(name);\n }\n}\n\nexport const time = utility.time.bind(utility);\n","import { Environment, LogCollector, LogMeta, Schema } from '../interfaces';\nimport { SchematizedData, schemaUtil } from 'o11y/shared';\n\ntype ColorMap = Record<string, string>;\n\nconst bgColorMap: ColorMap = {\n Error: 'Crimson',\n Activity: 'CadetBlue',\n InstrumentedEvent: 'DarkOliveGreen',\n O11ySample: 'BlueViolet'\n};\nconst colorMap: ColorMap = {\n Error: 'white',\n Activity: 'white',\n InstrumentedEvent: 'white',\n O11ySample: 'white'\n};\nconst defaultColor = 'black';\nconst defaultBgColor = 'Gainsboro';\n\nexport class ConsoleCollector implements LogCollector {\n constructor(environment?: Environment) {\n if (environment) {\n this._log('ConsoleCollector', environment);\n }\n }\n\n collect(schema: Schema, data: SchematizedData, logMeta: LogMeta): void {\n let label, color, bgColor;\n if (schema.namespace === 'sf.instrumentation') {\n label = schema.name;\n color = colorMap[schema.name] || defaultColor;\n bgColor = bgColorMap[schema.name] || defaultBgColor;\n } else {\n label = schemaUtil.getSchemaId(schema);\n }\n\n this._log(label, data, logMeta, color, bgColor);\n }\n\n private _log(\n label: string,\n first?: unknown,\n second?: unknown,\n color: string = defaultColor,\n bgColor: string = defaultBgColor\n ): void {\n const css = `color:${color};background-color:${bgColor}`;\n // eslint-disable-next-line no-console\n console.log(\n `%cO11Y%c ${label}`,\n 'color:white;background-color:#FF6600;font-weight:bold',\n css,\n first || '',\n second || ''\n );\n }\n}\n","// auto-generated\n\nexport const version = '244.7.2';\n","// This is the file that exports all `o11y` module level exports.\nimport { idleDetectorReportSchema } from 'o11y_schema/sf_instrumentation';\nimport { IdleDetector, IdleDetectorReport } from './interfaces';\nimport { IdleDetectorImpl } from './library/IdleDetectorImpl';\nimport { time, Index } from './index';\n\nexport const idleDetector: IdleDetector = new IdleDetectorImpl({\n logThreshold: 300,\n reportListener: (report: IdleDetectorReport) => {\n idleDetectorInstr?.log(idleDetectorReportSchema, report);\n },\n errorListener: (e: unknown, text?: string) => {\n idleDetectorInstr?.error(e, text);\n }\n});\nconst index = new Index(idleDetector); // singleton\nconst registerInstrumentedApp = index.registerInstrumentedApp.bind(index);\nconst getInstrumentation = index.getInstrumentation.bind(index);\n\nconst idleDetectorInstr = getInstrumentation('IdleDetector');\n\nexport { registerInstrumentedApp, getInstrumentation, time };\nexport { ConsoleCollector } from './console-collector/ConsoleCollector';\nexport { version as _version } from './version';\n"],"names":["simpleSchema","error","errorSchema","activitySchema","instrumentedEventSchema","idleDetectorReportSchema"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_envelope.js","sources":["../../../../../../node_modules/o11y_schema/version/version.js","../../../../src/core_envelope/CoreEnvelopeBuilder.ts"],"sourcesContent":["export const version='244.30.2'","import { BucketMetric, Metric, Schema } from '../interfaces';\nimport { MetricsTags, schemaUtil, utility } from 'o11y/shared';\nimport {\n BucketHistogram,\n CoreEnvelope,\n CoreEnvelopeContents,\n LogMessage,\n MessageBundle,\n MetricTag,\n StaticAttributes,\n UpCounter,\n ValueRecorder\n} from './interfaces';\nimport { version as schemaVersion } from 'o11y_schema/version';\n\nexport const coreEnvelopeKey = 'o11y';\nexport class CoreEnvelopeBuilder {\n private _envelope: CoreEnvelope;\n\n constructor() {\n this._envelope = {\n diagnostics: {\n key: coreEnvelopeKey,\n generatedTimestamp: undefined,\n bundleCount: 0,\n bucketHistogramCount: 0,\n upCounterCount: 0,\n valueRecorderCount: 0,\n schemaVersion\n },\n bundles: [] as MessageBundle[],\n metrics: {\n bucketHistograms: [] as BucketHistogram[],\n upCounters: [] as UpCounter[],\n valueRecorders: [] as ValueRecorder[]\n },\n staticAttributes: {}\n };\n }\n\n withStaticAttributes(staticAttributes: StaticAttributes): CoreEnvelopeBuilder {\n this._envelope.staticAttributes = staticAttributes;\n return this;\n }\n\n withLogs(schemaName: string, logs: LogMessage[]): CoreEnvelopeBuilder {\n let msgBundle: MessageBundle = this._envelope.bundles.find(\n (bundle) => bundle.schemaName === schemaName\n );\n\n if (msgBundle) {\n for (const log of logs) {\n msgBundle.messages.push(log);\n }\n } else {\n msgBundle = {\n schemaName: schemaName,\n messages: logs\n };\n this._envelope.bundles.push(msgBundle);\n }\n this._envelope.diagnostics.bundleCount = this._envelope.bundles.length;\n return this;\n }\n\n private static _getMetricTags<T>(metric: Metric<T>): MetricTag[] {\n const tags: MetricsTags = metric.getTags();\n if (tags) {\n return Object.entries(tags).map((entry) => {\n const mt: MetricTag = {\n name: entry[0],\n value: entry[1].toString()\n };\n return mt;\n });\n }\n return undefined;\n }\n\n static getUpCounters(metrics: Metric<number>[], reset = true): UpCounter[] {\n return metrics.map((metric) => {\n const data: UpCounter = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n value: metric.getData(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n static getValueRecorders(metrics: Metric<number[]>[], reset = true): ValueRecorder[] {\n return metrics.map((metric) => {\n const data: ValueRecorder = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n values: metric.getData(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n static getBucketHistograms(metrics: BucketMetric<number[]>[], reset = true): BucketHistogram[] {\n return metrics.map((metric) => {\n const data: BucketHistogram = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n values: metric.getData(),\n buckets: metric.getBuckets(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n withUpCounters(upCounters: UpCounter[]): CoreEnvelopeBuilder {\n for (const upCounter of upCounters) {\n this._envelope.metrics.upCounters.push(upCounter);\n }\n this._envelope.diagnostics.upCounterCount = this._envelope.metrics.upCounters.length;\n return this;\n }\n\n withValueRecorders(valueRecorders: ValueRecorder[]): CoreEnvelopeBuilder {\n for (const valueRecorder of valueRecorders) {\n this._envelope.metrics.valueRecorders.push(valueRecorder);\n }\n this._envelope.diagnostics.valueRecorderCount =\n this._envelope.metrics.valueRecorders.length;\n return this;\n }\n\n withBucketHistograms(bucketHistograms: BucketHistogram[]): CoreEnvelopeBuilder {\n for (const bucketHistogram of bucketHistograms) {\n this._envelope.metrics.bucketHistograms.push(bucketHistogram);\n }\n this._envelope.diagnostics.bucketHistogramCount =\n this._envelope.metrics.bucketHistograms.length;\n return this;\n }\n\n build(): CoreEnvelope {\n this._envelope.diagnostics.generatedTimestamp = utility.time().tsNow;\n return this._envelope;\n }\n\n static buildFrom(contents: CoreEnvelopeContents): CoreEnvelope {\n const builder = new CoreEnvelopeBuilder();\n\n if (contents.staticAttributes) {\n builder.withStaticAttributes(contents.staticAttributes);\n }\n if (contents.messages) {\n contents.messages.forEach((logs: LogMessage[], schema: Schema) => {\n builder.withLogs(schemaUtil.getSchemaId(schema), logs);\n });\n }\n if (contents.upCounters) {\n builder.withUpCounters(contents.upCounters);\n }\n if (contents.valueRecorders) {\n builder.withValueRecorders(contents.valueRecorders);\n }\n if (contents.bucketHistograms) {\n builder.withBucketHistograms(contents.bucketHistograms);\n }\n\n return builder.build();\n }\n}\n"],"names":["schemaVersion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core_envelope.js","sources":["../../../../../../node_modules/o11y_schema/version/version.js","../../../../src/core_envelope/CoreEnvelopeBuilder.ts"],"sourcesContent":["export const version='244.37.2'","import { BucketMetric, Metric, Schema } from '../interfaces';\nimport { MetricsTags, schemaUtil, utility } from 'o11y/shared';\nimport {\n BucketHistogram,\n CoreEnvelope,\n CoreEnvelopeContents,\n LogMessage,\n MessageBundle,\n MetricTag,\n StaticAttributes,\n UpCounter,\n ValueRecorder\n} from './interfaces';\nimport { version as schemaVersion } from 'o11y_schema/version';\n\nexport const coreEnvelopeKey = 'o11y';\nexport class CoreEnvelopeBuilder {\n private _envelope: CoreEnvelope;\n\n constructor() {\n this._envelope = {\n diagnostics: {\n key: coreEnvelopeKey,\n generatedTimestamp: undefined,\n bundleCount: 0,\n bucketHistogramCount: 0,\n upCounterCount: 0,\n valueRecorderCount: 0,\n schemaVersion\n },\n bundles: [] as MessageBundle[],\n metrics: {\n bucketHistograms: [] as BucketHistogram[],\n upCounters: [] as UpCounter[],\n valueRecorders: [] as ValueRecorder[]\n },\n staticAttributes: {}\n };\n }\n\n withStaticAttributes(staticAttributes: StaticAttributes): CoreEnvelopeBuilder {\n this._envelope.staticAttributes = staticAttributes;\n return this;\n }\n\n withLogs(schemaName: string, logs: LogMessage[]): CoreEnvelopeBuilder {\n let msgBundle: MessageBundle = this._envelope.bundles.find(\n (bundle) => bundle.schemaName === schemaName\n );\n\n if (msgBundle) {\n for (const log of logs) {\n msgBundle.messages.push(log);\n }\n } else {\n msgBundle = {\n schemaName: schemaName,\n messages: logs\n };\n this._envelope.bundles.push(msgBundle);\n }\n this._envelope.diagnostics.bundleCount = this._envelope.bundles.length;\n return this;\n }\n\n private static _getMetricTags<T>(metric: Metric<T>): MetricTag[] {\n const tags: MetricsTags = metric.getTags();\n if (tags) {\n return Object.entries(tags).map((entry) => {\n const mt: MetricTag = {\n name: entry[0],\n value: entry[1].toString()\n };\n return mt;\n });\n }\n return undefined;\n }\n\n static getUpCounters(metrics: Metric<number>[], reset = true): UpCounter[] {\n return metrics.map((metric) => {\n const data: UpCounter = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n value: metric.getData(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n static getValueRecorders(metrics: Metric<number[]>[], reset = true): ValueRecorder[] {\n return metrics.map((metric) => {\n const data: ValueRecorder = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n values: metric.getData(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n static getBucketHistograms(metrics: BucketMetric<number[]>[], reset = true): BucketHistogram[] {\n return metrics.map((metric) => {\n const data: BucketHistogram = {\n name: metric.getName(),\n createdTimestamp: metric.getCreatedOn(),\n lastUpdatedTimestamp: metric.getLastUpdatedOn(),\n values: metric.getData(),\n buckets: metric.getBuckets(),\n ownerName: metric.getOwnerName(),\n ownerAppName: metric.getOwnerAppName(),\n tags: this._getMetricTags(metric)\n };\n if (reset) {\n metric.reset();\n }\n return data;\n });\n }\n\n withUpCounters(upCounters: UpCounter[]): CoreEnvelopeBuilder {\n for (const upCounter of upCounters) {\n this._envelope.metrics.upCounters.push(upCounter);\n }\n this._envelope.diagnostics.upCounterCount = this._envelope.metrics.upCounters.length;\n return this;\n }\n\n withValueRecorders(valueRecorders: ValueRecorder[]): CoreEnvelopeBuilder {\n for (const valueRecorder of valueRecorders) {\n this._envelope.metrics.valueRecorders.push(valueRecorder);\n }\n this._envelope.diagnostics.valueRecorderCount =\n this._envelope.metrics.valueRecorders.length;\n return this;\n }\n\n withBucketHistograms(bucketHistograms: BucketHistogram[]): CoreEnvelopeBuilder {\n for (const bucketHistogram of bucketHistograms) {\n this._envelope.metrics.bucketHistograms.push(bucketHistogram);\n }\n this._envelope.diagnostics.bucketHistogramCount =\n this._envelope.metrics.bucketHistograms.length;\n return this;\n }\n\n build(): CoreEnvelope {\n this._envelope.diagnostics.generatedTimestamp = utility.time().tsNow;\n return this._envelope;\n }\n\n static buildFrom(contents: CoreEnvelopeContents): CoreEnvelope {\n const builder = new CoreEnvelopeBuilder();\n\n if (contents.staticAttributes) {\n builder.withStaticAttributes(contents.staticAttributes);\n }\n if (contents.messages) {\n contents.messages.forEach((logs: LogMessage[], schema: Schema) => {\n builder.withLogs(schemaUtil.getSchemaId(schema), logs);\n });\n }\n if (contents.upCounters) {\n builder.withUpCounters(contents.upCounters);\n }\n if (contents.valueRecorders) {\n builder.withValueRecorders(contents.valueRecorders);\n }\n if (contents.bucketHistograms) {\n builder.withBucketHistograms(contents.bucketHistograms);\n }\n\n return builder.build();\n }\n}\n"],"names":["schemaVersion"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "244.7.
|
|
1
|
+
export declare const version = "244.7.2";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "o11y",
|
|
3
|
-
"version": "244.7.
|
|
3
|
+
"version": "244.7.2",
|
|
4
4
|
"description": "O11y Client-Side Instrumentation & Observability Library",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"exports": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"author": "Instrumentation Team",
|
|
40
40
|
"license": "BSD-3-Clause",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"o11y_schema": "244.
|
|
42
|
+
"o11y_schema": "244.37.2",
|
|
43
43
|
"protobufjs": "6.11.3",
|
|
44
44
|
"web-vitals": "2.1.4"
|
|
45
45
|
},
|