From 51f688c1cf0746f9c6dcf4fc34e2585298e922e1 Mon Sep 17 00:00:00 2001 From: anhnd350309 Date: Tue, 18 Feb 2025 16:35:35 +0100 Subject: [PATCH] feat: init add tracer in callFn and computeACL, computeDRP --- examples/grid/package.json | 39 ++-- examples/grid/src/index.ts | 14 +- packages/network/package.json | 4 + packages/node/package.json | 11 +- packages/node/src/index.ts | 12 +- packages/node/src/operations.ts | 22 +- packages/object/package.json | 1 + packages/object/src/index.ts | 13 +- packages/tracer/src/index.ts | 102 +++++---- packages/tracer/src/interface.ts | 6 + packages/tracer/tests/index.spec.ts | 53 ++--- pnpm-lock.yaml | 344 +++++++++++++++++++++++++++- 12 files changed, 510 insertions(+), 111 deletions(-) create mode 100644 packages/tracer/src/interface.ts diff --git a/examples/grid/package.json b/examples/grid/package.json index b530c933..33e5d7a4 100644 --- a/examples/grid/package.json +++ b/examples/grid/package.json @@ -1,21 +1,22 @@ { - "name": "ts-drp-example-grid", - "version": "0.7.0", - "license": "MIT", - "scripts": { - "build": "vite build", - "clean": "rm -rf dist/ node_modules/", - "dev": "vite serve", - "start": "vite preview --host --port 5173" - }, - "dependencies": { - "@ts-drp/node": "0.7.0", - "@ts-drp/object": "0.7.0" - }, - "devDependencies": { - "@types/node": "^22.5.4", - "typescript": "^5.5.4", - "vite": "^6.0.9", - "vite-plugin-node-polyfills": "^0.22.0" - } + "name": "ts-drp-example-grid", + "version": "0.7.0", + "license": "MIT", + "scripts": { + "build": "vite build", + "clean": "rm -rf dist/ node_modules/", + "dev": "vite serve", + "start": "vite preview --host --port 5173" + }, + "dependencies": { + "@ts-drp/node": "0.7.0", + "@ts-drp/object": "0.7.0", + "@ts-drp/tracer": "workspace:^" + }, + "devDependencies": { + "@types/node": "^22.5.4", + "typescript": "^5.5.4", + "vite": "^6.0.9", + "vite-plugin-node-polyfills": "^0.22.0" + } } diff --git a/examples/grid/src/index.ts b/examples/grid/src/index.ts index 4e59e1a6..81b00cf7 100644 --- a/examples/grid/src/index.ts +++ b/examples/grid/src/index.ts @@ -1,4 +1,5 @@ import { DRPNode } from "@ts-drp/node"; +import { enableTracing, OpentelemetryMetrics } from "@ts-drp/tracer"; import { Grid } from "./objects/grid"; import { render, enableUIControls, renderInfo } from "./render"; @@ -77,10 +78,14 @@ async function createConnectHandlers() { async function run() { enableUIControls(); renderInfo(); + const metrics = new OpentelemetryMetrics("grid-service-2"); const button_create = document.getElementById("createGrid"); button_create.addEventListener("click", async () => { - gridState.drpObject = await gridState.node.createObject({ drp: new Grid() }); + gridState.drpObject = await gridState.node.createObject({ + drp: new Grid(), + metrics, + }); gridState.gridDRP = gridState.drpObject.drp as Grid; await createConnectHandlers(); await addUser(); @@ -94,6 +99,7 @@ async function run() { gridState.drpObject = await gridState.node.connectObject({ id: drpId, drp: new Grid(), + metrics, }); gridState.gridDRP = gridState.drpObject.drp as Grid; await createConnectHandlers(); @@ -127,6 +133,12 @@ async function run() { } async function main() { + enableTracing({ + provider: { + serviceName: "grid-service-tracer", + }, + }); + const networkConfig = getNetworkConfigFromEnv(); gridState.node = new DRPNode(networkConfig ? { network_config: networkConfig } : undefined); await gridState.node.start(); diff --git a/packages/network/package.json b/packages/network/package.json index 9164b1f6..6d7645d1 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -43,6 +43,7 @@ "@libp2p/dcutr": "^2.0.6", "@libp2p/devtools-metrics": "^1.1.5", "@libp2p/identify": "^3.0.6", + "@libp2p/opentelemetry-metrics": "^1.0.0", "@libp2p/ping": "2.0.11", "@libp2p/pubsub-peer-discovery": "^11.0.0", "@libp2p/webrtc": "^5.0.9", @@ -50,6 +51,9 @@ "@libp2p/webtransport": "^5.0.9", "@multiformats/multiaddr": "^12.3.1", "@multiformats/multiaddr-matcher": "^1.6.0", + "@opentelemetry/exporter-prometheus": "^0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", + "@opentelemetry/sdk-node": "^0.57.2", "@ts-drp/logger": "^0.7.0", "it-length-prefixed": "^10.0.0", "it-map": "^3.1.1", diff --git a/packages/node/package.json b/packages/node/package.json index 6b8e993a..9f1b286d 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -32,9 +32,9 @@ "devDependencies": { "@bufbuild/protobuf": "^2.0.0", "@types/node": "^22.5.4", + "race-event": "^1.3.0", "tsx": "4.19.1", "typescript": "^5.5.4", - "race-event": "^1.3.0", "vitest": "^3.0.5" }, "dependencies": { @@ -46,12 +46,17 @@ "@grpc/reflection": "^1.0.4", "@libp2p/crypto": "^5.0.5", "@libp2p/interface": "^2.1.3", - "dotenv": "^16.4.5", + "@libp2p/opentelemetry-metrics": "^1.0.0", + "@opentelemetry/exporter-prometheus": "^0.57.2", + "@opentelemetry/exporter-trace-otlp-http": "^0.57.1", + "@opentelemetry/sdk-node": "^0.57.2", "@ts-drp/blueprints": "0.7.0", + "@ts-drp/logger": "0.7.0", "@ts-drp/network": "0.7.0", "@ts-drp/object": "0.7.0", - "@ts-drp/logger": "0.7.0", + "@ts-drp/tracer": "workspace:^", "commander": "^13.0.0", + "dotenv": "^16.4.5", "uint8arrays": "^5.1.0" } } diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index 05222d66..d8f20014 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -3,6 +3,7 @@ import type { EventCallback, StreamHandler } from "@libp2p/interface"; import { Logger, type LoggerOptions } from "@ts-drp/logger"; import { DRPNetworkNode, type DRPNetworkNodeConfig, NetworkPb } from "@ts-drp/network"; import { type ACL, type DRP, DRPObject } from "@ts-drp/object"; +import { IMetrics } from "@ts-drp/tracer"; import { drpMessagesHandler } from "./handlers.js"; import * as operations from "./operations.js"; @@ -88,6 +89,7 @@ export class DRPNode { enabled: boolean; peerId?: string; }; + metrics?: IMetrics; }) { const object = new DRPObject({ peerId: this.networkNode.peerId, @@ -95,6 +97,7 @@ export class DRPNode { acl: options.acl, drp: options.drp, id: options.id, + metrics: options.metrics, }); operations.createObject(this, object); await operations.subscribeObject(this, object.id); @@ -117,8 +120,15 @@ export class DRPNode { sync?: { peerId?: string; }; + metrics?: IMetrics; }) { - const object = operations.connectObject(this, options.id, options.drp, options.sync?.peerId); + const object = operations.connectObject( + this, + options.id, + options.drp, + options.sync?.peerId, + options.metrics + ); return object; } diff --git a/packages/node/src/operations.ts b/packages/node/src/operations.ts index d35e645a..3a4c18a0 100644 --- a/packages/node/src/operations.ts +++ b/packages/node/src/operations.ts @@ -1,26 +1,31 @@ import { NetworkPb } from "@ts-drp/network"; import { type DRP, DRPObject, HashGraph } from "@ts-drp/object"; +import { IMetrics } from "@ts-drp/tracer"; import { drpMessagesHandler, drpObjectChangesHandler } from "./handlers.js"; import { type DRPNode, log } from "./index.js"; export function createObject(node: DRPNode, object: DRPObject) { + console.log("Creating object", object.id); node.objectStore.put(object.id, object); - object.subscribe((obj, originFn, vertices) => - drpObjectChangesHandler(node, obj, originFn, vertices) - ); + object.subscribe((obj, originFn, vertices) => { + console.log("Perform", Date.now()); + drpObjectChangesHandler(node, obj, originFn, vertices); + }); } export async function connectObject( node: DRPNode, id: string, drp?: DRP, - peerId?: string + peerId?: string, + metrics?: IMetrics ): Promise { const object = DRPObject.createObject({ peerId: node.networkNode.peerId, id, drp, + metrics, }); node.objectStore.put(id, object); @@ -30,9 +35,9 @@ export async function connectObject( if (object.acl) { await syncObject(node, id, peerId); await subscribeObject(node, id); - object.subscribe((obj, originFn, vertices) => - drpObjectChangesHandler(node, obj, originFn, vertices) - ); + object.subscribe((obj, originFn, vertices) => { + drpObjectChangesHandler(node, obj, originFn, vertices); + }); clearInterval(retry); } }, 1000); @@ -41,6 +46,7 @@ export async function connectObject( /* data: { id: string } */ export async function subscribeObject(node: DRPNode, objectId: string) { + console.log("Subscribing to object", objectId); node.networkNode.subscribe(objectId); node.networkNode.addGroupMessageHandler( objectId, @@ -54,6 +60,7 @@ export function unsubscribeObject(node: DRPNode, objectId: string, purge?: boole } export async function fetchState(node: DRPNode, objectId: string, peerId?: string) { + console.log("fetching state", objectId); const data = NetworkPb.FetchState.create({ objectId, vertexHash: HashGraph.rootHash, @@ -75,6 +82,7 @@ export async function fetchState(node: DRPNode, objectId: string, peerId?: strin data: { vertex_hashes: string[] } */ export async function syncObject(node: DRPNode, objectId: string, peerId?: string) { + console.log("Syncing object", objectId); const object: DRPObject | undefined = node.objectStore.get(objectId); if (!object) { log.error("::syncObject: Object not found"); diff --git a/packages/object/package.json b/packages/object/package.json index 49e996fe..1d356556 100644 --- a/packages/object/package.json +++ b/packages/object/package.json @@ -39,6 +39,7 @@ "@chainsafe/bls": "^8.1.0", "@msgpack/msgpack": "^3.0.1", "@ts-drp/logger": "^0.7.0", + "@ts-drp/tracer": "workspace:^", "es-toolkit": "1.30.1", "fast-deep-equal": "^3.1.3", "fast-equals": "^5.2.2", diff --git a/packages/object/src/index.ts b/packages/object/src/index.ts index bdac7e1d..0f2a2c8d 100644 --- a/packages/object/src/index.ts +++ b/packages/object/src/index.ts @@ -1,4 +1,5 @@ import { Logger, type LoggerOptions } from "@ts-drp/logger"; +import { IMetrics } from "@ts-drp/tracer"; import { cloneDeep } from "es-toolkit"; import { deepEqual } from "fast-equals"; import * as crypto from "node:crypto"; @@ -55,6 +56,7 @@ export class DRPObject implements ObjectPb.DRPObjectBase { drp?: DRP; id?: string; config?: DRPObjectConfig; + metrics?: IMetrics; }) { if (!options.acl && !options.publicCredential) { throw new Error("Either publicCredential or acl must be provided to create a DRPObject"); @@ -90,6 +92,14 @@ export class DRPObject implements ObjectPb.DRPObjectBase { this.finalityStore = new FinalityStore(options.config?.finality_config); this.originalObjectACL = cloneDeep(objAcl); this.originalDRP = cloneDeep(options.drp); + this.callFn = + options.metrics?.traceFunc("drpObject.callFn", this.callFn.bind(this)) ?? this.callFn; + this._computeObjectACL = + options.metrics?.traceFunc("drpObject.computeObjectACL", this._computeObjectACL.bind(this)) ?? + this._computeObjectACL; + this._computeDRP = + options.metrics?.traceFunc("drpObject.computeDRP", this._computeDRP.bind(this)) ?? + this._computeDRP; } private _initLocalDrpInstance(drp: DRP, acl: DRP) { @@ -108,7 +118,7 @@ export class DRPObject implements ObjectPb.DRPObjectBase { this.vertices = this.hashGraph.getAllVertices(); } - static createObject(options: { peerId: string; id?: string; drp?: DRP }) { + static createObject(options: { peerId: string; id?: string; drp?: DRP; metrics?: IMetrics }) { const aclObj = new ObjectACL({ admins: new Map(), permissionless: true, @@ -118,6 +128,7 @@ export class DRPObject implements ObjectPb.DRPObjectBase { id: options.id, acl: aclObj, drp: options.drp, + metrics: options.metrics, }); return object; } diff --git a/packages/tracer/src/index.ts b/packages/tracer/src/index.ts index 85f80826..ca45023c 100644 --- a/packages/tracer/src/index.ts +++ b/packages/tracer/src/index.ts @@ -10,8 +10,11 @@ import { } from "@opentelemetry/sdk-trace-web"; import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions"; +import { IMetrics } from "./interface.js"; + +export { IMetrics }; + let enabled = false; -let tracer: OtTracer | undefined; let provider: WebTracerProvider | undefined; let exporter: OTLPTraceExporter | undefined; @@ -31,21 +34,16 @@ export type EnableTracingOptions = { }; }; -export const enableTracing = (tracerName: string, opts: EnableTracingOptions = {}): void => { +export const enableTracing = (opts: EnableTracingOptions = {}): void => { enabled = true; initContextManager(); initProvider(opts.provider); - - if (provider) { - tracer = provider.getTracer(tracerName) as OtTracer; - } }; // disableTracing should reset the tracer, provider, and exporter // there for testing purposes export const disableTracing = (): void => { enabled = false; - tracer = undefined; provider = undefined; exporter = undefined; }; @@ -179,49 +177,55 @@ function wrapAsyncGenerator(gen: AsyncGenerator, span: Span): AsyncGenerat return wrapped; } -export function traceFunc( - name: string, - fn: (...args: Args) => Return, - setAttributes?: (span: Span, ...args: Args) => void -): (...args: Args) => Return { - return (...args: Args): Return => { - if (!tracer || !enabled) return fn(...args); - const parentContext = context.active(); - const span = tracer.startSpan(name, {}, parentContext); - - if (setAttributes) { - setAttributes(span, ...args); - } - - let result: Return; - const childContext = trace.setSpan(parentContext, span); - try { - result = context.with(childContext, fn, undefined, ...args); - } catch (err) { - const error = err instanceof Error ? err : new Error(String(err)); - span.recordException(error); - span.setStatus({ - code: SpanStatusCode.ERROR, - message: error.toString(), - }); +export class OpentelemetryMetrics implements IMetrics { + private tracer: OtTracer | undefined; + + constructor(tracerName: string) { + if (!provider) return; + this.tracer = provider.getTracer(tracerName) as OtTracer; + } + + public traceFunc( + name: string, + fn: (...args: Args) => Return + ): (...args: Args) => Return { + return (...args: Args): Return => { + if (!this.tracer || !enabled) { + return fn(...args); + } + const parentContext = context.active(); + const span = this.tracer.startSpan(name, {}, parentContext); + + let result: Return; + const childContext = trace.setSpan(parentContext, span); + try { + result = context.with(childContext, fn, undefined, ...args); + } catch (err) { + const error = err instanceof Error ? err : new Error(String(err)); + span.recordException(error); + span.setStatus({ + code: SpanStatusCode.ERROR, + message: error.toString(), + }); + span.end(); + throw error; + } + + if (isPromise(result)) { + return wrapPromise(result, span) as Return; + } + if (isGenerator(result)) { + return wrapGenerator(result, span) as Return; + } + if (isAsyncGenerator(result)) { + return wrapAsyncGenerator(result, span) as Return; + } + + span.setStatus({ code: SpanStatusCode.OK }); span.end(); - throw error; - } - - if (isPromise(result)) { - return wrapPromise(result, span) as Return; - } - if (isGenerator(result)) { - return wrapGenerator(result, span) as Return; - } - if (isAsyncGenerator(result)) { - return wrapAsyncGenerator(result, span) as Return; - } - - span.setStatus({ code: SpanStatusCode.OK }); - span.end(); - return result; - }; + return result; + }; + } } const initExporter = (opts: EnableTracingOptions["provider"]): OTLPTraceExporter => { diff --git a/packages/tracer/src/interface.ts b/packages/tracer/src/interface.ts new file mode 100644 index 00000000..a48ff02c --- /dev/null +++ b/packages/tracer/src/interface.ts @@ -0,0 +1,6 @@ +export interface IMetrics { + traceFunc( + name: string, + fn: (...args: Args) => Return + ): (...args: Args) => Return; +} diff --git a/packages/tracer/tests/index.spec.ts b/packages/tracer/tests/index.spec.ts index 6e9e1129..5762ef6b 100644 --- a/packages/tracer/tests/index.spec.ts +++ b/packages/tracer/tests/index.spec.ts @@ -1,4 +1,3 @@ -import type { Span } from "@opentelemetry/api"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; import { WebTracerProvider } from "@opentelemetry/sdk-trace-web"; import { beforeEach, describe, expect, test, vi } from "vitest"; @@ -10,8 +9,9 @@ import { isAsyncGenerator, isGenerator, isPromise, - traceFunc, + OpentelemetryMetrics, } from "../src/index.js"; +import { IMetrics } from "../src/interface.js"; // Mock OpenTelemetry dependencies vi.mock("@opentelemetry/api", () => { @@ -230,8 +230,11 @@ describe("isAsyncGenerator", () => { }); describe("tracing lifecycle", () => { + let metrics: IMetrics; + beforeEach(() => { vi.clearAllMocks(); + metrics = new OpentelemetryMetrics(); }); test("should enable and disable tracing", async () => { @@ -249,7 +252,7 @@ describe("tracing lifecycle", () => { headers: expect.any(Object), }); - const fn = traceFunc("test", (a: number) => a + 1); + const fn = metrics.traceFunc("test", (a: number) => a + 1); expect(fn(1)).toBe(2); disableTracing(); @@ -277,17 +280,17 @@ describe("tracing lifecycle", () => { }); test("should wrap synchronous functions", () => { - const fn = traceFunc("test", (a: number, b: number) => a + b); + const fn = metrics.traceFunc("test", (a: number, b: number) => a + b); expect(fn(1, 2)).toBe(3); }); test("should wrap async functions", async () => { - const fn = traceFunc("test", async (a: number, b: number) => a + b); + const fn = metrics.traceFunc("test", async (a: number, b: number) => a + b); expect(await fn(1, 2)).toBe(3); }); test("should wrap generator functions", () => { - const fn = traceFunc("test", function* (a: number) { + const fn = metrics.traceFunc("test", function* (a: number) { yield a + 1; yield a + 2; }); @@ -298,7 +301,7 @@ describe("tracing lifecycle", () => { }); test("should wrap async generator functions", async () => { - const fn = traceFunc("test", async function* (a: number) { + const fn = metrics.traceFunc("test", async function* (a: number) { yield a + 1; yield a + 2; }); @@ -309,38 +312,27 @@ describe("tracing lifecycle", () => { }); test("should handle errors in synchronous functions", () => { - const fn = traceFunc("test", () => { + const fn = metrics.traceFunc("test", () => { throw new Error("test error"); }); expect(() => fn()).toThrow("test error"); }); test("should handle errors in async functions", async () => { - const fn = traceFunc("test", async () => { + const fn = metrics.traceFunc("test", async () => { throw new Error("test error"); }); await expect(fn()).rejects.toThrow("test error"); }); - test("should apply custom attributes", () => { - const fn = traceFunc( - "test", - (a: number) => a + 1, - (span: Span, a: number) => { - span.setAttribute("input", a); - } - ); - expect(fn(1)).toBe(2); - }); - test("should trace functions that return promises", async () => { - const tracedPromise = traceFunc("promise-test", () => Promise.resolve(42)); + const tracedPromise = metrics.traceFunc("promise-test", () => Promise.resolve(42)); const result = await tracedPromise(); expect(result).toBe(42); }); test("should trace functions that return generators", () => { - const tracedGenerator = traceFunc("generator-test", function* () { + const tracedGenerator = metrics.traceFunc("generator-test", function* () { yield 1; yield 2; return 3; @@ -354,7 +346,7 @@ describe("tracing lifecycle", () => { }); test("should trace functions that return async generators", async () => { - const tracedAsyncGenerator = traceFunc("async-generator-test", async function* () { + const tracedAsyncGenerator = metrics.traceFunc("async-generator-test", async function* () { yield 1; yield 2; return 3; @@ -368,14 +360,14 @@ describe("tracing lifecycle", () => { }); test("should handle errors in returned promises", async () => { - const tracedPromise = traceFunc("error-promise-test", () => + const tracedPromise = metrics.traceFunc("error-promise-test", () => Promise.reject(new Error("promise error")) ); await expect(tracedPromise()).rejects.toThrow("promise error"); }); test("should handle errors in returned generators", () => { - const tracedGenerator = traceFunc("error-generator-test", function* () { + const tracedGenerator = metrics.traceFunc("error-generator-test", function* () { yield 1; throw new Error("generator error"); }); @@ -385,10 +377,13 @@ describe("tracing lifecycle", () => { }); test("should handle errors in returned async generators", async () => { - const tracedAsyncGenerator = traceFunc("error-async-generator-test", async function* () { - yield 1; - throw new Error("async generator error"); - }); + const tracedAsyncGenerator = metrics.traceFunc( + "error-async-generator-test", + async function* () { + yield 1; + throw new Error("async generator error"); + } + ); const gen = tracedAsyncGenerator(); expect((await gen.next()).value).toBe(1); await expect(gen.next()).rejects.toThrow("async generator error"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a5d71822..156138e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -130,6 +130,9 @@ importers: '@ts-drp/object': specifier: 0.7.0 version: link:../../packages/object + '@ts-drp/tracer': + specifier: workspace:^ + version: link:../../packages/tracer devDependencies: '@types/node': specifier: ^22.5.4 @@ -217,6 +220,9 @@ importers: '@libp2p/identify': specifier: ^3.0.6 version: 3.0.18 + '@libp2p/opentelemetry-metrics': + specifier: ^1.0.0 + version: 1.0.3 '@libp2p/ping': specifier: 2.0.11 version: 2.0.11 @@ -238,6 +244,15 @@ importers: '@multiformats/multiaddr-matcher': specifier: ^1.6.0 version: 1.6.0 + '@opentelemetry/exporter-prometheus': + specifier: ^0.57.2 + version: 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': + specifier: ^0.57.1 + version: 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': + specifier: ^0.57.2 + version: 0.57.2(@opentelemetry/api@1.9.0) '@ts-drp/logger': specifier: ^0.7.0 version: link:../logger @@ -290,6 +305,18 @@ importers: '@libp2p/interface': specifier: ^2.1.3 version: 2.5.0 + '@libp2p/opentelemetry-metrics': + specifier: ^1.0.0 + version: 1.0.3 + '@opentelemetry/exporter-prometheus': + specifier: ^0.57.2 + version: 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': + specifier: ^0.57.1 + version: 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': + specifier: ^0.57.2 + version: 0.57.2(@opentelemetry/api@1.9.0) '@ts-drp/blueprints': specifier: 0.7.0 version: link:../blueprints @@ -302,6 +329,9 @@ importers: '@ts-drp/object': specifier: 0.7.0 version: link:../object + '@ts-drp/tracer': + specifier: workspace:^ + version: link:../tracer commander: specifier: ^13.0.0 version: 13.1.0 @@ -342,6 +372,9 @@ importers: '@ts-drp/logger': specifier: ^0.7.0 version: link:../logger + '@ts-drp/tracer': + specifier: workspace:^ + version: link:../tracer es-toolkit: specifier: 1.30.1 version: 1.30.1 @@ -1787,24 +1820,108 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/exporter-logs-otlp-grpc@0.57.2': + resolution: {integrity: sha512-eovEy10n3umjKJl2Ey6TLzikPE+W4cUQ4gCwgGP1RqzTGtgDra0WjIqdy29ohiUKfvmbiL3MndZww58xfIvyFw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-http@0.57.2': + resolution: {integrity: sha512-0rygmvLcehBRp56NQVLSleJ5ITTduq/QfU7obOkyWgPpFHulwpw2LYTqNIz5TczKZuy5YY+5D3SDnXZL1tXImg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-logs-otlp-proto@0.57.2': + resolution: {integrity: sha512-ta0ithCin0F8lu9eOf4lEz9YAScecezCHkMMyDkvd9S7AnZNX5ikUmC5EQOQADU+oCcgo/qkQIaKcZvQ0TYKDw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-grpc@0.57.2': + resolution: {integrity: sha512-r70B8yKR41F0EC443b5CGB4rUaOMm99I5N75QQt6sHKxYDzSEc6gm48Diz1CI1biwa5tDPznpylTrywO/pT7qw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.57.2': + resolution: {integrity: sha512-ttb9+4iKw04IMubjm3t0EZsYRNWr3kg44uUuzfo9CaccYlOh8cDooe4QObDUkvx9d5qQUrbEckhrWKfJnKhemA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-proto@0.57.2': + resolution: {integrity: sha512-HX068Q2eNs38uf7RIkNN9Hl4Ynl+3lP0++KELkXMCpsCbFO03+0XNNZ1SkwxPlP9jrhQahsMPMkzNXpq3fKsnw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-prometheus@0.57.2': + resolution: {integrity: sha512-VqIqXnuxWMWE/1NatAGtB1PvsQipwxDcdG4RwA/umdBcW3/iOHp0uejvFHTRN2O78ZPged87ErJajyUBPUhlDQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2': + resolution: {integrity: sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-trace-otlp-http@0.57.2': resolution: {integrity: sha512-sB/gkSYFu+0w2dVQ0PWY9fAMl172PKMZ/JrHkkW8dmjCL0CYkmXeE+ssqIL/yBUTPOvpLIpenX5T9RwXRBW/3g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-trace-otlp-proto@0.57.2': + resolution: {integrity: sha512-awDdNRMIwDvUtoRYxRhja5QYH6+McBLtoz1q9BeEsskhZcrGmH/V1fWpGx8n+Rc+542e8pJA6y+aullbIzQmlw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-zipkin@1.30.1': + resolution: {integrity: sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/instrumentation@0.57.2': + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-exporter-base@0.57.2': resolution: {integrity: sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-grpc-exporter-base@0.57.2': + resolution: {integrity: sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/otlp-transformer@0.57.2': resolution: {integrity: sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/propagator-b3@1.30.1': + resolution: {integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/propagator-jaeger@1.30.1': + resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/resources@1.30.1': resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} engines: {node: '>=14'} @@ -1823,12 +1940,24 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-node@0.57.2': + resolution: {integrity: sha512-8BaeqZyN5sTuPBtAoY+UtKwXBdqyuRKmekN5bFzAO40CgbGzAxfTpiL3PBerT7rhZ7p2nBdq7FaMv/tBQgHE4A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@1.30.1': resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-node@1.30.1': + resolution: {integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-web@1.30.1': resolution: {integrity: sha512-AUo2e+1uyTGMB36VlbvBqnCogVzQhpC7dRcVVdCrt+cFHLpFRRJcd45J2obGTgs0XiAwNLyq5bhkW3JF2NZA+A==} engines: {node: '>=14'} @@ -2253,6 +2382,9 @@ packages: '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + '@types/shimmer@1.2.0': + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -2394,6 +2526,11 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2841,6 +2978,9 @@ packages: resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} engines: {node: '>= 0.10'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3835,6 +3975,9 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} + import-in-the-middle@1.13.0: + resolution: {integrity: sha512-YG86SYDtrL/Yu8JgfWb7kjQ0myLeT1whw6fs/ZHFkXFcbk9zJU9lOCsSJHpvaPumU11nN3US7NW6x1YTk+HrUA==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4685,6 +4828,9 @@ packages: engines: {node: '>=10'} hasBin: true + module-details-from-path@1.0.3: + resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + mortice@3.0.6: resolution: {integrity: sha512-xUjsTQreX8rO3pHuGYDZ3PY/sEiONIzqzjLeog5akdY4bz9TlDDuvYlU8fm+6qnm4rnpa6AFxLhsfSBThLijdA==} @@ -5387,6 +5533,10 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-in-the-middle@7.5.1: + resolution: {integrity: sha512-fgZEz/t3FDrU9o7EhI+iNNq1pNNpJImOvX72HUd6RoFiw8MaKd8/gR5tLuc8A0G0e55LMbP6ImjnmXY6zrTmjw==} + engines: {node: '>=8.6.0'} + resolve-from@3.0.0: resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} engines: {node: '>=4'} @@ -5564,6 +5714,9 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + shimmer@1.2.1: + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8149,6 +8302,85 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/exporter-logs-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.12.6 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-logs-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.12.6 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-prometheus@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-trace-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.12.6 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8158,12 +8390,49 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-zipkin@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.13.0 + require-in-the-middle: 7.5.1 + semver: 7.7.1 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + '@opentelemetry/otlp-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.12.6 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8175,6 +8444,16 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) protobufjs: 7.4.0 + '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8194,6 +8473,32 @@ snapshots: '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node@0.57.2(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.57.2 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-prometheus': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-zipkin': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.28.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8201,6 +8506,16 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + semver: 7.7.1 + '@opentelemetry/sdk-trace-web@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8723,6 +9038,8 @@ snapshots: '@types/retry@0.12.2': {} + '@types/shimmer@1.2.0': {} + '@types/stack-utils@2.0.3': {} '@types/unist@3.0.3': {} @@ -8923,6 +9240,10 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + acorn-import-attributes@1.9.5(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -9455,6 +9776,8 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + cjs-module-lexer@1.4.3: {} + cli-boxes@3.0.0: {} cli-cursor@3.1.0: @@ -10584,6 +10907,13 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 + import-in-the-middle@1.13.0: + dependencies: + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) + cjs-module-lexer: 1.4.3 + module-details-from-path: 1.0.3 + imurmurhash@0.1.4: {} indent-string@3.2.0: {} @@ -11626,6 +11956,8 @@ snapshots: mkdirp@1.0.4: {} + module-details-from-path@1.0.3: {} + mortice@3.0.6: dependencies: observable-webworkers: 2.0.1 @@ -11956,7 +12288,7 @@ snapshots: ky: 1.7.5 registry-auth-token: 5.1.0 registry-url: 6.0.1 - semver: 7.6.3 + semver: 7.7.1 pako@1.0.11: {} @@ -12499,6 +12831,14 @@ snapshots: require-directory@2.1.1: {} + require-in-the-middle@7.5.1: + dependencies: + debug: 4.4.0 + module-details-from-path: 1.0.3 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + resolve-from@3.0.0: {} resolve-from@4.0.0: {} @@ -12713,6 +13053,8 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shimmer@1.2.1: {} + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0