agentv 3.1.0 → 3.2.0
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/agentv-provider-5CJVBBGG-2XVZBW7L.js +9 -0
- package/dist/agentv-provider-5CJVBBGG-2XVZBW7L.js.map +1 -0
- package/dist/chunk-3L2L5GIL.js +51 -0
- package/dist/chunk-3L2L5GIL.js.map +1 -0
- package/dist/chunk-5H446C7X.js +50 -0
- package/dist/chunk-5H446C7X.js.map +1 -0
- package/dist/chunk-6GSYTMXD.js +31520 -0
- package/dist/chunk-6GSYTMXD.js.map +1 -0
- package/dist/chunk-BL4PVUAT.js +261 -0
- package/dist/chunk-BL4PVUAT.js.map +1 -0
- package/dist/chunk-C5GOHBQM.js +84 -0
- package/dist/chunk-C5GOHBQM.js.map +1 -0
- package/dist/chunk-FTPA72PY.js +6149 -0
- package/dist/chunk-FTPA72PY.js.map +1 -0
- package/dist/chunk-JK6V4KVD.js +114 -0
- package/dist/chunk-JK6V4KVD.js.map +1 -0
- package/dist/chunk-LRULMAAA.js +1711 -0
- package/dist/chunk-LRULMAAA.js.map +1 -0
- package/dist/chunk-OR4WXZAF.js +24302 -0
- package/dist/chunk-OR4WXZAF.js.map +1 -0
- package/dist/chunk-PCQA43SA.js +4248 -0
- package/dist/chunk-PCQA43SA.js.map +1 -0
- package/dist/chunk-SR4I5KET.js +1238 -0
- package/dist/chunk-SR4I5KET.js.map +1 -0
- package/dist/chunk-VQ2ZO7XJ.js +2098 -0
- package/dist/chunk-VQ2ZO7XJ.js.map +1 -0
- package/dist/chunk-XALGXSKB.js +21 -0
- package/dist/chunk-XALGXSKB.js.map +1 -0
- package/dist/chunk-XOSNETAV.js +565 -0
- package/dist/chunk-XOSNETAV.js.map +1 -0
- package/dist/cli.js +29 -0
- package/dist/cli.js.map +1 -0
- package/dist/dist-3BMOAU4X.js +305 -0
- package/dist/dist-3BMOAU4X.js.map +1 -0
- package/dist/esm-5Q4BZALM-5REQWAUV.js +924 -0
- package/dist/esm-5Q4BZALM-5REQWAUV.js.map +1 -0
- package/dist/esm-CZAWIY6F.js +32 -0
- package/dist/esm-CZAWIY6F.js.map +1 -0
- package/dist/esm-QNEMCJPL.js +933 -0
- package/dist/esm-QNEMCJPL.js.map +1 -0
- package/dist/esm-R77SNOF5.js +65 -0
- package/dist/esm-R77SNOF5.js.map +1 -0
- package/dist/esm-RVQPUGWH.js +1207 -0
- package/dist/esm-RVQPUGWH.js.map +1 -0
- package/dist/getMachineId-bsd-HSK5LZMG.js +41 -0
- package/dist/getMachineId-bsd-HSK5LZMG.js.map +1 -0
- package/dist/getMachineId-darwin-4DP6CCJV.js +41 -0
- package/dist/getMachineId-darwin-4DP6CCJV.js.map +1 -0
- package/dist/getMachineId-linux-44LJ5UJB.js +33 -0
- package/dist/getMachineId-linux-44LJ5UJB.js.map +1 -0
- package/dist/getMachineId-unsupported-NVK6IATM.js +24 -0
- package/dist/getMachineId-unsupported-NVK6IATM.js.map +1 -0
- package/dist/getMachineId-win-YZ36S7VA.js +43 -0
- package/dist/getMachineId-win-YZ36S7VA.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive-DLHPNSZ7.js +334 -0
- package/dist/interactive-DLHPNSZ7.js.map +1 -0
- package/dist/otlp-json-file-exporter-77FDBRSY-EZAPHWP6.js +9 -0
- package/dist/otlp-json-file-exporter-77FDBRSY-EZAPHWP6.js.map +1 -0
- package/dist/simple-trace-file-exporter-S76DMABU-5FCJESD2.js +9 -0
- package/dist/simple-trace-file-exporter-S76DMABU-5FCJESD2.js.map +1 -0
- package/dist/src-ML4D2MC2.js +1733 -0
- package/dist/src-ML4D2MC2.js.map +1 -0
- package/dist/templates/.agentv/targets.yaml +5 -24
- package/dist/token-POXF46NU.js +66 -0
- package/dist/token-POXF46NU.js.map +1 -0
- package/dist/token-util-6GWYZWGE.js +8 -0
- package/dist/token-util-6GWYZWGE.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.bun/@opentelemetry+context-async-hooks@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/src/AbstractAsyncHooksContextManager.ts","../../../node_modules/.bun/@opentelemetry+context-async-hooks@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/src/AsyncHooksContextManager.ts","../../../node_modules/.bun/@opentelemetry+context-async-hooks@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/src/AsyncLocalStorageContextManager.ts","../../../node_modules/.bun/@opentelemetry+context-async-hooks@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/context-async-hooks/src/index.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/enums.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/Span.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/Sampler.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/sampler/AlwaysOffSampler.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/sampler/AlwaysOnSampler.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/sampler/ParentBasedSampler.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/sampler/TraceIdRatioBasedSampler.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/config.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/utility.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/export/BatchSpanProcessorBase.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/platform/node/export/BatchSpanProcessor.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/platform/node/RandomIdGenerator.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/platform/node/index.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/platform/index.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/Tracer.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/MultiSpanProcessor.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/BasicTracerProvider.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/export/ConsoleSpanExporter.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/export/InMemorySpanExporter.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/export/SimpleSpanProcessor.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/export/NoopSpanProcessor.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-base@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-base/src/index.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-node@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-node/src/NodeTracerProvider.ts","../../../node_modules/.bun/@opentelemetry+sdk-trace-node@2.5.1+460773ef8ff1e07c/node_modules/@opentelemetry/sdk-trace-node/src/index.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextManager, Context } from '@opentelemetry/api';\nimport { EventEmitter } from 'events';\n\ntype Func<T> = (...args: unknown[]) => T;\n\n/**\n * Store a map for each event of all original listeners and their \"patched\"\n * version. So when a listener is removed by the user, the corresponding\n * patched function will be also removed.\n */\ninterface PatchMap {\n [name: string]: WeakMap<Func<void>, Func<void>>;\n}\n\nconst ADD_LISTENER_METHODS = [\n 'addListener' as const,\n 'on' as const,\n 'once' as const,\n 'prependListener' as const,\n 'prependOnceListener' as const,\n];\n\nexport abstract class AbstractAsyncHooksContextManager\n implements ContextManager\n{\n abstract active(): Context;\n\n abstract with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType<F>,\n ...args: A\n ): ReturnType<F>;\n\n abstract enable(): this;\n\n abstract disable(): this;\n\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind<T>(context: Context, target: T): T {\n if (target instanceof EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n\n private _bindFunction<T extends Function>(context: Context, target: T): T {\n const manager = this;\n const contextWrapper = function (this: never, ...args: unknown[]) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper as any;\n }\n\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n private _bindEventEmitter<T extends EventEmitter>(\n context: Context,\n ee: T\n ): T {\n const map = this._getPatchMap(ee);\n if (map !== undefined) return ee;\n this._createPatchMap(ee);\n\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined) return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(\n ee,\n ee.removeAllListeners\n );\n }\n return ee;\n }\n\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n private _patchRemoveListener(ee: EventEmitter, original: Function) {\n const contextManager = this;\n return function (this: never, event: string, listener: Func<void>) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n private _patchRemoveAllListeners(ee: EventEmitter, original: Function) {\n const contextManager = this;\n return function (this: never, event: string) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n } else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n private _patchAddListener(\n ee: EventEmitter,\n original: Function,\n context: Context\n ) {\n const contextManager = this;\n return function (this: never, event: string, listener: Func<void>) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n } finally {\n contextManager._wrapped = false;\n }\n };\n }\n\n private _createPatchMap(ee: EventEmitter): PatchMap {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (ee as any)[this._kOtListeners] = map;\n return map;\n }\n private _getPatchMap(ee: EventEmitter): PatchMap | undefined {\n return (ee as never)[this._kOtListeners];\n }\n\n private readonly _kOtListeners = Symbol('OtListeners');\n private _wrapped = false;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context, ROOT_CONTEXT } from '@opentelemetry/api';\nimport * as asyncHooks from 'async_hooks';\nimport { AbstractAsyncHooksContextManager } from './AbstractAsyncHooksContextManager';\n\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nexport class AsyncHooksContextManager extends AbstractAsyncHooksContextManager {\n private _asyncHook: asyncHooks.AsyncHook;\n private _contexts: Map<number, Context> = new Map();\n private _stack: Array<Context | undefined> = [];\n\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n\n active(): Context {\n return this._stack[this._stack.length - 1] ?? ROOT_CONTEXT;\n }\n\n with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType<F>,\n ...args: A\n ): ReturnType<F> {\n this._enterContext(context);\n try {\n return fn.call(thisArg!, ...args);\n } finally {\n this._exitContext();\n }\n }\n\n enable(): this {\n this._asyncHook.enable();\n return this;\n }\n\n disable(): this {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n private _init(uid: number, type: string) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP') return;\n\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n private _destroy(uid: number) {\n this._contexts.delete(uid);\n }\n\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n private _before(uid: number) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n\n /**\n * After hook is called just after completing the execution of a async context.\n */\n private _after() {\n this._exitContext();\n }\n\n /**\n * Set the given context as active\n */\n private _enterContext(context: Context) {\n this._stack.push(context);\n }\n\n /**\n * Remove the context at the root of the stack\n */\n private _exitContext() {\n this._stack.pop();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context, ROOT_CONTEXT } from '@opentelemetry/api';\nimport { AsyncLocalStorage } from 'async_hooks';\nimport { AbstractAsyncHooksContextManager } from './AbstractAsyncHooksContextManager';\n\nexport class AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager {\n private _asyncLocalStorage: AsyncLocalStorage<Context>;\n\n constructor() {\n super();\n this._asyncLocalStorage = new AsyncLocalStorage();\n }\n\n active(): Context {\n return this._asyncLocalStorage.getStore() ?? ROOT_CONTEXT;\n }\n\n with<A extends unknown[], F extends (...args: A) => ReturnType<F>>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType<F>,\n ...args: A\n ): ReturnType<F> {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb as never, ...args);\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { AsyncHooksContextManager } from './AsyncHooksContextManager';\nexport { AsyncLocalStorageContextManager } from './AsyncLocalStorageContextManager';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Event name definitions\nexport const ExceptionEventName = 'exception';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Context,\n diag,\n Exception,\n HrTime,\n Link,\n Span as APISpan,\n Attributes,\n AttributeValue,\n SpanContext,\n SpanKind,\n SpanStatus,\n SpanStatusCode,\n TimeInput,\n} from '@opentelemetry/api';\nimport {\n addHrTimes,\n millisToHrTime,\n hrTime,\n hrTimeDuration,\n InstrumentationScope,\n isAttributeValue,\n isTimeInput,\n isTimeInputHrTime,\n otperformance,\n sanitizeAttributes,\n} from '@opentelemetry/core';\nimport { Resource } from '@opentelemetry/resources';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport { ReadableSpan } from './export/ReadableSpan';\nimport { ExceptionEventName } from './enums';\nimport { SpanProcessor } from './SpanProcessor';\nimport { TimedEvent } from './TimedEvent';\nimport { SpanLimits } from './types';\n\n/**\n * This type provides the properties of @link{ReadableSpan} at the same time\n * of the Span API\n */\nexport type Span = APISpan & ReadableSpan;\n\ninterface SpanOptions {\n resource: Resource;\n scope: InstrumentationScope;\n context: Context;\n spanContext: SpanContext;\n name: string;\n kind: SpanKind;\n parentSpanContext?: SpanContext;\n links?: Link[];\n startTime?: TimeInput;\n attributes?: Attributes;\n spanLimits: SpanLimits;\n spanProcessor: SpanProcessor;\n}\n\n/**\n * This class represents a span.\n */\nexport class SpanImpl implements Span {\n // Below properties are included to implement ReadableSpan for export\n // purposes but are not intended to be written-to directly.\n private readonly _spanContext: SpanContext;\n readonly kind: SpanKind;\n readonly parentSpanContext?: SpanContext;\n readonly attributes: Attributes = {};\n readonly links: Link[] = [];\n readonly events: TimedEvent[] = [];\n readonly startTime: HrTime;\n readonly resource: Resource;\n readonly instrumentationScope: InstrumentationScope;\n\n private _droppedAttributesCount = 0;\n private _droppedEventsCount: number = 0;\n private _droppedLinksCount: number = 0;\n private _attributesCount: number = 0;\n\n name: string;\n status: SpanStatus = {\n code: SpanStatusCode.UNSET,\n };\n endTime: HrTime = [0, 0];\n private _ended = false;\n private _duration: HrTime = [-1, -1];\n private readonly _spanProcessor: SpanProcessor;\n private readonly _spanLimits: SpanLimits;\n private readonly _attributeValueLengthLimit: number;\n\n private readonly _performanceStartTime: number;\n private readonly _performanceOffset: number;\n private readonly _startTimeProvided: boolean;\n\n /**\n * Constructs a new SpanImpl instance.\n */\n constructor(opts: SpanOptions) {\n const now = Date.now();\n\n this._spanContext = opts.spanContext;\n this._performanceStartTime = otperformance.now();\n this._performanceOffset =\n now - (this._performanceStartTime + otperformance.timeOrigin);\n this._startTimeProvided = opts.startTime != null;\n this._spanLimits = opts.spanLimits;\n this._attributeValueLengthLimit =\n this._spanLimits.attributeValueLengthLimit || 0;\n this._spanProcessor = opts.spanProcessor;\n\n this.name = opts.name;\n this.parentSpanContext = opts.parentSpanContext;\n this.kind = opts.kind;\n this.links = opts.links || [];\n this.startTime = this._getTime(opts.startTime ?? now);\n this.resource = opts.resource;\n this.instrumentationScope = opts.scope;\n\n if (opts.attributes != null) {\n this.setAttributes(opts.attributes);\n }\n\n this._spanProcessor.onStart(this, opts.context);\n }\n\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n setAttribute(key: string, value?: AttributeValue): this;\n setAttribute(key: string, value: unknown): this {\n if (value == null || this._isSpanEnded()) return this;\n if (key.length === 0) {\n diag.warn(`Invalid attribute key: ${key}`);\n return this;\n }\n if (!isAttributeValue(value)) {\n diag.warn(`Invalid attribute value set for key: ${key}`);\n return this;\n }\n\n const { attributeCountLimit } = this._spanLimits;\n const isNewKey = !Object.prototype.hasOwnProperty.call(\n this.attributes,\n key\n );\n\n if (\n attributeCountLimit !== undefined &&\n this._attributesCount >= attributeCountLimit &&\n isNewKey\n ) {\n this._droppedAttributesCount++;\n return this;\n }\n\n this.attributes[key] = this._truncateToSize(value);\n if (isNewKey) {\n this._attributesCount++;\n }\n return this;\n }\n\n setAttributes(attributes: Attributes): this {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n /**\n *\n * @param name Span Name\n * @param [attributesOrStartTime] Span attributes or start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [timeStamp] Specified time stamp for the event\n */\n addEvent(\n name: string,\n attributesOrStartTime?: Attributes | TimeInput,\n timeStamp?: TimeInput\n ): this {\n if (this._isSpanEnded()) return this;\n\n const { eventCountLimit } = this._spanLimits;\n\n if (eventCountLimit === 0) {\n diag.warn('No events allowed.');\n this._droppedEventsCount++;\n return this;\n }\n\n if (\n eventCountLimit !== undefined &&\n this.events.length >= eventCountLimit\n ) {\n if (this._droppedEventsCount === 0) {\n diag.debug('Dropping extra events.');\n }\n this.events.shift();\n this._droppedEventsCount++;\n }\n\n if (isTimeInput(attributesOrStartTime)) {\n if (!isTimeInput(timeStamp)) {\n timeStamp = attributesOrStartTime;\n }\n attributesOrStartTime = undefined;\n }\n\n const attributes = sanitizeAttributes(attributesOrStartTime);\n\n this.events.push({\n name,\n attributes,\n time: this._getTime(timeStamp),\n droppedAttributesCount: 0,\n });\n return this;\n }\n\n addLink(link: Link): this {\n this.links.push(link);\n return this;\n }\n\n addLinks(links: Link[]): this {\n this.links.push(...links);\n return this;\n }\n\n setStatus(status: SpanStatus): this {\n if (this._isSpanEnded()) return this;\n this.status = { ...status };\n\n // When using try-catch, the caught \"error\" is of type `any`. When then assigning `any` to `status.message`,\n // TypeScript will not error. While this can happen during use of any API, it is more common on Span#setStatus()\n // as it's likely used in a catch-block. Therefore, we validate if `status.message` is actually a string, null, or\n // undefined to avoid an incorrect type causing issues downstream.\n if (this.status.message != null && typeof status.message !== 'string') {\n diag.warn(\n `Dropping invalid status.message of type '${typeof status.message}', expected 'string'`\n );\n delete this.status.message;\n }\n\n return this;\n }\n\n updateName(name: string): this {\n if (this._isSpanEnded()) return this;\n this.name = name;\n return this;\n }\n\n end(endTime?: TimeInput): void {\n if (this._isSpanEnded()) {\n diag.error(\n `${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`\n );\n return;\n }\n this.endTime = this._getTime(endTime);\n this._duration = hrTimeDuration(this.startTime, this.endTime);\n\n if (this._duration[0] < 0) {\n diag.warn(\n 'Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.',\n this.startTime,\n this.endTime\n );\n this.endTime = this.startTime.slice() as HrTime;\n this._duration = [0, 0];\n }\n\n if (this._droppedEventsCount > 0) {\n diag.warn(\n `Dropped ${this._droppedEventsCount} events because eventCountLimit reached`\n );\n }\n if (this._spanProcessor.onEnding) {\n this._spanProcessor.onEnding(this);\n }\n\n this._ended = true;\n this._spanProcessor.onEnd(this);\n }\n\n private _getTime(inp?: TimeInput): HrTime {\n if (typeof inp === 'number' && inp <= otperformance.now()) {\n // must be a performance timestamp\n // apply correction and convert to hrtime\n return hrTime(inp + this._performanceOffset);\n }\n\n if (typeof inp === 'number') {\n return millisToHrTime(inp);\n }\n\n if (inp instanceof Date) {\n return millisToHrTime(inp.getTime());\n }\n\n if (isTimeInputHrTime(inp)) {\n return inp;\n }\n\n if (this._startTimeProvided) {\n // if user provided a time for the start manually\n // we can't use duration to calculate event/end times\n return millisToHrTime(Date.now());\n }\n\n const msDuration = otperformance.now() - this._performanceStartTime;\n return addHrTimes(this.startTime, millisToHrTime(msDuration));\n }\n\n isRecording(): boolean {\n return this._ended === false;\n }\n\n recordException(exception: Exception, time?: TimeInput): void {\n const attributes: Attributes = {};\n if (typeof exception === 'string') {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception;\n } else if (exception) {\n if (exception.code) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.code.toString();\n } else if (exception.name) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.name;\n }\n if (exception.message) {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception.message;\n }\n if (exception.stack) {\n attributes[ATTR_EXCEPTION_STACKTRACE] = exception.stack;\n }\n }\n\n // these are minimum requirements from spec\n if (attributes[ATTR_EXCEPTION_TYPE] || attributes[ATTR_EXCEPTION_MESSAGE]) {\n this.addEvent(ExceptionEventName, attributes, time);\n } else {\n diag.warn(`Failed to record an exception ${exception}`);\n }\n }\n\n get duration(): HrTime {\n return this._duration;\n }\n\n get ended(): boolean {\n return this._ended;\n }\n\n get droppedAttributesCount(): number {\n return this._droppedAttributesCount;\n }\n\n get droppedEventsCount(): number {\n return this._droppedEventsCount;\n }\n\n get droppedLinksCount(): number {\n return this._droppedLinksCount;\n }\n\n private _isSpanEnded(): boolean {\n if (this._ended) {\n const error = new Error(\n `Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`\n );\n\n diag.warn(\n `Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,\n error\n );\n }\n return this._ended;\n }\n\n // Utility function to truncate given value within size\n // for value type of string, will truncate to given limit\n // for type of non-string, will return same value\n private _truncateToLimitUtil(value: string, limit: number): string {\n if (value.length <= limit) {\n return value;\n }\n return value.substring(0, limit);\n }\n\n /**\n * If the given attribute value is of type string and has more characters than given {@code attributeValueLengthLimit} then\n * return string with truncated to {@code attributeValueLengthLimit} characters\n *\n * If the given attribute value is array of strings then\n * return new array of strings with each element truncated to {@code attributeValueLengthLimit} characters\n *\n * Otherwise return same Attribute {@code value}\n *\n * @param value Attribute value\n * @returns truncated attribute value if required, otherwise same value\n */\n private _truncateToSize(value: AttributeValue): AttributeValue {\n const limit = this._attributeValueLengthLimit;\n // Check limit\n if (limit <= 0) {\n // Negative values are invalid, so do not truncate\n diag.warn(`Attribute value limit must be positive, got ${limit}`);\n return value;\n }\n\n // String\n if (typeof value === 'string') {\n return this._truncateToLimitUtil(value, limit);\n }\n\n // Array of strings\n if (Array.isArray(value)) {\n return (value as []).map(val =>\n typeof val === 'string' ? this._truncateToLimitUtil(val, limit) : val\n );\n }\n\n // Other types, no need to apply value length limit\n return value;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Context,\n Link,\n Attributes,\n SpanKind,\n TraceState,\n} from '@opentelemetry/api';\n\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly<Attributes>;\n /**\n * A {@link TraceState} that will be associated with the {@link Span} through\n * the new {@link SpanContext}. Samplers SHOULD return the TraceState from\n * the passed-in {@link Context} if they do not intend to change it. Leaving\n * the value undefined will also leave the TraceState unchanged.\n */\n traceState?: TraceState;\n}\n\n/**\n * This interface represent a sampler. Sampling is a mechanism to control the\n * noise and overhead introduced by OpenTelemetry by reducing the number of\n * samples of traces collected and sent to the backend.\n */\nexport interface Sampler {\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context Parent Context which may contain a span.\n * @param traceId of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName of the span to be created.\n * @param spanKind of the span to be created.\n * @param attributes Initial set of Attributes for the Span being constructed.\n * @param links Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: Attributes,\n links: Link[]\n ): SamplingResult;\n\n /** Returns the sampler name or short description with the configuration. */\n toString(): string;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Sampler, SamplingDecision, SamplingResult } from '../Sampler';\n\n/** Sampler that samples no traces. */\nexport class AlwaysOffSampler implements Sampler {\n shouldSample(): SamplingResult {\n return {\n decision: SamplingDecision.NOT_RECORD,\n };\n }\n\n toString(): string {\n return 'AlwaysOffSampler';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Sampler, SamplingDecision, SamplingResult } from '../Sampler';\n\n/** Sampler that samples all traces. */\nexport class AlwaysOnSampler implements Sampler {\n shouldSample(): SamplingResult {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n };\n }\n\n toString(): string {\n return 'AlwaysOnSampler';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Context,\n isSpanContextValid,\n Link,\n Attributes,\n SpanKind,\n TraceFlags,\n trace,\n} from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './AlwaysOffSampler';\nimport { AlwaysOnSampler } from './AlwaysOnSampler';\nimport { Sampler, SamplingResult } from '../Sampler';\n\n/**\n * A composite sampler that either respects the parent span's sampling decision\n * or delegates to `delegateSampler` for root spans.\n */\nexport class ParentBasedSampler implements Sampler {\n private _root: Sampler;\n private _remoteParentSampled: Sampler;\n private _remoteParentNotSampled: Sampler;\n private _localParentSampled: Sampler;\n private _localParentNotSampled: Sampler;\n\n constructor(config: ParentBasedSamplerConfig) {\n this._root = config.root;\n\n if (!this._root) {\n globalErrorHandler(\n new Error('ParentBasedSampler must have a root sampler configured')\n );\n this._root = new AlwaysOnSampler();\n }\n\n this._remoteParentSampled =\n config.remoteParentSampled ?? new AlwaysOnSampler();\n this._remoteParentNotSampled =\n config.remoteParentNotSampled ?? new AlwaysOffSampler();\n this._localParentSampled =\n config.localParentSampled ?? new AlwaysOnSampler();\n this._localParentNotSampled =\n config.localParentNotSampled ?? new AlwaysOffSampler();\n }\n\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: Attributes,\n links: Link[]\n ): SamplingResult {\n const parentContext = trace.getSpanContext(context);\n\n if (!parentContext || !isSpanContextValid(parentContext)) {\n return this._root.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n if (parentContext.isRemote) {\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._remoteParentSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n return this._remoteParentNotSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._localParentSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n return this._localParentNotSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n toString(): string {\n return `ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`;\n }\n}\n\ninterface ParentBasedSamplerConfig {\n /** Sampler called for spans with no parent */\n root: Sampler;\n /** Sampler called for spans with a remote parent which was sampled. Default AlwaysOn */\n remoteParentSampled?: Sampler;\n /** Sampler called for spans with a remote parent which was not sampled. Default AlwaysOff */\n remoteParentNotSampled?: Sampler;\n /** Sampler called for spans with a local parent which was sampled. Default AlwaysOn */\n localParentSampled?: Sampler;\n /** Sampler called for spans with a local parent which was not sampled. Default AlwaysOff */\n localParentNotSampled?: Sampler;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isValidTraceId } from '@opentelemetry/api';\nimport { Sampler, SamplingDecision, SamplingResult } from '../Sampler';\n\n/** Sampler that samples a given fraction of traces based of trace id deterministically. */\nexport class TraceIdRatioBasedSampler implements Sampler {\n private readonly _ratio;\n private _upperBound: number;\n\n constructor(ratio = 0) {\n this._ratio = this._normalize(ratio);\n this._upperBound = Math.floor(this._ratio * 0xffffffff);\n }\n\n shouldSample(context: unknown, traceId: string): SamplingResult {\n return {\n decision:\n isValidTraceId(traceId) && this._accumulate(traceId) < this._upperBound\n ? SamplingDecision.RECORD_AND_SAMPLED\n : SamplingDecision.NOT_RECORD,\n };\n }\n\n toString(): string {\n return `TraceIdRatioBased{${this._ratio}}`;\n }\n\n private _normalize(ratio: number): number {\n if (typeof ratio !== 'number' || isNaN(ratio)) return 0;\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio;\n }\n\n private _accumulate(traceId: string): number {\n let accumulation = 0;\n for (let i = 0; i < traceId.length / 8; i++) {\n const pos = i * 8;\n const part = parseInt(traceId.slice(pos, pos + 8), 16);\n accumulation = (accumulation ^ part) >>> 0;\n }\n return accumulation;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { getNumberFromEnv, getStringFromEnv } from '@opentelemetry/core';\nimport { Sampler } from './Sampler';\nimport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nimport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nimport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nimport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\n\nconst enum TracesSamplerValues {\n AlwaysOff = 'always_off',\n AlwaysOn = 'always_on',\n ParentBasedAlwaysOff = 'parentbased_always_off',\n ParentBasedAlwaysOn = 'parentbased_always_on',\n ParentBasedTraceIdRatio = 'parentbased_traceidratio',\n TraceIdRatio = 'traceidratio',\n}\n\nconst DEFAULT_RATIO = 1;\n\n/**\n * Load default configuration. For fields with primitive values, any user-provided\n * value will override the corresponding default value. For fields with\n * non-primitive values (like `spanLimits`), the user-provided value will be\n * used to extend the default value.\n */\n\n// object needs to be wrapped in this function and called when needed otherwise\n// envs are parsed before tests are ran - causes tests using these envs to fail\nexport function loadDefaultConfig() {\n return {\n sampler: buildSamplerFromEnv(),\n forceFlushTimeoutMillis: 30000,\n generalLimits: {\n attributeValueLengthLimit:\n getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit:\n getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n },\n spanLimits: {\n attributeValueLengthLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n linkCountLimit: getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT') ?? 128,\n eventCountLimit: getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT') ?? 128,\n attributePerEventCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT') ?? 128,\n attributePerLinkCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT') ?? 128,\n },\n };\n}\n\n/**\n * Based on environment, builds a sampler, complies with specification.\n */\nexport function buildSamplerFromEnv(): Sampler {\n const sampler =\n getStringFromEnv('OTEL_TRACES_SAMPLER') ??\n TracesSamplerValues.ParentBasedAlwaysOn;\n switch (sampler) {\n case TracesSamplerValues.AlwaysOn:\n return new AlwaysOnSampler();\n case TracesSamplerValues.AlwaysOff:\n return new AlwaysOffSampler();\n case TracesSamplerValues.ParentBasedAlwaysOn:\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n case TracesSamplerValues.ParentBasedAlwaysOff:\n return new ParentBasedSampler({\n root: new AlwaysOffSampler(),\n });\n case TracesSamplerValues.TraceIdRatio:\n return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());\n case TracesSamplerValues.ParentBasedTraceIdRatio:\n return new ParentBasedSampler({\n root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv()),\n });\n default:\n diag.error(\n `OTEL_TRACES_SAMPLER value \"${sampler}\" invalid, defaulting to \"${TracesSamplerValues.ParentBasedAlwaysOn}\".`\n );\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n }\n}\n\nfunction getSamplerProbabilityFromEnv(): number | undefined {\n const probability = getNumberFromEnv('OTEL_TRACES_SAMPLER_ARG');\n if (probability == null) {\n diag.error(\n `OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${DEFAULT_RATIO}.`\n );\n return DEFAULT_RATIO;\n }\n\n if (probability < 0 || probability > 1) {\n diag.error(\n `OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.`\n );\n return DEFAULT_RATIO;\n }\n\n return probability;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { buildSamplerFromEnv, loadDefaultConfig } from './config';\nimport { Sampler } from './Sampler';\nimport { SpanLimits, TracerConfig, GeneralLimits } from './types';\nimport { getNumberFromEnv } from '@opentelemetry/core';\n\nexport const DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;\nexport const DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;\n\n/**\n * Function to merge Default configuration (as specified in './config') with\n * user provided configurations.\n */\nexport function mergeConfig(userConfig: TracerConfig): TracerConfig & {\n sampler: Sampler;\n spanLimits: SpanLimits;\n generalLimits: GeneralLimits;\n} {\n const perInstanceDefaults: Partial<TracerConfig> = {\n sampler: buildSamplerFromEnv(),\n };\n\n const DEFAULT_CONFIG = loadDefaultConfig();\n\n const target = Object.assign(\n {},\n DEFAULT_CONFIG,\n perInstanceDefaults,\n userConfig\n );\n\n target.generalLimits = Object.assign(\n {},\n DEFAULT_CONFIG.generalLimits,\n userConfig.generalLimits || {}\n );\n\n target.spanLimits = Object.assign(\n {},\n DEFAULT_CONFIG.spanLimits,\n userConfig.spanLimits || {}\n );\n\n return target;\n}\n\n/**\n * When general limits are provided and model specific limits are not,\n * configures the model specific limits by using the values from the general ones.\n * @param userConfig User provided tracer configuration\n */\nexport function reconfigureLimits(userConfig: TracerConfig): TracerConfig {\n const spanLimits = Object.assign({}, userConfig.spanLimits);\n\n /**\n * Reassign span attribute count limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeCountLimit =\n userConfig.spanLimits?.attributeCountLimit ??\n userConfig.generalLimits?.attributeCountLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ??\n DEFAULT_ATTRIBUTE_COUNT_LIMIT;\n\n /**\n * Reassign span attribute value length limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeValueLengthLimit =\n userConfig.spanLimits?.attributeValueLengthLimit ??\n userConfig.generalLimits?.attributeValueLengthLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT;\n\n return Object.assign({}, userConfig, { spanLimits });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { context, Context, diag, TraceFlags } from '@opentelemetry/api';\nimport {\n BindOnceFuture,\n ExportResultCode,\n getNumberFromEnv,\n globalErrorHandler,\n suppressTracing,\n} from '@opentelemetry/core';\nimport { Span } from '../Span';\nimport { SpanProcessor } from '../SpanProcessor';\nimport { BufferConfig } from '../types';\nimport { ReadableSpan } from './ReadableSpan';\nimport { SpanExporter } from './SpanExporter';\n\n/**\n * Implementation of the {@link SpanProcessor} that batches spans exported by\n * the SDK then pushes them to the exporter pipeline.\n */\nexport abstract class BatchSpanProcessorBase<T extends BufferConfig>\n implements SpanProcessor\n{\n private readonly _maxExportBatchSize: number;\n private readonly _maxQueueSize: number;\n private readonly _scheduledDelayMillis: number;\n private readonly _exportTimeoutMillis: number;\n private readonly _exporter: SpanExporter;\n\n private _isExporting = false;\n private _finishedSpans: ReadableSpan[] = [];\n private _timer: NodeJS.Timeout | number | undefined;\n private _shutdownOnce: BindOnceFuture<void>;\n private _droppedSpansCount: number = 0;\n\n constructor(exporter: SpanExporter, config?: T) {\n this._exporter = exporter;\n this._maxExportBatchSize =\n typeof config?.maxExportBatchSize === 'number'\n ? config.maxExportBatchSize\n : (getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512);\n this._maxQueueSize =\n typeof config?.maxQueueSize === 'number'\n ? config.maxQueueSize\n : (getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048);\n this._scheduledDelayMillis =\n typeof config?.scheduledDelayMillis === 'number'\n ? config.scheduledDelayMillis\n : (getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000);\n this._exportTimeoutMillis =\n typeof config?.exportTimeoutMillis === 'number'\n ? config.exportTimeoutMillis\n : (getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000);\n\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn(\n 'BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize'\n );\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n\n forceFlush(): Promise<void> {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n }\n\n // does nothing.\n onStart(_span: Span, _parentContext: Context): void {}\n\n onEnd(span: ReadableSpan): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n\n this._addToBuffer(span);\n }\n\n shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private _shutdown() {\n return Promise.resolve()\n .then(() => {\n return this.onShutdown();\n })\n .then(() => {\n return this._flushAll();\n })\n .then(() => {\n return this._exporter.shutdown();\n });\n }\n\n /** Add a span in the buffer. */\n private _addToBuffer(span: ReadableSpan) {\n if (this._finishedSpans.length >= this._maxQueueSize) {\n // limit reached, drop span\n\n if (this._droppedSpansCount === 0) {\n diag.debug('maxQueueSize reached, dropping spans');\n }\n this._droppedSpansCount++;\n\n return;\n }\n\n if (this._droppedSpansCount > 0) {\n // some spans were dropped, log once with count of spans dropped\n diag.warn(\n `Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`\n );\n this._droppedSpansCount = 0;\n }\n\n this._finishedSpans.push(span);\n this._maybeStartTimer();\n }\n\n /**\n * Send all spans to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _flush should be used\n * */\n private _flushAll(): Promise<void> {\n return new Promise((resolve, reject) => {\n const promises = [];\n // calculate number of batches\n const count = Math.ceil(\n this._finishedSpans.length / this._maxExportBatchSize\n );\n for (let i = 0, j = count; i < j; i++) {\n promises.push(this._flushOneBatch());\n }\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(reject);\n });\n }\n\n private _flushOneBatch(): Promise<void> {\n this._clearTimer();\n if (this._finishedSpans.length === 0) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n // don't wait anymore for export, this way the next batch can start\n reject(new Error('Timeout'));\n }, this._exportTimeoutMillis);\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), () => {\n // Reset the finished spans buffer here because the next invocations of the _flush method\n // could pass the same finished spans to the exporter if the buffer is cleared\n // outside the execution of this callback.\n let spans: ReadableSpan[];\n if (this._finishedSpans.length <= this._maxExportBatchSize) {\n spans = this._finishedSpans;\n this._finishedSpans = [];\n } else {\n spans = this._finishedSpans.splice(0, this._maxExportBatchSize);\n }\n\n const doExport = () =>\n this._exporter.export(spans, result => {\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n } else {\n reject(\n result.error ??\n new Error('BatchSpanProcessor: span export failed')\n );\n }\n });\n\n let pendingResources: Array<Promise<void>> | null = null;\n for (let i = 0, len = spans.length; i < len; i++) {\n const span = spans[i];\n if (\n span.resource.asyncAttributesPending &&\n span.resource.waitForAsyncAttributes\n ) {\n pendingResources ??= [];\n pendingResources.push(span.resource.waitForAsyncAttributes());\n }\n }\n\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (pendingResources === null) {\n doExport();\n } else {\n Promise.all(pendingResources).then(doExport, err => {\n globalErrorHandler(err);\n reject(err);\n });\n }\n });\n });\n }\n\n private _maybeStartTimer() {\n if (this._isExporting) return;\n const flush = () => {\n this._isExporting = true;\n this._flushOneBatch()\n .finally(() => {\n this._isExporting = false;\n if (this._finishedSpans.length > 0) {\n this._clearTimer();\n this._maybeStartTimer();\n }\n })\n .catch(e => {\n this._isExporting = false;\n globalErrorHandler(e);\n });\n };\n // we only wait if the queue doesn't have enough elements yet\n if (this._finishedSpans.length >= this._maxExportBatchSize) {\n return flush();\n }\n if (this._timer !== undefined) return;\n this._timer = setTimeout(() => flush(), this._scheduledDelayMillis);\n\n // depending on runtime, this may be a 'number' or NodeJS.Timeout\n if (typeof this._timer !== 'number') {\n this._timer.unref();\n }\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n }\n\n protected abstract onShutdown(): void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BatchSpanProcessorBase } from '../../../export/BatchSpanProcessorBase';\nimport { BufferConfig } from '../../../types';\n\nexport class BatchSpanProcessor extends BatchSpanProcessorBase<BufferConfig> {\n protected onShutdown(): void {}\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdGenerator } from '../../IdGenerator';\n\nconst SPAN_ID_BYTES = 8;\nconst TRACE_ID_BYTES = 16;\n\nexport class RandomIdGenerator implements IdGenerator {\n /**\n * Returns a random 16-byte trace ID formatted/encoded as a 32 lowercase hex\n * characters corresponding to 128 bits.\n */\n generateTraceId = getIdGenerator(TRACE_ID_BYTES);\n\n /**\n * Returns a random 8-byte span ID formatted/encoded as a 16 lowercase hex\n * characters corresponding to 64 bits.\n */\n generateSpanId = getIdGenerator(SPAN_ID_BYTES);\n}\n\nconst SHARED_BUFFER = Buffer.allocUnsafe(TRACE_ID_BYTES);\nfunction getIdGenerator(bytes: number): () => string {\n return function generateId() {\n for (let i = 0; i < bytes / 4; i++) {\n // unsigned right shift drops decimal part of the number\n // it is required because if a number between 2**32 and 2**32 - 1 is generated, an out of range error is thrown by writeUInt32BE\n SHARED_BUFFER.writeUInt32BE((Math.random() * 2 ** 32) >>> 0, i * 4);\n }\n\n // If buffer is all 0, set the last byte to 1 to guarantee a valid w3c id is generated\n for (let i = 0; i < bytes; i++) {\n if (SHARED_BUFFER[i] > 0) {\n break;\n } else if (i === bytes - 1) {\n SHARED_BUFFER[bytes - 1] = 1;\n }\n }\n\n return SHARED_BUFFER.toString('hex', 0, bytes);\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BatchSpanProcessor } from './export/BatchSpanProcessor';\nexport { RandomIdGenerator } from './RandomIdGenerator';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BatchSpanProcessor, RandomIdGenerator } from './node';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n InstrumentationScope,\n sanitizeAttributes,\n isTracingSuppressed,\n} from '@opentelemetry/core';\nimport { SpanImpl } from './Span';\nimport { GeneralLimits, SpanLimits, TracerConfig } from './types';\nimport { mergeConfig } from './utility';\nimport { SpanProcessor } from './SpanProcessor';\nimport { Sampler } from './Sampler';\nimport { IdGenerator } from './IdGenerator';\nimport { RandomIdGenerator } from './platform';\nimport { Resource } from '@opentelemetry/resources';\n\n/**\n * This class represents a basic tracer.\n */\nexport class Tracer implements api.Tracer {\n private readonly _sampler: Sampler;\n private readonly _generalLimits: GeneralLimits;\n private readonly _spanLimits: SpanLimits;\n private readonly _idGenerator: IdGenerator;\n readonly instrumentationScope: InstrumentationScope;\n\n private readonly _resource: Resource;\n private readonly _spanProcessor: SpanProcessor;\n\n /**\n * Constructs a new Tracer instance.\n */\n constructor(\n instrumentationScope: InstrumentationScope,\n config: TracerConfig,\n resource: Resource,\n spanProcessor: SpanProcessor\n ) {\n const localConfig = mergeConfig(config);\n this._sampler = localConfig.sampler;\n this._generalLimits = localConfig.generalLimits;\n this._spanLimits = localConfig.spanLimits;\n this._idGenerator = config.idGenerator || new RandomIdGenerator();\n this._resource = resource;\n this._spanProcessor = spanProcessor;\n this.instrumentationScope = instrumentationScope;\n }\n\n /**\n * Starts a new Span or returns the default NoopSpan based on the sampling\n * decision.\n */\n startSpan(\n name: string,\n options: api.SpanOptions = {},\n context = api.context.active()\n ): api.Span {\n // remove span from context in case a root span is requested via options\n if (options.root) {\n context = api.trace.deleteSpan(context);\n }\n const parentSpan = api.trace.getSpan(context);\n\n if (isTracingSuppressed(context)) {\n api.diag.debug('Instrumentation suppressed, returning Noop Span');\n const nonRecordingSpan = api.trace.wrapSpanContext(\n api.INVALID_SPAN_CONTEXT\n );\n return nonRecordingSpan;\n }\n\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = this._idGenerator.generateSpanId();\n let validParentSpanContext;\n let traceId;\n let traceState;\n if (\n !parentSpanContext ||\n !api.trace.isSpanContextValid(parentSpanContext)\n ) {\n // New root span.\n traceId = this._idGenerator.generateTraceId();\n } else {\n // New child span.\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n validParentSpanContext = parentSpanContext;\n }\n\n const spanKind = options.kind ?? api.SpanKind.INTERNAL;\n const links = (options.links ?? []).map(link => {\n return {\n context: link.context,\n attributes: sanitizeAttributes(link.attributes),\n };\n });\n const attributes = sanitizeAttributes(options.attributes);\n // make sampling decision\n const samplingResult = this._sampler.shouldSample(\n context,\n traceId,\n name,\n spanKind,\n attributes,\n links\n );\n\n traceState = samplingResult.traceState ?? traceState;\n\n const traceFlags =\n samplingResult.decision === api.SamplingDecision.RECORD_AND_SAMPLED\n ? api.TraceFlags.SAMPLED\n : api.TraceFlags.NONE;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n if (samplingResult.decision === api.SamplingDecision.NOT_RECORD) {\n api.diag.debug(\n 'Recording is off, propagating context in a non-recording span'\n );\n const nonRecordingSpan = api.trace.wrapSpanContext(spanContext);\n return nonRecordingSpan;\n }\n\n // Set initial span attributes. The attributes object may have been mutated\n // by the sampler, so we sanitize the merged attributes before setting them.\n const initAttributes = sanitizeAttributes(\n Object.assign(attributes, samplingResult.attributes)\n );\n\n const span = new SpanImpl({\n resource: this._resource,\n scope: this.instrumentationScope,\n context,\n spanContext,\n name,\n kind: spanKind,\n links,\n parentSpanContext: validParentSpanContext,\n attributes: initAttributes,\n startTime: options.startTime,\n spanProcessor: this._spanProcessor,\n spanLimits: this._spanLimits,\n });\n return span;\n }\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally the new span gets set in context and this context is activated\n * for the duration of the function call.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * span.setStatus({code: SpanStatusCode.OK});\n * return something;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * } finally {\n * span.end();\n * }\n * });\n * @example\n * const span = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * return span;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * }\n * });\n * do some more work\n * span.end();\n */\n startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(\n name: string,\n fn: F\n ): ReturnType<F>;\n startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(\n name: string,\n opts: api.SpanOptions,\n fn: F\n ): ReturnType<F>;\n startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(\n name: string,\n opts: api.SpanOptions,\n ctx: api.Context,\n fn: F\n ): ReturnType<F>;\n startActiveSpan<F extends (span: api.Span) => ReturnType<F>>(\n name: string,\n arg2?: F | api.SpanOptions,\n arg3?: F | api.Context,\n arg4?: F\n ): ReturnType<F> | undefined {\n let opts: api.SpanOptions | undefined;\n let ctx: api.Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as api.SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as api.SpanOptions | undefined;\n ctx = arg3 as api.Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? api.context.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = api.trace.setSpan(parentContext, span);\n\n return api.context.with(contextWithSpanSet, fn, undefined, span);\n }\n\n /** Returns the active {@link GeneralLimits}. */\n getGeneralLimits(): GeneralLimits {\n return this._generalLimits;\n }\n\n /** Returns the active {@link SpanLimits}. */\n getSpanLimits(): SpanLimits {\n return this._spanLimits;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport { ReadableSpan } from './export/ReadableSpan';\nimport { Span } from './Span';\nimport { SpanProcessor } from './SpanProcessor';\n\n/**\n * Implementation of the {@link SpanProcessor} that simply forwards all\n * received events to a list of {@link SpanProcessor}s.\n */\nexport class MultiSpanProcessor implements SpanProcessor {\n private readonly _spanProcessors: SpanProcessor[];\n constructor(spanProcessors: SpanProcessor[]) {\n this._spanProcessors = spanProcessors;\n }\n\n forceFlush(): Promise<void> {\n const promises: Promise<void>[] = [];\n\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.forceFlush());\n }\n return new Promise(resolve => {\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(error => {\n globalErrorHandler(\n error || new Error('MultiSpanProcessor: forceFlush failed')\n );\n resolve();\n });\n });\n }\n\n onStart(span: Span, context: Context): void {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onStart(span, context);\n }\n }\n\n onEnding(span: Span): void {\n for (const spanProcessor of this._spanProcessors) {\n if (spanProcessor.onEnding) {\n spanProcessor.onEnding(span);\n }\n }\n }\n\n onEnd(span: ReadableSpan): void {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onEnd(span);\n }\n }\n\n shutdown(): Promise<void> {\n const promises: Promise<void>[] = [];\n\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.shutdown());\n }\n return new Promise((resolve, reject) => {\n Promise.all(promises).then(() => {\n resolve();\n }, reject);\n });\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TracerProvider, Tracer as ApiTracer } from '@opentelemetry/api';\nimport { merge } from '@opentelemetry/core';\nimport { defaultResource, Resource } from '@opentelemetry/resources';\nimport { SpanProcessor } from './SpanProcessor';\nimport { Tracer } from './Tracer';\nimport { loadDefaultConfig } from './config';\nimport { MultiSpanProcessor } from './MultiSpanProcessor';\nimport { TracerConfig } from './types';\nimport { reconfigureLimits } from './utility';\n\nexport enum ForceFlushState {\n 'resolved',\n 'timeout',\n 'error',\n 'unresolved',\n}\n\n/**\n * This class represents a basic tracer provider which platform libraries can extend\n */\nexport class BasicTracerProvider implements TracerProvider {\n private readonly _config: TracerConfig;\n private readonly _tracers: Map<string, Tracer> = new Map();\n private readonly _resource: Resource;\n private readonly _activeSpanProcessor: MultiSpanProcessor;\n\n constructor(config: TracerConfig = {}) {\n const mergedConfig = merge(\n {},\n loadDefaultConfig(),\n reconfigureLimits(config)\n );\n this._resource = mergedConfig.resource ?? defaultResource();\n\n this._config = Object.assign({}, mergedConfig, {\n resource: this._resource,\n });\n\n const spanProcessors: SpanProcessor[] = [];\n\n if (config.spanProcessors?.length) {\n spanProcessors.push(...config.spanProcessors);\n }\n\n this._activeSpanProcessor = new MultiSpanProcessor(spanProcessors);\n }\n\n getTracer(\n name: string,\n version?: string,\n options?: { schemaUrl?: string }\n ): ApiTracer {\n const key = `${name}@${version || ''}:${options?.schemaUrl || ''}`;\n if (!this._tracers.has(key)) {\n this._tracers.set(\n key,\n new Tracer(\n { name, version, schemaUrl: options?.schemaUrl },\n this._config,\n this._resource,\n this._activeSpanProcessor\n )\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._tracers.get(key)!;\n }\n\n forceFlush(): Promise<void> {\n const timeout = this._config.forceFlushTimeoutMillis;\n const promises = this._activeSpanProcessor['_spanProcessors'].map(\n (spanProcessor: SpanProcessor) => {\n return new Promise(resolve => {\n let state: ForceFlushState;\n const timeoutInterval = setTimeout(() => {\n resolve(\n new Error(\n `Span processor did not completed within timeout period of ${timeout} ms`\n )\n );\n state = ForceFlushState.timeout;\n }, timeout);\n\n spanProcessor\n .forceFlush()\n .then(() => {\n clearTimeout(timeoutInterval);\n if (state !== ForceFlushState.timeout) {\n state = ForceFlushState.resolved;\n resolve(state);\n }\n })\n .catch(error => {\n clearTimeout(timeoutInterval);\n state = ForceFlushState.error;\n resolve(error);\n });\n });\n }\n );\n\n return new Promise<void>((resolve, reject) => {\n Promise.all(promises)\n .then(results => {\n const errors = results.filter(\n result => result !== ForceFlushState.resolved\n );\n if (errors.length > 0) {\n reject(errors);\n } else {\n resolve();\n }\n })\n .catch(error => reject([error]));\n });\n }\n\n shutdown(): Promise<void> {\n return this._activeSpanProcessor.shutdown();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanExporter } from './SpanExporter';\nimport { ReadableSpan } from './ReadableSpan';\nimport {\n ExportResult,\n ExportResultCode,\n hrTimeToMicroseconds,\n} from '@opentelemetry/core';\n\n/**\n * This is implementation of {@link SpanExporter} that prints spans to the\n * console. This class can be used for diagnostic purposes.\n *\n * NOTE: This {@link SpanExporter} is intended for diagnostics use only, output rendered to the console may change at any time.\n */\n\n/* eslint-disable no-console */\nexport class ConsoleSpanExporter implements SpanExporter {\n /**\n * Export spans.\n * @param spans\n * @param resultCallback\n */\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void\n ): void {\n return this._sendSpans(spans, resultCallback);\n }\n\n /**\n * Shutdown the exporter.\n */\n shutdown(): Promise<void> {\n this._sendSpans([]);\n return this.forceFlush();\n }\n\n /**\n * Exports any pending spans in exporter\n */\n forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * converts span info into more readable format\n * @param span\n */\n private _exportInfo(span: ReadableSpan) {\n return {\n resource: {\n attributes: span.resource.attributes,\n },\n instrumentationScope: span.instrumentationScope,\n traceId: span.spanContext().traceId,\n parentSpanContext: span.parentSpanContext,\n traceState: span.spanContext().traceState?.serialize(),\n name: span.name,\n id: span.spanContext().spanId,\n kind: span.kind,\n timestamp: hrTimeToMicroseconds(span.startTime),\n duration: hrTimeToMicroseconds(span.duration),\n attributes: span.attributes,\n status: span.status,\n events: span.events,\n links: span.links,\n };\n }\n\n /**\n * Showing spans in console\n * @param spans\n * @param done\n */\n private _sendSpans(\n spans: ReadableSpan[],\n done?: (result: ExportResult) => void\n ): void {\n for (const span of spans) {\n console.dir(this._exportInfo(span), { depth: 3 });\n }\n if (done) {\n return done({ code: ExportResultCode.SUCCESS });\n }\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanExporter } from './SpanExporter';\nimport { ReadableSpan } from './ReadableSpan';\nimport { ExportResult, ExportResultCode } from '@opentelemetry/core';\n\n/**\n * This class can be used for testing purposes. It stores the exported spans\n * in a list in memory that can be retrieved using the `getFinishedSpans()`\n * method.\n */\nexport class InMemorySpanExporter implements SpanExporter {\n private _finishedSpans: ReadableSpan[] = [];\n /**\n * Indicates if the exporter has been \"shutdown.\"\n * When false, exported spans will not be stored in-memory.\n */\n protected _stopped = false;\n\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void\n ): void {\n if (this._stopped)\n return resultCallback({\n code: ExportResultCode.FAILED,\n error: new Error('Exporter has been stopped'),\n });\n this._finishedSpans.push(...spans);\n\n setTimeout(() => resultCallback({ code: ExportResultCode.SUCCESS }), 0);\n }\n\n shutdown(): Promise<void> {\n this._stopped = true;\n this._finishedSpans = [];\n return this.forceFlush();\n }\n\n /**\n * Exports any pending spans in the exporter\n */\n forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n\n reset(): void {\n this._finishedSpans = [];\n }\n\n getFinishedSpans(): ReadableSpan[] {\n return this._finishedSpans;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context, TraceFlags } from '@opentelemetry/api';\nimport {\n internal,\n ExportResultCode,\n globalErrorHandler,\n BindOnceFuture,\n} from '@opentelemetry/core';\nimport { Span } from '../Span';\nimport { SpanProcessor } from '../SpanProcessor';\nimport { ReadableSpan } from './ReadableSpan';\nimport { SpanExporter } from './SpanExporter';\n\n/**\n * An implementation of the {@link SpanProcessor} that converts the {@link Span}\n * to {@link ReadableSpan} and passes it to the configured exporter.\n *\n * Only spans that are sampled are converted.\n *\n * NOTE: This {@link SpanProcessor} exports every ended span individually instead of batching spans together, which causes significant performance overhead with most exporters. For production use, please consider using the {@link BatchSpanProcessor} instead.\n */\nexport class SimpleSpanProcessor implements SpanProcessor {\n private readonly _exporter: SpanExporter;\n private _shutdownOnce: BindOnceFuture<void>;\n private _pendingExports: Set<Promise<void>>;\n\n constructor(exporter: SpanExporter) {\n this._exporter = exporter;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._pendingExports = new Set<Promise<void>>();\n }\n\n async forceFlush(): Promise<void> {\n await Promise.all(Array.from(this._pendingExports));\n if (this._exporter.forceFlush) {\n await this._exporter.forceFlush();\n }\n }\n\n onStart(_span: Span, _parentContext: Context): void {}\n\n onEnd(span: ReadableSpan): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n\n const pendingExport = this._doExport(span).catch(err =>\n globalErrorHandler(err)\n );\n // Enqueue this export to the pending list so it can be flushed by the user.\n this._pendingExports.add(pendingExport);\n void pendingExport.finally(() =>\n this._pendingExports.delete(pendingExport)\n );\n }\n\n private async _doExport(span: ReadableSpan): Promise<void> {\n if (span.resource.asyncAttributesPending) {\n // Ensure resource is fully resolved before exporting.\n await span.resource.waitForAsyncAttributes?.();\n }\n\n const result = await internal._export(this._exporter, [span]);\n if (result.code !== ExportResultCode.SUCCESS) {\n throw (\n result.error ??\n new Error(`SimpleSpanProcessor: span export failed (status ${result})`)\n );\n }\n }\n\n shutdown(): Promise<void> {\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise<void> {\n return this._exporter.shutdown();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '@opentelemetry/api';\nimport { ReadableSpan } from './ReadableSpan';\nimport { Span } from '../Span';\nimport { SpanProcessor } from '../SpanProcessor';\n\n/** No-op implementation of SpanProcessor */\nexport class NoopSpanProcessor implements SpanProcessor {\n onStart(_span: Span, _context: Context): void {}\n onEnd(_span: ReadableSpan): void {}\n shutdown(): Promise<void> {\n return Promise.resolve();\n }\n forceFlush(): Promise<void> {\n return Promise.resolve();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { BasicTracerProvider } from './BasicTracerProvider';\nexport { BatchSpanProcessor, RandomIdGenerator } from './platform';\nexport { ConsoleSpanExporter } from './export/ConsoleSpanExporter';\nexport { InMemorySpanExporter } from './export/InMemorySpanExporter';\nexport type { ReadableSpan } from './export/ReadableSpan';\nexport { SimpleSpanProcessor } from './export/SimpleSpanProcessor';\nexport type { SpanExporter } from './export/SpanExporter';\nexport { NoopSpanProcessor } from './export/NoopSpanProcessor';\nexport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nexport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nexport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nexport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\nexport { SamplingDecision } from './Sampler';\nexport type { Sampler, SamplingResult } from './Sampler';\nexport type { Span } from './Span';\nexport type { SpanProcessor } from './SpanProcessor';\nexport type { TimedEvent } from './TimedEvent';\nexport type {\n BatchSpanProcessorBrowserConfig,\n BufferConfig,\n GeneralLimits,\n SDKRegistrationConfig,\n SpanLimits,\n TracerConfig,\n} from './types';\nexport type { IdGenerator } from './IdGenerator';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport {\n BasicTracerProvider,\n SDKRegistrationConfig,\n} from '@opentelemetry/sdk-trace-base';\nimport { NodeTracerConfig } from './config';\nimport {\n context,\n ContextManager,\n propagation,\n TextMapPropagator,\n trace,\n} from '@opentelemetry/api';\nimport {\n CompositePropagator,\n W3CBaggagePropagator,\n W3CTraceContextPropagator,\n} from '@opentelemetry/core';\n\nfunction setupContextManager(\n contextManager: ContextManager | null | undefined\n) {\n // null means 'do not register'\n if (contextManager === null) {\n return;\n }\n\n // undefined means 'register default'\n if (contextManager === undefined) {\n const defaultContextManager = new AsyncLocalStorageContextManager();\n defaultContextManager.enable();\n context.setGlobalContextManager(defaultContextManager);\n return;\n }\n\n contextManager.enable();\n context.setGlobalContextManager(contextManager);\n}\n\nfunction setupPropagator(propagator: TextMapPropagator | null | undefined) {\n // null means 'do not register'\n if (propagator === null) {\n return;\n }\n\n // undefined means 'register default'\n if (propagator === undefined) {\n propagation.setGlobalPropagator(\n new CompositePropagator({\n propagators: [\n new W3CTraceContextPropagator(),\n new W3CBaggagePropagator(),\n ],\n })\n );\n return;\n }\n\n propagation.setGlobalPropagator(propagator);\n}\n\n/**\n * Register this TracerProvider for use with the OpenTelemetry API.\n * Undefined values may be replaced with defaults, and\n * null values will be skipped.\n *\n * @param config Configuration object for SDK registration\n */\nexport class NodeTracerProvider extends BasicTracerProvider {\n constructor(config: NodeTracerConfig = {}) {\n super(config);\n }\n\n /**\n * Register this TracerProvider for use with the OpenTelemetry API.\n * Undefined values may be replaced with defaults, and\n * null values will be skipped.\n *\n * @param config Configuration object for SDK registration\n */\n register(config: SDKRegistrationConfig = {}): void {\n trace.setGlobalTracerProvider(this);\n setupContextManager(config.contextManager);\n setupPropagator(config.propagator);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type { NodeTracerConfig } from './config';\nexport { NodeTracerProvider } from './NodeTracerProvider';\nexport {\n AlwaysOffSampler,\n AlwaysOnSampler,\n BasicTracerProvider,\n BatchSpanProcessor,\n ConsoleSpanExporter,\n InMemorySpanExporter,\n NoopSpanProcessor,\n ParentBasedSampler,\n RandomIdGenerator,\n SamplingDecision,\n SimpleSpanProcessor,\n TraceIdRatioBasedSampler,\n} from '@opentelemetry/sdk-trace-base';\nexport type {\n BatchSpanProcessorBrowserConfig,\n BufferConfig,\n GeneralLimits,\n IdGenerator,\n ReadableSpan,\n Sampler,\n SamplingResult,\n SDKRegistrationConfig,\n Span,\n SpanExporter,\n SpanLimits,\n SpanProcessor,\n TimedEvent,\n TracerConfig,\n} from '@opentelemetry/sdk-trace-base';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,QAAA,WAAA,UAAA,QAAA;AAaA,QAAM,uBAAuB;MAC3B;MACA;MACA;MACA;MACA;;AAGF,QAAsB,mCAAtB,MAAsD;;;;;;;MAsBpD,KAAQA,UAAkB,QAAS;AACjC,YAAI,kBAAkB,SAAA,cAAc;AAClC,iBAAO,KAAK,kBAAkBA,UAAS,MAAM;;AAG/C,YAAI,OAAO,WAAW,YAAY;AAChC,iBAAO,KAAK,cAAcA,UAAS,MAAM;;AAE3C,eAAO;MACT;MAEQ,cAAkCA,UAAkB,QAAS;AACnE,cAAM,UAAU;AAChB,cAAM,iBAAiB,YAA0B,MAAe;AAC9D,iBAAO,QAAQ,KAAKA,UAAS,MAAM,OAAO,MAAM,MAAM,IAAI,CAAC;QAC7D;AACA,eAAO,eAAe,gBAAgB,UAAU;UAC9C,YAAY;UACZ,cAAc;UACd,UAAU;UACV,OAAO,OAAO;SACf;AAMD,eAAO;MACT;;;;;;;;MASQ,kBACNA,UACA,IAAK;AAEL,cAAM,MAAM,KAAK,aAAa,EAAE;AAChC,YAAI,QAAQ;AAAW,iBAAO;AAC9B,aAAK,gBAAgB,EAAE;AAGvB,6BAAqB,QAAQ,gBAAa;AACxC,cAAI,GAAG,UAAU,MAAM;AAAW;AAClC,aAAG,UAAU,IAAI,KAAK,kBAAkB,IAAI,GAAG,UAAU,GAAGA,QAAO;QACrE,CAAC;AAED,YAAI,OAAO,GAAG,mBAAmB,YAAY;AAC3C,aAAG,iBAAiB,KAAK,qBAAqB,IAAI,GAAG,cAAc;;AAErE,YAAI,OAAO,GAAG,QAAQ,YAAY;AAChC,aAAG,MAAM,KAAK,qBAAqB,IAAI,GAAG,GAAG;;AAG/C,YAAI,OAAO,GAAG,uBAAuB,YAAY;AAC/C,aAAG,qBAAqB,KAAK,yBAC3B,IACA,GAAG,kBAAkB;;AAGzB,eAAO;MACT;;;;;;;MAQQ,qBAAqB,IAAkB,UAAkB;AAC/D,cAAM,iBAAiB;AACvB,eAAO,SAAuB,OAAe,UAAoB;AAC/D,gBAAM,SAAS,eAAe,aAAa,EAAE,IAAI,KAAK;AACtD,cAAI,WAAW,QAAW;AACxB,mBAAO,SAAS,KAAK,MAAM,OAAO,QAAQ;;AAE5C,gBAAM,kBAAkB,OAAO,IAAI,QAAQ;AAC3C,iBAAO,SAAS,KAAK,MAAM,OAAO,mBAAmB,QAAQ;QAC/D;MACF;;;;;;;MAQQ,yBAAyB,IAAkB,UAAkB;AACnE,cAAM,iBAAiB;AACvB,eAAO,SAAuB,OAAa;AACzC,gBAAM,MAAM,eAAe,aAAa,EAAE;AAC1C,cAAI,QAAQ,QAAW;AACrB,gBAAI,UAAU,WAAW,GAAG;AAC1B,6BAAe,gBAAgB,EAAE;uBACxB,IAAI,KAAK,MAAM,QAAW;AACnC,qBAAO,IAAI,KAAK;;;AAGpB,iBAAO,SAAS,MAAM,MAAM,SAAS;QACvC;MACF;;;;;;;;MASQ,kBACN,IACA,UACAA,UAAgB;AAEhB,cAAM,iBAAiB;AACvB,eAAO,SAAuB,OAAe,UAAoB;AAS/D,cAAI,eAAe,UAAU;AAC3B,mBAAO,SAAS,KAAK,MAAM,OAAO,QAAQ;;AAE5C,cAAI,MAAM,eAAe,aAAa,EAAE;AACxC,cAAI,QAAQ,QAAW;AACrB,kBAAM,eAAe,gBAAgB,EAAE;;AAEzC,cAAI,YAAY,IAAI,KAAK;AACzB,cAAI,cAAc,QAAW;AAC3B,wBAAY,oBAAI,QAAO;AACvB,gBAAI,KAAK,IAAI;;AAEf,gBAAM,kBAAkB,eAAe,KAAKA,UAAS,QAAQ;AAE7D,oBAAU,IAAI,UAAU,eAAe;AAKvC,yBAAe,WAAW;AAC1B,cAAI;AACF,mBAAO,SAAS,KAAK,MAAM,OAAO,eAAe;;AAEjD,2BAAe,WAAW;;QAE9B;MACF;MAEQ,gBAAgB,IAAgB;AACtC,cAAM,MAAM,uBAAO,OAAO,IAAI;AAE7B,WAAW,KAAK,aAAa,IAAI;AAClC,eAAO;MACT;MACQ,aAAa,IAAgB;AACnC,eAAQ,GAAa,KAAK,aAAa;MACzC;MAEiB,gBAAgB,OAAO,aAAa;MAC7C,WAAW;;AA7LrB,YAAA,mCAAA;;;;;;;;;;ACtBA,QAAA,QAAA;AACA,QAAA,aAAA,UAAA,aAAA;AACA,QAAA,qCAAA;AAKA,QAAa,2BAAb,cAA8C,mCAAA,iCAAgC;MACpE;MACA,YAAkC,oBAAI,IAAG;MACzC,SAAqC,CAAA;MAE7C,cAAA;AACE,cAAK;AACL,aAAK,aAAa,WAAW,WAAW;UACtC,MAAM,KAAK,MAAM,KAAK,IAAI;UAC1B,QAAQ,KAAK,QAAQ,KAAK,IAAI;UAC9B,OAAO,KAAK,OAAO,KAAK,IAAI;UAC5B,SAAS,KAAK,SAAS,KAAK,IAAI;UAChC,gBAAgB,KAAK,SAAS,KAAK,IAAI;SACxC;MACH;MAEA,SAAM;AACJ,eAAO,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,KAAK,MAAA;MAChD;MAEA,KACEC,UACA,IACA,YACG,MAAO;AAEV,aAAK,cAAcA,QAAO;AAC1B,YAAI;AACF,iBAAO,GAAG,KAAK,SAAU,GAAG,IAAI;;AAEhC,eAAK,aAAY;;MAErB;MAEA,SAAM;AACJ,aAAK,WAAW,OAAM;AACtB,eAAO;MACT;MAEA,UAAO;AACL,aAAK,WAAW,QAAO;AACvB,aAAK,UAAU,MAAK;AACpB,aAAK,SAAS,CAAA;AACd,eAAO;MACT;;;;;;;MAQQ,MAAM,KAAa,MAAY;AAKrC,YAAI,SAAS;AAAa;AAE1B,cAAMA,WAAU,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC;AAClD,YAAIA,aAAY,QAAW;AACzB,eAAK,UAAU,IAAI,KAAKA,QAAO;;MAEnC;;;;;;MAOQ,SAAS,KAAW;AAC1B,aAAK,UAAU,OAAO,GAAG;MAC3B;;;;;MAMQ,QAAQ,KAAW;AACzB,cAAMA,WAAU,KAAK,UAAU,IAAI,GAAG;AACtC,YAAIA,aAAY,QAAW;AACzB,eAAK,cAAcA,QAAO;;MAE9B;;;;MAKQ,SAAM;AACZ,aAAK,aAAY;MACnB;;;;MAKQ,cAAcA,UAAgB;AACpC,aAAK,OAAO,KAAKA,QAAO;MAC1B;;;;MAKQ,eAAY;AAClB,aAAK,OAAO,IAAG;MACjB;;AAxGF,YAAA,2BAAA;;;;;;;;;;ACPA,QAAA,QAAA;AACA,QAAA,gBAAA,UAAA,aAAA;AACA,QAAA,qCAAA;AAEA,QAAa,kCAAb,cAAqD,mCAAA,iCAAgC;MAC3E;MAER,cAAA;AACE,cAAK;AACL,aAAK,qBAAqB,IAAI,cAAA,kBAAiB;MACjD;MAEA,SAAM;AACJ,eAAO,KAAK,mBAAmB,SAAQ,KAAM,MAAA;MAC/C;MAEA,KACEC,UACA,IACA,YACG,MAAO;AAEV,cAAM,KAAK,WAAW,OAAO,KAAK,GAAG,KAAK,OAAO;AACjD,eAAO,KAAK,mBAAmB,IAAIA,UAAS,IAAa,GAAG,IAAI;MAClE;MAEA,SAAM;AACJ,eAAO;MACT;MAEA,UAAO;AACL,aAAK,mBAAmB,QAAO;AAC/B,eAAO;MACT;;AA7BF,YAAA,kCAAA;;;;;;;;;;ACJA,QAAA,6BAAA;AAAS,WAAA,eAAA,SAAA,4BAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,2BAAA;IAAwB,EAAA,CAAA;AACjC,QAAA,oCAAA;AAAS,WAAA,eAAA,SAAA,mCAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,kCAAA;IAA+B,EAAA,CAAA;;;;;ACjBxC,IAiBa;AAjBb;;;AAiBO,IAAM,qBAAqB;;;;;ACjBlC,IA+Ea;AA/Eb;;;AAgBA;AAeA,IAAAC;AAaA,IAAAA;AAMA;AA6BM,IAAO,WAAP,MAAe;;;MAGF;MACR;MACA;MACA,aAAyB,CAAA;MACzB,QAAgB,CAAA;MAChB,SAAuB,CAAA;MACvB;MACA;MACA;MAED,0BAA0B;MAC1B,sBAA8B;MAC9B,qBAA6B;MAC7B,mBAA2B;MAEnC;MACA,SAAqB;QACnB,MAAM,eAAe;;MAEvB,UAAkB,CAAC,GAAG,CAAC;MACf,SAAS;MACT,YAAoB,CAAC,IAAI,EAAE;MAClB;MACA;MACA;MAEA;MACA;MACA;;;;MAKjB,YAAY,MAAiB;AAC3B,cAAM,MAAM,KAAK,IAAG;AAEpB,aAAK,eAAe,KAAK;AACzB,aAAK,wBAAwB,cAAc,IAAG;AAC9C,aAAK,qBACH,OAAO,KAAK,wBAAwB,cAAc;AACpD,aAAK,qBAAqB,KAAK,aAAa;AAC5C,aAAK,cAAc,KAAK;AACxB,aAAK,6BACH,KAAK,YAAY,6BAA6B;AAChD,aAAK,iBAAiB,KAAK;AAE3B,aAAK,OAAO,KAAK;AACjB,aAAK,oBAAoB,KAAK;AAC9B,aAAK,OAAO,KAAK;AACjB,aAAK,QAAQ,KAAK,SAAS,CAAA;AAC3B,aAAK,YAAY,KAAK,SAAS,KAAK,aAAa,GAAG;AACpD,aAAK,WAAW,KAAK;AACrB,aAAK,uBAAuB,KAAK;AAEjC,YAAI,KAAK,cAAc,MAAM;AAC3B,eAAK,cAAc,KAAK,UAAU;;AAGpC,aAAK,eAAe,QAAQ,MAAM,KAAK,OAAO;MAChD;MAEA,cAAW;AACT,eAAO,KAAK;MACd;MAGA,aAAa,KAAa,OAAc;AACtC,YAAI,SAAS,QAAQ,KAAK,aAAY;AAAI,iBAAO;AACjD,YAAI,IAAI,WAAW,GAAG;AACpB,eAAK,KAAK,0BAA0B,GAAG,EAAE;AACzC,iBAAO;;AAET,YAAI,CAAC,iBAAiB,KAAK,GAAG;AAC5B,eAAK,KAAK,wCAAwC,GAAG,EAAE;AACvD,iBAAO;;AAGT,cAAM,EAAE,oBAAmB,IAAK,KAAK;AACrC,cAAM,WAAW,CAAC,OAAO,UAAU,eAAe,KAChD,KAAK,YACL,GAAG;AAGL,YACE,wBAAwB,UACxB,KAAK,oBAAoB,uBACzB,UACA;AACA,eAAK;AACL,iBAAO;;AAGT,aAAK,WAAW,GAAG,IAAI,KAAK,gBAAgB,KAAK;AACjD,YAAI,UAAU;AACZ,eAAK;;AAEP,eAAO;MACT;MAEA,cAAc,YAAsB;AAClC,mBAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC/C,eAAK,aAAa,GAAG,CAAC;;AAExB,eAAO;MACT;;;;;;;;MASA,SACE,MACA,uBACA,WAAqB;AAErB,YAAI,KAAK,aAAY;AAAI,iBAAO;AAEhC,cAAM,EAAE,gBAAe,IAAK,KAAK;AAEjC,YAAI,oBAAoB,GAAG;AACzB,eAAK,KAAK,oBAAoB;AAC9B,eAAK;AACL,iBAAO;;AAGT,YACE,oBAAoB,UACpB,KAAK,OAAO,UAAU,iBACtB;AACA,cAAI,KAAK,wBAAwB,GAAG;AAClC,iBAAK,MAAM,wBAAwB;;AAErC,eAAK,OAAO,MAAK;AACjB,eAAK;;AAGP,YAAI,YAAY,qBAAqB,GAAG;AACtC,cAAI,CAAC,YAAY,SAAS,GAAG;AAC3B,wBAAY;;AAEd,kCAAwB;;AAG1B,cAAM,aAAa,mBAAmB,qBAAqB;AAE3D,aAAK,OAAO,KAAK;UACf;UACA;UACA,MAAM,KAAK,SAAS,SAAS;UAC7B,wBAAwB;SACzB;AACD,eAAO;MACT;MAEA,QAAQ,MAAU;AAChB,aAAK,MAAM,KAAK,IAAI;AACpB,eAAO;MACT;MAEA,SAAS,OAAa;AACpB,aAAK,MAAM,KAAK,GAAG,KAAK;AACxB,eAAO;MACT;MAEA,UAAU,QAAkB;AAC1B,YAAI,KAAK,aAAY;AAAI,iBAAO;AAChC,aAAK,SAAS,EAAE,GAAG,OAAM;AAMzB,YAAI,KAAK,OAAO,WAAW,QAAQ,OAAO,OAAO,YAAY,UAAU;AACrE,eAAK,KACH,4CAA4C,OAAO,OAAO,OAAO,sBAAsB;AAEzF,iBAAO,KAAK,OAAO;;AAGrB,eAAO;MACT;MAEA,WAAW,MAAY;AACrB,YAAI,KAAK,aAAY;AAAI,iBAAO;AAChC,aAAK,OAAO;AACZ,eAAO;MACT;MAEA,IAAI,SAAmB;AACrB,YAAI,KAAK,aAAY,GAAI;AACvB,eAAK,MACH,GAAG,KAAK,IAAI,IAAI,KAAK,aAAa,OAAO,IAAI,KAAK,aAAa,MAAM,4CAA4C;AAEnH;;AAEF,aAAK,UAAU,KAAK,SAAS,OAAO;AACpC,aAAK,YAAY,eAAe,KAAK,WAAW,KAAK,OAAO;AAE5D,YAAI,KAAK,UAAU,CAAC,IAAI,GAAG;AACzB,eAAK,KACH,uFACA,KAAK,WACL,KAAK,OAAO;AAEd,eAAK,UAAU,KAAK,UAAU,MAAK;AACnC,eAAK,YAAY,CAAC,GAAG,CAAC;;AAGxB,YAAI,KAAK,sBAAsB,GAAG;AAChC,eAAK,KACH,WAAW,KAAK,mBAAmB,yCAAyC;;AAGhF,YAAI,KAAK,eAAe,UAAU;AAChC,eAAK,eAAe,SAAS,IAAI;;AAGnC,aAAK,SAAS;AACd,aAAK,eAAe,MAAM,IAAI;MAChC;MAEQ,SAAS,KAAe;AAC9B,YAAI,OAAO,QAAQ,YAAY,OAAO,cAAc,IAAG,GAAI;AAGzD,iBAAO,OAAO,MAAM,KAAK,kBAAkB;;AAG7C,YAAI,OAAO,QAAQ,UAAU;AAC3B,iBAAO,eAAe,GAAG;;AAG3B,YAAI,eAAe,MAAM;AACvB,iBAAO,eAAe,IAAI,QAAO,CAAE;;AAGrC,YAAI,kBAAkB,GAAG,GAAG;AAC1B,iBAAO;;AAGT,YAAI,KAAK,oBAAoB;AAG3B,iBAAO,eAAe,KAAK,IAAG,CAAE;;AAGlC,cAAM,aAAa,cAAc,IAAG,IAAK,KAAK;AAC9C,eAAO,WAAW,KAAK,WAAW,eAAe,UAAU,CAAC;MAC9D;MAEA,cAAW;AACT,eAAO,KAAK,WAAW;MACzB;MAEA,gBAAgB,WAAsB,MAAgB;AACpD,cAAM,aAAyB,CAAA;AAC/B,YAAI,OAAO,cAAc,UAAU;AACjC,qBAAW,sBAAsB,IAAI;mBAC5B,WAAW;AACpB,cAAI,UAAU,MAAM;AAClB,uBAAW,mBAAmB,IAAI,UAAU,KAAK,SAAQ;qBAChD,UAAU,MAAM;AACzB,uBAAW,mBAAmB,IAAI,UAAU;;AAE9C,cAAI,UAAU,SAAS;AACrB,uBAAW,sBAAsB,IAAI,UAAU;;AAEjD,cAAI,UAAU,OAAO;AACnB,uBAAW,yBAAyB,IAAI,UAAU;;;AAKtD,YAAI,WAAW,mBAAmB,KAAK,WAAW,sBAAsB,GAAG;AACzE,eAAK,SAAS,oBAAoB,YAAY,IAAI;eAC7C;AACL,eAAK,KAAK,iCAAiC,SAAS,EAAE;;MAE1D;MAEA,IAAI,WAAQ;AACV,eAAO,KAAK;MACd;MAEA,IAAI,QAAK;AACP,eAAO,KAAK;MACd;MAEA,IAAI,yBAAsB;AACxB,eAAO,KAAK;MACd;MAEA,IAAI,qBAAkB;AACpB,eAAO,KAAK;MACd;MAEA,IAAI,oBAAiB;AACnB,eAAO,KAAK;MACd;MAEQ,eAAY;AAClB,YAAI,KAAK,QAAQ;AACf,gBAAM,QAAQ,IAAI,MAChB,+CAA+C,KAAK,aAAa,OAAO,aAAa,KAAK,aAAa,MAAM,GAAG;AAGlH,eAAK,KACH,wDAAwD,KAAK,aAAa,OAAO,aAAa,KAAK,aAAa,MAAM,KACtH,KAAK;;AAGT,eAAO,KAAK;MACd;;;;MAKQ,qBAAqB,OAAe,OAAa;AACvD,YAAI,MAAM,UAAU,OAAO;AACzB,iBAAO;;AAET,eAAO,MAAM,UAAU,GAAG,KAAK;MACjC;;;;;;;;;;;;;MAcQ,gBAAgB,OAAqB;AAC3C,cAAM,QAAQ,KAAK;AAEnB,YAAI,SAAS,GAAG;AAEd,eAAK,KAAK,+CAA+C,KAAK,EAAE;AAChE,iBAAO;;AAIT,YAAI,OAAO,UAAU,UAAU;AAC7B,iBAAO,KAAK,qBAAqB,OAAO,KAAK;;AAI/C,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAQ,MAAa,IAAI,SACvB,OAAO,QAAQ,WAAW,KAAK,qBAAqB,KAAK,KAAK,IAAI,GAAG;;AAKzE,eAAO;MACT;;;;;;AC5bF,IA4BYC;AA5BZ;;;AA4BA,KAAA,SAAYA,mBAAgB;AAK1B,MAAAA,kBAAAA,kBAAA,YAAA,IAAA,CAAA,IAAA;AAKA,MAAAA,kBAAAA,kBAAA,QAAA,IAAA,CAAA,IAAA;AAKA,MAAAA,kBAAAA,kBAAA,oBAAA,IAAA,CAAA,IAAA;IACF,GAhBYA,sBAAAA,oBAAgB,CAAA,EAAA;;;;;AC5B5B,IAmBa;AAnBb;;;AAgBA;AAGM,IAAO,mBAAP,MAAuB;MAC3B,eAAY;AACV,eAAO;UACL,UAAUC,kBAAiB;;MAE/B;MAEA,WAAQ;AACN,eAAO;MACT;;;;;;AC5BF,IAmBa;AAnBb;;;AAgBA;AAGM,IAAO,kBAAP,MAAsB;MAC1B,eAAY;AACV,eAAO;UACL,UAAUC,kBAAiB;;MAE/B;MAEA,WAAQ;AACN,eAAO;MACT;;;;;;AC5BF,IAkCa;AAlCb;;;AAgBA;AASA,IAAAC;AACA;AACA;AAOM,IAAO,qBAAP,MAAyB;MACrB;MACA;MACA;MACA;MACA;MAER,YAAY,QAAgC;AAC1C,aAAK,QAAQ,OAAO;AAEpB,YAAI,CAAC,KAAK,OAAO;AACf,6BACE,IAAI,MAAM,wDAAwD,CAAC;AAErE,eAAK,QAAQ,IAAI,gBAAe;;AAGlC,aAAK,uBACH,OAAO,uBAAuB,IAAI,gBAAe;AACnD,aAAK,0BACH,OAAO,0BAA0B,IAAI,iBAAgB;AACvD,aAAK,sBACH,OAAO,sBAAsB,IAAI,gBAAe;AAClD,aAAK,yBACH,OAAO,yBAAyB,IAAI,iBAAgB;MACxD;MAEA,aACEC,UACA,SACA,UACA,UACA,YACA,OAAa;AAEb,cAAM,gBAAgB,MAAM,eAAeA,QAAO;AAElD,YAAI,CAAC,iBAAiB,CAAC,mBAAmB,aAAa,GAAG;AACxD,iBAAO,KAAK,MAAM,aAChBA,UACA,SACA,UACA,UACA,YACA,KAAK;;AAIT,YAAI,cAAc,UAAU;AAC1B,cAAI,cAAc,aAAa,WAAW,SAAS;AACjD,mBAAO,KAAK,qBAAqB,aAC/BA,UACA,SACA,UACA,UACA,YACA,KAAK;;AAGT,iBAAO,KAAK,wBAAwB,aAClCA,UACA,SACA,UACA,UACA,YACA,KAAK;;AAIT,YAAI,cAAc,aAAa,WAAW,SAAS;AACjD,iBAAO,KAAK,oBAAoB,aAC9BA,UACA,SACA,UACA,UACA,YACA,KAAK;;AAIT,eAAO,KAAK,uBAAuB,aACjCA,UACA,SACA,UACA,UACA,YACA,KAAK;MAET;MAEA,WAAQ;AACN,eAAO,oBAAoB,KAAK,MAAM,SAAQ,CAAE,yBAAyB,KAAK,qBAAqB,SAAQ,CAAE,4BAA4B,KAAK,wBAAwB,SAAQ,CAAE,wBAAwB,KAAK,oBAAoB,SAAQ,CAAE,2BAA2B,KAAK,uBAAuB,SAAQ,CAAE;MAC9S;;;;;;AC9HF,IAoBa;AApBb;;;AAgBA;AACA;AAGM,IAAO,2BAAP,MAA+B;MAClB;MACT;MAER,YAAY,QAAQ,GAAC;AACnB,aAAK,SAAS,KAAK,WAAW,KAAK;AACnC,aAAK,cAAc,KAAK,MAAM,KAAK,SAAS,UAAU;MACxD;MAEA,aAAaC,UAAkB,SAAe;AAC5C,eAAO;UACL,UACE,eAAe,OAAO,KAAK,KAAK,YAAY,OAAO,IAAI,KAAK,cACxDC,kBAAiB,qBACjBA,kBAAiB;;MAE3B;MAEA,WAAQ;AACN,eAAO,qBAAqB,KAAK,MAAM;MACzC;MAEQ,WAAW,OAAa;AAC9B,YAAI,OAAO,UAAU,YAAY,MAAM,KAAK;AAAG,iBAAO;AACtD,eAAO,SAAS,IAAI,IAAI,SAAS,IAAI,IAAI;MAC3C;MAEQ,YAAY,SAAe;AACjC,YAAI,eAAe;AACnB,iBAAS,IAAI,GAAG,IAAI,QAAQ,SAAS,GAAG,KAAK;AAC3C,gBAAM,MAAM,IAAI;AAChB,gBAAM,OAAO,SAAS,QAAQ,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE;AACrD,0BAAgB,eAAe,UAAU;;AAE3C,eAAO;MACT;;;;;;ACXI,SAAU,oBAAiB;AAC/B,SAAO;IACL,SAAS,oBAAmB;IAC5B,yBAAyB;IACzB,eAAe;MACb,2BACE,iBAAiB,mCAAmC,KAAK;MAC3D,qBACE,iBAAiB,4BAA4B,KAAK;;IAEtD,YAAY;MACV,2BACE,iBAAiB,wCAAwC,KAAK;MAChE,qBACE,iBAAiB,iCAAiC,KAAK;MACzD,gBAAgB,iBAAiB,4BAA4B,KAAK;MAClE,iBAAiB,iBAAiB,6BAA6B,KAAK;MACpE,6BACE,iBAAiB,2CAA2C,KAAK;MACnE,4BACE,iBAAiB,0CAA0C,KAAK;;;AAGxE;AAKM,SAAU,sBAAmB;AACjC,QAAM,UACJ,iBAAiB,qBAAqB,KACtC,oBAAoB;AACtB,UAAQ,SAAS;IACf,KAAK,oBAAoB;AACvB,aAAO,IAAI,gBAAe;IAC5B,KAAK,oBAAoB;AACvB,aAAO,IAAI,iBAAgB;IAC7B,KAAK,oBAAoB;AACvB,aAAO,IAAI,mBAAmB;QAC5B,MAAM,IAAI,gBAAe;OAC1B;IACH,KAAK,oBAAoB;AACvB,aAAO,IAAI,mBAAmB;QAC5B,MAAM,IAAI,iBAAgB;OAC3B;IACH,KAAK,oBAAoB;AACvB,aAAO,IAAI,yBAAyB,6BAA4B,CAAE;IACpE,KAAK,oBAAoB;AACvB,aAAO,IAAI,mBAAmB;QAC5B,MAAM,IAAI,yBAAyB,6BAA4B,CAAE;OAClE;IACH;AACE,WAAK,MACH,8BAA8B,OAAO,6BAA6B,oBAAoB,mBAAmB,IAAI;AAE/G,aAAO,IAAI,mBAAmB;QAC5B,MAAM,IAAI,gBAAe;OAC1B;;AAEP;AAEA,SAAS,+BAA4B;AACnC,QAAM,cAAc,iBAAiB,yBAAyB;AAC9D,MAAI,eAAe,MAAM;AACvB,SAAK,MACH,mDAAmD,aAAa,GAAG;AAErE,WAAO;;AAGT,MAAI,cAAc,KAAK,cAAc,GAAG;AACtC,SAAK,MACH,2BAA2B,WAAW,8DAA8D,aAAa,GAAG;AAEtH,WAAO;;AAGT,SAAO;AACT;AA1HA,IAwBW,qBASL;AAjCN;;;AAgBA;AACA,IAAAC;AAEA;AACA;AACA;AACA;AAEA,KAAA,SAAWC,sBAAmB;AAC5B,MAAAA,qBAAA,WAAA,IAAA;AACA,MAAAA,qBAAA,UAAA,IAAA;AACA,MAAAA,qBAAA,sBAAA,IAAA;AACA,MAAAA,qBAAA,qBAAA,IAAA;AACA,MAAAA,qBAAA,yBAAA,IAAA;AACA,MAAAA,qBAAA,cAAA,IAAA;IACF,GAPW,wBAAA,sBAAmB,CAAA,EAAA;AAS9B,IAAM,gBAAgB;;;;;ACLhB,SAAU,YAAY,YAAwB;AAKlD,QAAM,sBAA6C;IACjD,SAAS,oBAAmB;;AAG9B,QAAM,iBAAiB,kBAAiB;AAExC,QAAM,SAAS,OAAO,OACpB,CAAA,GACA,gBACA,qBACA,UAAU;AAGZ,SAAO,gBAAgB,OAAO,OAC5B,CAAA,GACA,eAAe,eACf,WAAW,iBAAiB,CAAA,CAAE;AAGhC,SAAO,aAAa,OAAO,OACzB,CAAA,GACA,eAAe,YACf,WAAW,cAAc,CAAA,CAAE;AAG7B,SAAO;AACT;AAOM,SAAU,kBAAkB,YAAwB;AACxD,QAAM,aAAa,OAAO,OAAO,CAAA,GAAI,WAAW,UAAU;AAK1D,aAAW,sBACT,WAAW,YAAY,uBACvB,WAAW,eAAe,uBAC1B,iBAAiB,iCAAiC,KAClD,iBAAiB,4BAA4B,KAC7C;AAKF,aAAW,4BACT,WAAW,YAAY,6BACvB,WAAW,eAAe,6BAC1B,iBAAiB,wCAAwC,KACzD,iBAAiB,mCAAmC,KACpD;AAEF,SAAO,OAAO,OAAO,CAAA,GAAI,YAAY,EAAE,WAAU,CAAE;AACrD;AA1FA,IAqBa,+BACA;AAtBb;;;AAgBA;AAGA,IAAAC;AAEO,IAAM,gCAAgC;AACtC,IAAM,uCAAuC;;;;;ACtBpD,IAkCsB;AAlCtB;;;AAgBA;AACA,IAAAC;AAiBM,IAAgB,yBAAhB,MAAsC;MAGzB;MACA;MACA;MACA;MACA;MAET,eAAe;MACf,iBAAiC,CAAA;MACjC;MACA;MACA,qBAA6B;MAErC,YAAY,UAAwB,QAAU;AAC5C,aAAK,YAAY;AACjB,aAAK,sBACH,OAAO,QAAQ,uBAAuB,WAClC,OAAO,qBACN,iBAAiB,gCAAgC,KAAK;AAC7D,aAAK,gBACH,OAAO,QAAQ,iBAAiB,WAC5B,OAAO,eACN,iBAAiB,yBAAyB,KAAK;AACtD,aAAK,wBACH,OAAO,QAAQ,yBAAyB,WACpC,OAAO,uBACN,iBAAiB,yBAAyB,KAAK;AACtD,aAAK,uBACH,OAAO,QAAQ,wBAAwB,WACnC,OAAO,sBACN,iBAAiB,yBAAyB,KAAK;AAEtD,aAAK,gBAAgB,IAAI,eAAe,KAAK,WAAW,IAAI;AAE5D,YAAI,KAAK,sBAAsB,KAAK,eAAe;AACjD,eAAK,KACH,mIAAmI;AAErI,eAAK,sBAAsB,KAAK;;MAEpC;MAEA,aAAU;AACR,YAAI,KAAK,cAAc,UAAU;AAC/B,iBAAO,KAAK,cAAc;;AAE5B,eAAO,KAAK,UAAS;MACvB;;MAGA,QAAQ,OAAa,gBAAuB;MAAS;MAErD,MAAM,MAAkB;AACtB,YAAI,KAAK,cAAc,UAAU;AAC/B;;AAGF,aAAK,KAAK,YAAW,EAAG,aAAa,WAAW,aAAa,GAAG;AAC9D;;AAGF,aAAK,aAAa,IAAI;MACxB;MAEA,WAAQ;AACN,eAAO,KAAK,cAAc,KAAI;MAChC;MAEQ,YAAS;AACf,eAAO,QAAQ,QAAO,EACnB,KAAK,MAAK;AACT,iBAAO,KAAK,WAAU;QACxB,CAAC,EACA,KAAK,MAAK;AACT,iBAAO,KAAK,UAAS;QACvB,CAAC,EACA,KAAK,MAAK;AACT,iBAAO,KAAK,UAAU,SAAQ;QAChC,CAAC;MACL;;MAGQ,aAAa,MAAkB;AACrC,YAAI,KAAK,eAAe,UAAU,KAAK,eAAe;AAGpD,cAAI,KAAK,uBAAuB,GAAG;AACjC,iBAAK,MAAM,sCAAsC;;AAEnD,eAAK;AAEL;;AAGF,YAAI,KAAK,qBAAqB,GAAG;AAE/B,eAAK,KACH,WAAW,KAAK,kBAAkB,qCAAqC;AAEzE,eAAK,qBAAqB;;AAG5B,aAAK,eAAe,KAAK,IAAI;AAC7B,aAAK,iBAAgB;MACvB;;;;;;MAOQ,YAAS;AACf,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,gBAAM,WAAW,CAAA;AAEjB,gBAAM,QAAQ,KAAK,KACjB,KAAK,eAAe,SAAS,KAAK,mBAAmB;AAEvD,mBAAS,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,KAAK;AACrC,qBAAS,KAAK,KAAK,eAAc,CAAE;;AAErC,kBAAQ,IAAI,QAAQ,EACjB,KAAK,MAAK;AACT,oBAAO;UACT,CAAC,EACA,MAAM,MAAM;QACjB,CAAC;MACH;MAEQ,iBAAc;AACpB,aAAK,YAAW;AAChB,YAAI,KAAK,eAAe,WAAW,GAAG;AACpC,iBAAO,QAAQ,QAAO;;AAExB,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,gBAAM,QAAQ,WAAW,MAAK;AAE5B,mBAAO,IAAI,MAAM,SAAS,CAAC;UAC7B,GAAG,KAAK,oBAAoB;AAE5B,kBAAQ,KAAK,gBAAgB,QAAQ,OAAM,CAAE,GAAG,MAAK;AAInD,gBAAI;AACJ,gBAAI,KAAK,eAAe,UAAU,KAAK,qBAAqB;AAC1D,sBAAQ,KAAK;AACb,mBAAK,iBAAiB,CAAA;mBACjB;AACL,sBAAQ,KAAK,eAAe,OAAO,GAAG,KAAK,mBAAmB;;AAGhE,kBAAM,WAAW,MACf,KAAK,UAAU,OAAO,OAAO,YAAS;AACpC,2BAAa,KAAK;AAClB,kBAAI,OAAO,SAAS,iBAAiB,SAAS;AAC5C,wBAAO;qBACF;AACL,uBACE,OAAO,SACL,IAAI,MAAM,wCAAwC,CAAC;;YAG3D,CAAC;AAEH,gBAAI,mBAAgD;AACpD,qBAAS,IAAI,GAAG,MAAM,MAAM,QAAQ,IAAI,KAAK,KAAK;AAChD,oBAAM,OAAO,MAAM,CAAC;AACpB,kBACE,KAAK,SAAS,0BACd,KAAK,SAAS,wBACd;AACA,qCAAqB,CAAA;AACrB,iCAAiB,KAAK,KAAK,SAAS,uBAAsB,CAAE;;;AAKhE,gBAAI,qBAAqB,MAAM;AAC7B,uBAAQ;mBACH;AACL,sBAAQ,IAAI,gBAAgB,EAAE,KAAK,UAAU,SAAM;AACjD,mCAAmB,GAAG;AACtB,uBAAO,GAAG;cACZ,CAAC;;UAEL,CAAC;QACH,CAAC;MACH;MAEQ,mBAAgB;AACtB,YAAI,KAAK;AAAc;AACvB,cAAM,QAAQ,MAAK;AACjB,eAAK,eAAe;AACpB,eAAK,eAAc,EAChB,QAAQ,MAAK;AACZ,iBAAK,eAAe;AACpB,gBAAI,KAAK,eAAe,SAAS,GAAG;AAClC,mBAAK,YAAW;AAChB,mBAAK,iBAAgB;;UAEzB,CAAC,EACA,MAAM,OAAI;AACT,iBAAK,eAAe;AACpB,+BAAmB,CAAC;UACtB,CAAC;QACL;AAEA,YAAI,KAAK,eAAe,UAAU,KAAK,qBAAqB;AAC1D,iBAAO,MAAK;;AAEd,YAAI,KAAK,WAAW;AAAW;AAC/B,aAAK,SAAS,WAAW,MAAM,MAAK,GAAI,KAAK,qBAAqB;AAGlE,YAAI,OAAO,KAAK,WAAW,UAAU;AACnC,eAAK,OAAO,MAAK;;MAErB;MAEQ,cAAW;AACjB,YAAI,KAAK,WAAW,QAAW;AAC7B,uBAAa,KAAK,MAAM;AACxB,eAAK,SAAS;;MAElB;;;;;;ACrQF,IAmBa;AAnBb;;;AAgBA;AAGM,IAAO,qBAAP,cAAkC,uBAAoC;MAChE,aAAU;MAAU;;;;;;ACgBhC,SAAS,eAAe,OAAa;AACnC,SAAO,SAAS,aAAU;AACxB,aAAS,IAAI,GAAG,IAAI,QAAQ,GAAG,KAAK;AAGlC,oBAAc,cAAe,KAAK,OAAM,IAAK,KAAK,OAAQ,GAAG,IAAI,CAAC;;AAIpE,aAAS,IAAI,GAAG,IAAI,OAAO,KAAK;AAC9B,UAAI,cAAc,CAAC,IAAI,GAAG;AACxB;iBACS,MAAM,QAAQ,GAAG;AAC1B,sBAAc,QAAQ,CAAC,IAAI;;;AAI/B,WAAO,cAAc,SAAS,OAAO,GAAG,KAAK;EAC/C;AACF;AAvDA,IAkBM,eACA,gBAEO,mBAcP;AAnCN;;;AAkBA,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AAEjB,IAAO,oBAAP,MAAwB;;;;;MAK5B,kBAAkB,eAAe,cAAc;;;;;MAM/C,iBAAiB,eAAe,aAAa;;AAG/C,IAAM,gBAAgB,OAAO,YAAY,cAAc;;;;;ACnCvD;;;AAgBA;AACA;;;;;ACjBA;;;AAgBA;;;;;AChBA,IAkCa;AAlCb;;;AAgBA;AACA,IAAAC;AAKA;AAEA;AAIA;AAMM,IAAO,SAAP,MAAa;MACA;MACA;MACA;MACA;MACR;MAEQ;MACA;;;;MAKjB,YACE,sBACA,QACA,UACA,eAA4B;AAE5B,cAAM,cAAc,YAAY,MAAM;AACtC,aAAK,WAAW,YAAY;AAC5B,aAAK,iBAAiB,YAAY;AAClC,aAAK,cAAc,YAAY;AAC/B,aAAK,eAAe,OAAO,eAAe,IAAI,kBAAiB;AAC/D,aAAK,YAAY;AACjB,aAAK,iBAAiB;AACtB,aAAK,uBAAuB;MAC9B;;;;;MAMA,UACE,MACA,UAA2B,CAAA,GAC3BC,WAAc,QAAQ,OAAM,GAAE;AAG9B,YAAI,QAAQ,MAAM;AAChB,UAAAA,WAAc,MAAM,WAAWA,QAAO;;AAExC,cAAM,aAAiB,MAAM,QAAQA,QAAO;AAE5C,YAAI,oBAAoBA,QAAO,GAAG;AAChC,UAAI,KAAK,MAAM,iDAAiD;AAChE,gBAAM,mBAAuB,MAAM,gBAC7B,oBAAoB;AAE1B,iBAAO;;AAGT,cAAM,oBAAoB,YAAY,YAAW;AACjD,cAAM,SAAS,KAAK,aAAa,eAAc;AAC/C,YAAI;AACJ,YAAI;AACJ,YAAI;AACJ,YACE,CAAC,qBACD,CAAK,MAAM,mBAAmB,iBAAiB,GAC/C;AAEA,oBAAU,KAAK,aAAa,gBAAe;eACtC;AAEL,oBAAU,kBAAkB;AAC5B,uBAAa,kBAAkB;AAC/B,mCAAyB;;AAG3B,cAAM,WAAW,QAAQ,QAAY,SAAS;AAC9C,cAAM,SAAS,QAAQ,SAAS,CAAA,GAAI,IAAI,UAAO;AAC7C,iBAAO;YACL,SAAS,KAAK;YACd,YAAY,mBAAmB,KAAK,UAAU;;QAElD,CAAC;AACD,cAAM,aAAa,mBAAmB,QAAQ,UAAU;AAExD,cAAM,iBAAiB,KAAK,SAAS,aACnCA,UACA,SACA,MACA,UACA,YACA,KAAK;AAGP,qBAAa,eAAe,cAAc;AAE1C,cAAM,aACJ,eAAe,aAAiB,iBAAiB,qBACzC,WAAW,UACX,WAAW;AACrB,cAAM,cAAc,EAAE,SAAS,QAAQ,YAAY,WAAU;AAC7D,YAAI,eAAe,aAAiB,iBAAiB,YAAY;AAC/D,UAAI,KAAK,MACP,+DAA+D;AAEjE,gBAAM,mBAAuB,MAAM,gBAAgB,WAAW;AAC9D,iBAAO;;AAKT,cAAM,iBAAiB,mBACrB,OAAO,OAAO,YAAY,eAAe,UAAU,CAAC;AAGtD,cAAM,OAAO,IAAI,SAAS;UACxB,UAAU,KAAK;UACf,OAAO,KAAK;UACZ,SAAAA;UACA;UACA;UACA,MAAM;UACN;UACA,mBAAmB;UACnB,YAAY;UACZ,WAAW,QAAQ;UACnB,eAAe,KAAK;UACpB,YAAY,KAAK;SAClB;AACD,eAAO;MACT;MA4DA,gBACE,MACA,MACA,MACA,MAAQ;AAER,YAAI;AACJ,YAAI;AACJ,YAAI;AAEJ,YAAI,UAAU,SAAS,GAAG;AACxB;mBACS,UAAU,WAAW,GAAG;AACjC,eAAK;mBACI,UAAU,WAAW,GAAG;AACjC,iBAAO;AACP,eAAK;eACA;AACL,iBAAO;AACP,gBAAM;AACN,eAAK;;AAGP,cAAM,gBAAgB,OAAW,QAAQ,OAAM;AAC/C,cAAM,OAAO,KAAK,UAAU,MAAM,MAAM,aAAa;AACrD,cAAM,qBAAyB,MAAM,QAAQ,eAAe,IAAI;AAEhE,eAAW,QAAQ,KAAK,oBAAoB,IAAI,QAAW,IAAI;MACjE;;MAGA,mBAAgB;AACd,eAAO,KAAK;MACd;;MAGA,gBAAa;AACX,eAAO,KAAK;MACd;;;;;;AChQF,IA0Ba;AA1Bb;;;AAiBA,IAAAC;AASM,IAAO,qBAAP,MAAyB;MACZ;MACjB,YAAY,gBAA+B;AACzC,aAAK,kBAAkB;MACzB;MAEA,aAAU;AACR,cAAM,WAA4B,CAAA;AAElC,mBAAW,iBAAiB,KAAK,iBAAiB;AAChD,mBAAS,KAAK,cAAc,WAAU,CAAE;;AAE1C,eAAO,IAAI,QAAQ,aAAU;AAC3B,kBAAQ,IAAI,QAAQ,EACjB,KAAK,MAAK;AACT,oBAAO;UACT,CAAC,EACA,MAAM,WAAQ;AACb,+BACE,SAAS,IAAI,MAAM,uCAAuC,CAAC;AAE7D,oBAAO;UACT,CAAC;QACL,CAAC;MACH;MAEA,QAAQ,MAAYC,UAAgB;AAClC,mBAAW,iBAAiB,KAAK,iBAAiB;AAChD,wBAAc,QAAQ,MAAMA,QAAO;;MAEvC;MAEA,SAAS,MAAU;AACjB,mBAAW,iBAAiB,KAAK,iBAAiB;AAChD,cAAI,cAAc,UAAU;AAC1B,0BAAc,SAAS,IAAI;;;MAGjC;MAEA,MAAM,MAAkB;AACtB,mBAAW,iBAAiB,KAAK,iBAAiB;AAChD,wBAAc,MAAM,IAAI;;MAE5B;MAEA,WAAQ;AACN,cAAM,WAA4B,CAAA;AAElC,mBAAW,iBAAiB,KAAK,iBAAiB;AAChD,mBAAS,KAAK,cAAc,SAAQ,CAAE;;AAExC,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACrC,kBAAQ,IAAI,QAAQ,EAAE,KAAK,MAAK;AAC9B,oBAAO;UACT,GAAG,MAAM;QACX,CAAC;MACH;;;;;;ACnFF,IA0BY,iBAUC;AApCb;;;AAiBA,IAAAC;AACA,IAAAA;AAEA;AACA;AACA;AAEA;AAEA,KAAA,SAAYC,kBAAe;AACzB,MAAAA,iBAAAA,iBAAA,UAAA,IAAA,CAAA,IAAA;AACA,MAAAA,iBAAAA,iBAAA,SAAA,IAAA,CAAA,IAAA;AACA,MAAAA,iBAAAA,iBAAA,OAAA,IAAA,CAAA,IAAA;AACA,MAAAA,iBAAAA,iBAAA,YAAA,IAAA,CAAA,IAAA;IACF,GALY,oBAAA,kBAAe,CAAA,EAAA;AAUrB,IAAO,sBAAP,MAA0B;MACb;MACA,WAAgC,oBAAI,IAAG;MACvC;MACA;MAEjB,YAAY,SAAuB,CAAA,GAAE;AACnC,cAAM,eAAe,MACnB,CAAA,GACA,kBAAiB,GACjB,kBAAkB,MAAM,CAAC;AAE3B,aAAK,YAAY,aAAa,YAAY,gBAAe;AAEzD,aAAK,UAAU,OAAO,OAAO,CAAA,GAAI,cAAc;UAC7C,UAAU,KAAK;SAChB;AAED,cAAM,iBAAkC,CAAA;AAExC,YAAI,OAAO,gBAAgB,QAAQ;AACjC,yBAAe,KAAK,GAAG,OAAO,cAAc;;AAG9C,aAAK,uBAAuB,IAAI,mBAAmB,cAAc;MACnE;MAEA,UACE,MACA,SACA,SAAgC;AAEhC,cAAM,MAAM,GAAG,IAAI,IAAI,WAAW,EAAE,IAAI,SAAS,aAAa,EAAE;AAChE,YAAI,CAAC,KAAK,SAAS,IAAI,GAAG,GAAG;AAC3B,eAAK,SAAS,IACZ,KACA,IAAI,OACF,EAAE,MAAM,SAAS,WAAW,SAAS,UAAS,GAC9C,KAAK,SACL,KAAK,WACL,KAAK,oBAAoB,CAC1B;;AAKL,eAAO,KAAK,SAAS,IAAI,GAAG;MAC9B;MAEA,aAAU;AACR,cAAM,UAAU,KAAK,QAAQ;AAC7B,cAAM,WAAW,KAAK,qBAAqB,iBAAiB,EAAE,IAC5D,CAAC,kBAAgC;AAC/B,iBAAO,IAAI,QAAQ,aAAU;AAC3B,gBAAI;AACJ,kBAAM,kBAAkB,WAAW,MAAK;AACtC,sBACE,IAAI,MACF,6DAA6D,OAAO,KAAK,CAC1E;AAEH,sBAAQ,gBAAgB;YAC1B,GAAG,OAAO;AAEV,0BACG,WAAU,EACV,KAAK,MAAK;AACT,2BAAa,eAAe;AAC5B,kBAAI,UAAU,gBAAgB,SAAS;AACrC,wBAAQ,gBAAgB;AACxB,wBAAQ,KAAK;;YAEjB,CAAC,EACA,MAAM,WAAQ;AACb,2BAAa,eAAe;AAC5B,sBAAQ,gBAAgB;AACxB,sBAAQ,KAAK;YACf,CAAC;UACL,CAAC;QACH,CAAC;AAGH,eAAO,IAAI,QAAc,CAAC,SAAS,WAAU;AAC3C,kBAAQ,IAAI,QAAQ,EACjB,KAAK,aAAU;AACd,kBAAM,SAAS,QAAQ,OACrB,YAAU,WAAW,gBAAgB,QAAQ;AAE/C,gBAAI,OAAO,SAAS,GAAG;AACrB,qBAAO,MAAM;mBACR;AACL,sBAAO;;UAEX,CAAC,EACA,MAAM,WAAS,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;MACH;MAEA,WAAQ;AACN,eAAO,KAAK,qBAAqB,SAAQ;MAC3C;;;;;;ACxIF,IAgCa;AAhCb;;;AAkBA,IAAAC;AAcM,IAAO,sBAAP,MAA0B;;;;;;MAM9B,OACE,OACA,gBAA8C;AAE9C,eAAO,KAAK,WAAW,OAAO,cAAc;MAC9C;;;;MAKA,WAAQ;AACN,aAAK,WAAW,CAAA,CAAE;AAClB,eAAO,KAAK,WAAU;MACxB;;;;MAKA,aAAU;AACR,eAAO,QAAQ,QAAO;MACxB;;;;;MAMQ,YAAY,MAAkB;AACpC,eAAO;UACL,UAAU;YACR,YAAY,KAAK,SAAS;;UAE5B,sBAAsB,KAAK;UAC3B,SAAS,KAAK,YAAW,EAAG;UAC5B,mBAAmB,KAAK;UACxB,YAAY,KAAK,YAAW,EAAG,YAAY,UAAS;UACpD,MAAM,KAAK;UACX,IAAI,KAAK,YAAW,EAAG;UACvB,MAAM,KAAK;UACX,WAAW,qBAAqB,KAAK,SAAS;UAC9C,UAAU,qBAAqB,KAAK,QAAQ;UAC5C,YAAY,KAAK;UACjB,QAAQ,KAAK;UACb,QAAQ,KAAK;UACb,OAAO,KAAK;;MAEhB;;;;;;MAOQ,WACN,OACA,MAAqC;AAErC,mBAAW,QAAQ,OAAO;AACxB,kBAAQ,IAAI,KAAK,YAAY,IAAI,GAAG,EAAE,OAAO,EAAC,CAAE;;AAElD,YAAI,MAAM;AACR,iBAAO,KAAK,EAAE,MAAM,iBAAiB,QAAO,CAAE;;MAElD;;;;;;ACpGF,IAyBa;AAzBb;;;AAkBA,IAAAC;AAOM,IAAO,uBAAP,MAA2B;MACvB,iBAAiC,CAAA;;;;;MAK/B,WAAW;MAErB,OACE,OACA,gBAA8C;AAE9C,YAAI,KAAK;AACP,iBAAO,eAAe;YACpB,MAAM,iBAAiB;YACvB,OAAO,IAAI,MAAM,2BAA2B;WAC7C;AACH,aAAK,eAAe,KAAK,GAAG,KAAK;AAEjC,mBAAW,MAAM,eAAe,EAAE,MAAM,iBAAiB,QAAO,CAAE,GAAG,CAAC;MACxE;MAEA,WAAQ;AACN,aAAK,WAAW;AAChB,aAAK,iBAAiB,CAAA;AACtB,eAAO,KAAK,WAAU;MACxB;;;;MAKA,aAAU;AACR,eAAO,QAAQ,QAAO;MACxB;MAEA,QAAK;AACH,aAAK,iBAAiB,CAAA;MACxB;MAEA,mBAAgB;AACd,eAAO,KAAK;MACd;;;;;;AClEF,IAoCa;AApCb;;;AAgBA;AACA,IAAAC;AAmBM,IAAO,sBAAP,MAA0B;MACb;MACT;MACA;MAER,YAAY,UAAsB;AAChC,aAAK,YAAY;AACjB,aAAK,gBAAgB,IAAI,eAAe,KAAK,WAAW,IAAI;AAC5D,aAAK,kBAAkB,oBAAI,IAAG;MAChC;MAEA,MAAM,aAAU;AACd,cAAM,QAAQ,IAAI,MAAM,KAAK,KAAK,eAAe,CAAC;AAClD,YAAI,KAAK,UAAU,YAAY;AAC7B,gBAAM,KAAK,UAAU,WAAU;;MAEnC;MAEA,QAAQ,OAAa,gBAAuB;MAAS;MAErD,MAAM,MAAkB;AACtB,YAAI,KAAK,cAAc,UAAU;AAC/B;;AAGF,aAAK,KAAK,YAAW,EAAG,aAAa,WAAW,aAAa,GAAG;AAC9D;;AAGF,cAAM,gBAAgB,KAAK,UAAU,IAAI,EAAE,MAAM,SAC/C,mBAAmB,GAAG,CAAC;AAGzB,aAAK,gBAAgB,IAAI,aAAa;AACtC,aAAK,cAAc,QAAQ,MACzB,KAAK,gBAAgB,OAAO,aAAa,CAAC;MAE9C;MAEQ,MAAM,UAAU,MAAkB;AACxC,YAAI,KAAK,SAAS,wBAAwB;AAExC,gBAAM,KAAK,SAAS,yBAAwB;;AAG9C,cAAM,SAAS,MAAM,SAAS,QAAQ,KAAK,WAAW,CAAC,IAAI,CAAC;AAC5D,YAAI,OAAO,SAAS,iBAAiB,SAAS;AAC5C,gBACE,OAAO,SACP,IAAI,MAAM,mDAAmD,MAAM,GAAG;;MAG5E;MAEA,WAAQ;AACN,eAAO,KAAK,cAAc,KAAI;MAChC;MAEQ,YAAS;AACf,eAAO,KAAK,UAAU,SAAQ;MAChC;;;;;;AChGF,IAsBa;AAtBb;;;AAsBM,IAAO,oBAAP,MAAwB;MAC5B,QAAQ,OAAa,UAAiB;MAAS;MAC/C,MAAM,OAAmB;MAAS;MAClC,WAAQ;AACN,eAAO,QAAQ,QAAO;MACxB;MACA,aAAU;AACR,eAAO,QAAQ,QAAO;MACxB;;;;;;AC9BF,IAAAC,eAAA;SAAAA,cAAA;;;;;;;;;;0BAAAC;EAAA;;;IAAAC,YAAA;;;AAgBA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACbA,QAAA,wBAAA;AACA,QAAA,mBAAA;AAKA,QAAA,QAAA;AAOA,QAAA,SAAA;AAMA,aAAS,oBACP,gBAAiD;AAGjD,UAAI,mBAAmB,MAAM;AAC3B;;AAIF,UAAI,mBAAmB,QAAW;AAChC,cAAM,wBAAwB,IAAI,sBAAA,gCAA+B;AACjE,8BAAsB,OAAM;AAC5B,cAAA,QAAQ,wBAAwB,qBAAqB;AACrD;;AAGF,qBAAe,OAAM;AACrB,YAAA,QAAQ,wBAAwB,cAAc;IAChD;AAEA,aAAS,gBAAgB,YAAgD;AAEvE,UAAI,eAAe,MAAM;AACvB;;AAIF,UAAI,eAAe,QAAW;AAC5B,cAAA,YAAY,oBACV,IAAI,OAAA,oBAAoB;UACtB,aAAa;YACX,IAAI,OAAA,0BAAyB;YAC7B,IAAI,OAAA,qBAAoB;;SAE3B,CAAC;AAEJ;;AAGF,YAAA,YAAY,oBAAoB,UAAU;IAC5C;AASA,QAAa,qBAAb,cAAwC,iBAAA,oBAAmB;MACzD,YAAY,SAA2B,CAAA,GAAE;AACvC,cAAM,MAAM;MACd;;;;;;;;MASA,SAAS,SAAgC,CAAA,GAAE;AACzC,cAAA,MAAM,wBAAwB,IAAI;AAClC,4BAAoB,OAAO,cAAc;AACzC,wBAAgB,OAAO,UAAU;MACnC;;AAhBF,YAAA,qBAAA;;;;;;;;;AClEA,QAAA,uBAAA;AAAS,WAAA,eAAA,SAAA,sBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,qBAAA;IAAkB,EAAA,CAAA;AAC3B,QAAA,mBAAA;AACE,WAAA,eAAA,SAAA,oBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAgB,EAAA,CAAA;AAChB,WAAA,eAAA,SAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAe,EAAA,CAAA;AACf,WAAA,eAAA,SAAA,uBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAmB,EAAA,CAAA;AACnB,WAAA,eAAA,SAAA,sBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAkB,EAAA,CAAA;AAClB,WAAA,eAAA,SAAA,uBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAmB,EAAA,CAAA;AACnB,WAAA,eAAA,SAAA,wBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAoB,EAAA,CAAA;AACpB,WAAA,eAAA,SAAA,qBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAiB,EAAA,CAAA;AACjB,WAAA,eAAA,SAAA,sBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAkB,EAAA,CAAA;AAClB,WAAA,eAAA,SAAA,qBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAiB,EAAA,CAAA;AACjB,WAAA,eAAA,SAAA,oBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAgB,EAAA,CAAA;AAChB,WAAA,eAAA,SAAA,uBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAmB,EAAA,CAAA;AACnB,WAAA,eAAA,SAAA,4BAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,iBAAA;IAAwB,EAAA,CAAA;;;","names":["context","context","context","init_esm","SamplingDecision","SamplingDecision","SamplingDecision","init_esm","context","context","SamplingDecision","init_esm","TracesSamplerValues","init_esm","init_esm","init_esm","context","init_esm","context","init_esm","ForceFlushState","init_esm","init_esm","init_esm","esm_exports","SamplingDecision","init_esm"]}
|
|
@@ -10,13 +10,9 @@ targets:
|
|
|
10
10
|
model: ${{ AZURE_DEPLOYMENT_NAME }}
|
|
11
11
|
# version: ${{ AZURE_OPENAI_API_VERSION }} # Optional: uncomment to override default (2024-12-01-preview)
|
|
12
12
|
|
|
13
|
-
- name: vscode
|
|
14
|
-
provider: vscode
|
|
15
|
-
judge_target: azure-base
|
|
16
|
-
|
|
17
13
|
- name: codex
|
|
18
14
|
provider: codex
|
|
19
|
-
judge_target: azure-
|
|
15
|
+
judge_target: azure-llm
|
|
20
16
|
# Uses the Codex CLI (defaults to `codex` on PATH)
|
|
21
17
|
# executable: ${{ CODEX_CLI_PATH }} # Optional: override executable path
|
|
22
18
|
# args: # Optional additional CLI arguments
|
|
@@ -26,7 +22,6 @@ targets:
|
|
|
26
22
|
# - ${{ CODEX_MODEL }}
|
|
27
23
|
# - --ask-for-approval
|
|
28
24
|
# - ${{ CODEX_APPROVAL_PRESET }}
|
|
29
|
-
timeout_seconds: 180
|
|
30
25
|
cwd: ${{ CODEX_WORKSPACE_DIR }} # Where scratch workspaces are created
|
|
31
26
|
log_dir: ${{ CODEX_LOG_DIR }} # Optional: where Codex CLI stream logs are stored (defaults to ./.agentv/logs/codex)
|
|
32
27
|
log_format: json # Optional: 'summary' (default) or 'json' for raw event logs
|
|
@@ -34,10 +29,9 @@ targets:
|
|
|
34
29
|
# Claude - Anthropic's Claude Agent SDK
|
|
35
30
|
- name: claude
|
|
36
31
|
provider: claude
|
|
37
|
-
judge_target: azure-
|
|
32
|
+
judge_target: azure-llm
|
|
38
33
|
# Uses the @anthropic-ai/claude-agent-sdk
|
|
39
34
|
# model: claude-sonnet-4-20250514 # Optional: override model
|
|
40
|
-
timeout_seconds: 180
|
|
41
35
|
# cwd: ${{ CLAUDE_WORKSPACE_DIR }} # Optional: working directory (defaults to process.cwd())
|
|
42
36
|
# max_turns: 50 # Optional: max conversation turns
|
|
43
37
|
# max_budget_usd: 5.0 # Optional: max cost budget in USD
|
|
@@ -45,33 +39,21 @@ targets:
|
|
|
45
39
|
log_format: json # Optional: 'summary' (default) or 'json' for raw event logs
|
|
46
40
|
# system_prompt: optional override (default instructs agent to include code in response)
|
|
47
41
|
|
|
48
|
-
- name:
|
|
49
|
-
provider: vscode
|
|
50
|
-
workspace_template: ${{ PROJECTX_WORKSPACE_PATH }}
|
|
51
|
-
provider_batching: false
|
|
52
|
-
judge_target: azure-base
|
|
53
|
-
|
|
54
|
-
- name: vscode_insiders_projectx
|
|
55
|
-
provider: vscode-insiders
|
|
56
|
-
workspace_template: ${{ PROJECTX_WORKSPACE_PATH }}
|
|
57
|
-
provider_batching: false
|
|
58
|
-
judge_target: azure-base
|
|
59
|
-
|
|
60
|
-
- name: azure-base
|
|
42
|
+
- name: azure-llm
|
|
61
43
|
provider: azure
|
|
62
44
|
endpoint: ${{ AZURE_OPENAI_ENDPOINT }}
|
|
63
45
|
api_key: ${{ AZURE_OPENAI_API_KEY }}
|
|
64
46
|
model: ${{ AZURE_DEPLOYMENT_NAME }}
|
|
65
47
|
version: ${{ AZURE_OPENAI_API_VERSION }}
|
|
66
48
|
|
|
67
|
-
- name:
|
|
49
|
+
- name: gemini-llm
|
|
68
50
|
provider: gemini
|
|
69
51
|
api_key: ${{ GOOGLE_GENERATIVE_AI_API_KEY }}
|
|
70
52
|
model: ${{ GEMINI_MODEL_NAME }}
|
|
71
53
|
|
|
72
54
|
- name: local_cli
|
|
73
55
|
provider: cli
|
|
74
|
-
judge_target: azure-
|
|
56
|
+
judge_target: azure-llm
|
|
75
57
|
# Passes the fully rendered prompt and any attached files to a local Python script
|
|
76
58
|
# NOTE: Do not add quotes around {PROMPT} or {FILES} - they are already shell-escaped
|
|
77
59
|
command: uv run ./mock_cli.py --prompt {PROMPT} {FILES} --output {OUTPUT_FILE}
|
|
@@ -79,6 +61,5 @@ targets:
|
|
|
79
61
|
files_format: --file {path}
|
|
80
62
|
# Optional working directory resolved from .env
|
|
81
63
|
cwd: ${{ CLI_EVALS_DIR }}
|
|
82
|
-
timeout_seconds: 30
|
|
83
64
|
healthcheck:
|
|
84
65
|
command: uv run ./mock_cli.py --healthcheck
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
require_token_util
|
|
4
|
+
} from "./chunk-BL4PVUAT.js";
|
|
5
|
+
import {
|
|
6
|
+
require_token_error
|
|
7
|
+
} from "./chunk-3L2L5GIL.js";
|
|
8
|
+
import {
|
|
9
|
+
__commonJS
|
|
10
|
+
} from "./chunk-5H446C7X.js";
|
|
11
|
+
|
|
12
|
+
// ../../node_modules/.bun/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token.js
|
|
13
|
+
var require_token = __commonJS({
|
|
14
|
+
"../../node_modules/.bun/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token.js"(exports, module) {
|
|
15
|
+
var __defProp = Object.defineProperty;
|
|
16
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
17
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
18
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
+
};
|
|
23
|
+
var __copyProps = (to, from, except, desc) => {
|
|
24
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
25
|
+
for (let key of __getOwnPropNames(from))
|
|
26
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
27
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
28
|
+
}
|
|
29
|
+
return to;
|
|
30
|
+
};
|
|
31
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
32
|
+
var token_exports = {};
|
|
33
|
+
__export(token_exports, {
|
|
34
|
+
refreshToken: () => refreshToken
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(token_exports);
|
|
37
|
+
var import_token_error = require_token_error();
|
|
38
|
+
var import_token_util = require_token_util();
|
|
39
|
+
async function refreshToken() {
|
|
40
|
+
const { projectId, teamId } = (0, import_token_util.findProjectInfo)();
|
|
41
|
+
let maybeToken = (0, import_token_util.loadToken)(projectId);
|
|
42
|
+
if (!maybeToken || (0, import_token_util.isExpired)((0, import_token_util.getTokenPayload)(maybeToken.token))) {
|
|
43
|
+
const authToken = (0, import_token_util.getVercelCliToken)();
|
|
44
|
+
if (!authToken) {
|
|
45
|
+
throw new import_token_error.VercelOidcTokenError(
|
|
46
|
+
"Failed to refresh OIDC token: login to vercel cli"
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
if (!projectId) {
|
|
50
|
+
throw new import_token_error.VercelOidcTokenError(
|
|
51
|
+
"Failed to refresh OIDC token: project id not found"
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
maybeToken = await (0, import_token_util.getVercelOidcToken)(authToken, projectId, teamId);
|
|
55
|
+
if (!maybeToken) {
|
|
56
|
+
throw new import_token_error.VercelOidcTokenError("Failed to refresh OIDC token");
|
|
57
|
+
}
|
|
58
|
+
(0, import_token_util.saveToken)(maybeToken, projectId);
|
|
59
|
+
}
|
|
60
|
+
process.env.VERCEL_OIDC_TOKEN = maybeToken.token;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
export default require_token();
|
|
66
|
+
//# sourceMappingURL=token-POXF46NU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.bun/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_exports = {};\n__export(token_exports, {\n refreshToken: () => refreshToken\n});\nmodule.exports = __toCommonJS(token_exports);\nvar import_token_error = require(\"./token-error\");\nvar import_token_util = require(\"./token-util\");\nasync function refreshToken() {\n const { projectId, teamId } = (0, import_token_util.findProjectInfo)();\n let maybeToken = (0, import_token_util.loadToken)(projectId);\n if (!maybeToken || (0, import_token_util.isExpired)((0, import_token_util.getTokenPayload)(maybeToken.token))) {\n const authToken = (0, import_token_util.getVercelCliToken)();\n if (!authToken) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: login to vercel cli\"\n );\n }\n if (!projectId) {\n throw new import_token_error.VercelOidcTokenError(\n \"Failed to refresh OIDC token: project id not found\"\n );\n }\n maybeToken = await (0, import_token_util.getVercelOidcToken)(authToken, projectId, teamId);\n if (!maybeToken) {\n throw new import_token_error.VercelOidcTokenError(\"Failed to refresh OIDC token\");\n }\n (0, import_token_util.saveToken)(maybeToken, projectId);\n }\n process.env.VERCEL_OIDC_TOKEN = maybeToken.token;\n return;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n refreshToken\n});\n"],"mappings":";;;;;;;;;;;;AAAA;AAAA;AACA,QAAI,YAAY,OAAO;AACvB,QAAI,mBAAmB,OAAO;AAC9B,QAAI,oBAAoB,OAAO;AAC/B,QAAI,eAAe,OAAO,UAAU;AACpC,QAAI,WAAW,CAAC,QAAQ,QAAQ;AAC9B,eAAS,QAAQ;AACf,kBAAU,QAAQ,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,YAAY,KAAK,CAAC;AAAA,IAChE;AACA,QAAI,cAAc,CAAC,IAAI,MAAM,QAAQ,SAAS;AAC5C,UAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;AAClE,iBAAS,OAAO,kBAAkB,IAAI;AACpC,cAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ;AACzC,sBAAU,IAAI,KAAK,EAAE,KAAK,MAAM,KAAK,GAAG,GAAG,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK,WAAW,CAAC;AAAA,MACvH;AACA,aAAO;AAAA,IACT;AACA,QAAI,eAAe,CAAC,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,QAAI,gBAAgB,CAAC;AACrB,aAAS,eAAe;AAAA,MACtB,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,WAAO,UAAU,aAAa,aAAa;AAC3C,QAAI,qBAAqB;AACzB,QAAI,oBAAoB;AACxB,mBAAe,eAAe;AAC5B,YAAM,EAAE,WAAW,OAAO,KAAK,GAAG,kBAAkB,iBAAiB;AACrE,UAAI,cAAc,GAAG,kBAAkB,WAAW,SAAS;AAC3D,UAAI,CAAC,eAAe,GAAG,kBAAkB,YAAY,GAAG,kBAAkB,iBAAiB,WAAW,KAAK,CAAC,GAAG;AAC7G,cAAM,aAAa,GAAG,kBAAkB,mBAAmB;AAC3D,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,mBAAmB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AACA,YAAI,CAAC,WAAW;AACd,gBAAM,IAAI,mBAAmB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AACA,qBAAa,OAAO,GAAG,kBAAkB,oBAAoB,WAAW,WAAW,MAAM;AACzF,YAAI,CAAC,YAAY;AACf,gBAAM,IAAI,mBAAmB,qBAAqB,8BAA8B;AAAA,QAClF;AACA,SAAC,GAAG,kBAAkB,WAAW,YAAY,SAAS;AAAA,MACxD;AACA,cAAQ,IAAI,oBAAoB,WAAW;AAC3C;AAAA,IACF;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
require_token_util
|
|
4
|
+
} from "./chunk-BL4PVUAT.js";
|
|
5
|
+
import "./chunk-3L2L5GIL.js";
|
|
6
|
+
import "./chunk-5H446C7X.js";
|
|
7
|
+
export default require_token_util();
|
|
8
|
+
//# sourceMappingURL=token-util-6GWYZWGE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|