diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 43cb74fbc..316e25d2f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -71,15 +71,6 @@ updates: otel-dependencies: patterns: - "go.opentelemetry.io*" - - package-ecosystem: npm - directory: /agents/nodejs - schedule: - day: sunday - interval: weekly - groups: - otel-dependencies: - patterns: - - "@opentelemetry*" - package-ecosystem: pip directory: /odiglet/agents/python schedule: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea2abff29..28224c7c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -85,31 +85,45 @@ Test your cli code changes by running the following: go run -tags=embed_manifests ./cli ``` -To run `odigos install` cli command from a local source, you will need to supply a version flag to tell odigos which image tags to install: +To run `odigos install` cli command from a local source, use the make command from repo root: ```bash -go run -tags=embed_manifests ./cli install --version v0.1.81 +make cli-install # Installing Odigos version v0.1.81 in namespace odigos-system ... ``` -If you test changes to the `install` command, you will need to `go run cli/main.go uninstall` first before you can run install again. +If you test changes to the `install` command, you will need to `odigos uninstall` first before you can run install again. ### How to Develop Odigos Locally The main steps involved when debugging Odigos locally are: + 1. Use a Kind kubernetes cluster. 2. Choose one of the following options for deploy: + - Deploy all pods in the odigos-system namespace: + ```bash - make deploy +make deploy ``` - Deploy a specific service by running one of the following commands: + +```bash +make deploy-odiglet +make deploy-autoscaler +make deploy-collector +make deploy-instrumentor +``` + +- Deploy odiglet and build instrumentation agents from source code: + +First - make sure you clone the [nodejs agent](https://github.com/odigos-io/opentelemetry-node) repos in the same directory as the odigos repo. e.g. `../opentelemetry-node` should exist alongside the odigos repo in your local filesystem. + +To deploy odiglet with agents from this source directory: + ```bash - make deploy-odiglet - make deploy-autoscaler - make deploy-collector - make deploy-instrumentor +make deploy-odiglet-with-agents ``` See the [Odigos docs](https://docs.odigos.io/intro) for the full steps on debugging Odigos locally. diff --git a/Makefile b/Makefile index 26ab25f94..685d24093 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,22 @@ TAG ?= $(shell odigos version --cluster) +ODIGOS_CLI_VERSION ?= $(shell odigos version --cli) ORG := keyval .PHONY: build-odiglet build-odiglet: docker build -t $(ORG)/odigos-odiglet:$(TAG) . -f odiglet/Dockerfile --build-arg ODIGOS_VERSION=$(TAG) +.PHONY: verify-nodejs-agent +verify-nodejs-agent: + @if [ ! -f ../opentelemetry-node/package.json ]; then \ + echo "Error: To build odiglet agents from source, first clone the agents code locally"; \ + exit 1; \ + fi + +.PHONY: build-odiglet-with-agents +build-odiglet-with-agents: + docker build -t $(ORG)/odigos-odiglet:$(TAG) . -f odiglet/Dockerfile --build-arg ODIGOS_VERSION=$(TAG) --build-context nodejs-agent-native-community-src=../opentelemetry-node + .PHONY: build-autoscaler build-autoscaler: docker build -t $(ORG)/odigos-autoscaler:$(TAG) . --build-arg SERVICE_NAME=autoscaler @@ -117,6 +129,12 @@ restart-collector: deploy-odiglet: make build-odiglet TAG=$(TAG) && make load-to-kind-odiglet TAG=$(TAG) && make restart-odiglet +# Use this target to deploy odiglet with local clones of the agents. +# To work, the agents must be cloned in the same directory as the odigos (e.g. in '../opentelemetry-node') +# There you can make code changes to the agents and deploy them with the odiglet. +.PHONY: deploy-odiglet-with-agents +deploy-odiglet-with-agents: verify-nodejs-agent build-odiglet-with-agents load-to-kind-odiglet restart-odiglet + .PHONY: deploy-autoscaler deploy-autoscaler: make build-autoscaler TAG=$(TAG) && make load-to-kind-autoscaler TAG=$(TAG) && make restart-autoscaler @@ -163,4 +181,11 @@ check-clean-work-tree: git --no-pager diff; \ echo 'Working tree is not clean, did you forget to run "make go-mod-tidy"?'; \ exit 1; \ - fi \ No newline at end of file + fi + +# installs odigos from the local source, with local changes to api and cli directorie reflected in the odigos deployment +.PHONY: cli-install +cli-install: + @echo "Installing odigos from source. version: $(ODIGOS_CLI_VERSION)" + go run -tags=embed_manifests ./cli install --version $(ODIGOS_CLI_VERSION) + diff --git a/agents/nodejs/.dockerignore b/agents/nodejs/.dockerignore deleted file mode 100644 index 7c97421b9..000000000 --- a/agents/nodejs/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules # don't include node_modules in the context, as it is being installed fresh in the Dockerfile \ No newline at end of file diff --git a/agents/nodejs/LICENSE b/agents/nodejs/LICENSE deleted file mode 100644 index 78a5fac67..000000000 --- a/agents/nodejs/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2024 Odigos Authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/agents/nodejs/README.md b/agents/nodejs/README.md deleted file mode 100644 index a1adf3f4c..000000000 --- a/agents/nodejs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# @odigos/opentelemetry-node - -Odigos distribution of OpenTelemetry for Node.js - -This package is used in the odigos project to provide auto OpenTelemetry instrumentation for applications written in Node.js. diff --git a/agents/nodejs/package.json b/agents/nodejs/package.json deleted file mode 100644 index 197f1f43e..000000000 --- a/agents/nodejs/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@odigos/opentelemetry-node", - "version": "0.0.1", - "description": "Odigos distribution of OpenTelemetry for Node.js", - "main": "build/src/index.js", - "repository": "https://github.com/odigos-io/opentelemetry-node", - "author": "Odigos Authors", - "license": "Apache-2.0", - "scripts": { - "compile": "tsc -p ." - }, - "dependencies": { - "@bufbuild/protobuf": "^1.10.0", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/auto-instrumentations-node": "0.46.1", - "@opentelemetry/context-async-hooks": "1.25.0", - "@opentelemetry/core": "1.25.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.51.1", - "@opentelemetry/resources": "1.25.0", - "@opentelemetry/sdk-trace-node": "1.25.0", - "@opentelemetry/semantic-conventions": "1.25.0", - "axios": "^1.7.2", - "semver": "^7.6.2", - "uuidv7": "^1.0.1" - }, - "devDependencies": { - "@types/semver": "^7.5.8", - "@types/uuid": "^10.0.0", - "typescript": "^5.5.2" - } -} diff --git a/agents/nodejs/src/autoinstrumentation.ts b/agents/nodejs/src/autoinstrumentation.ts deleted file mode 100644 index 3e8498380..000000000 --- a/agents/nodejs/src/autoinstrumentation.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api"; -// For development, uncomment the following line to see debug logs -// diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO); - -import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-grpc"; -import { - CompositePropagator, - W3CBaggagePropagator, - W3CTraceContextPropagator, -} from "@opentelemetry/core"; -import { OpAMPClientHttp, RemoteConfig } from "./opamp"; -import { - SEMRESATTRS_TELEMETRY_SDK_LANGUAGE, - TELEMETRYSDKLANGUAGEVALUES_NODEJS, - SEMRESATTRS_PROCESS_PID, -} from "@opentelemetry/semantic-conventions"; -import { - Resource, - detectResourcesSync, - envDetectorSync, - hostDetectorSync, - processDetectorSync, -} from "@opentelemetry/resources"; -import { - AsyncHooksContextManager, - AsyncLocalStorageContextManager, -} from "@opentelemetry/context-async-hooks"; -import { context, propagation } from "@opentelemetry/api"; -import { VERSION } from "./version"; -import { InstrumentationLibraries } from "./instrumentation-libraries"; -import { - BatchSpanProcessor, - NodeTracerProvider, -} from "@opentelemetry/sdk-trace-node"; -import * as semver from "semver"; - -// not yet published in '@opentelemetry/semantic-conventions' -const SEMRESATTRS_TELEMETRY_DISTRO_NAME = "telemetry.distro.name"; -const SEMRESATTRS_TELEMETRY_DISTRO_VERSION = "telemetry.distro.version"; - -const opampServerHost = process.env.ODIGOS_OPAMP_SERVER_HOST; -const instrumentationDeviceId = process.env.ODIGOS_INSTRUMENTATION_DEVICE_ID; - -if (!opampServerHost || !instrumentationDeviceId) { - diag.error( - "Missing required environment variables ODIGOS_OPAMP_SERVER_HOST and ODIGOS_INSTRUMENTATION_DEVICE_ID" - ); -} else { - const staticResource = new Resource({ - [SEMRESATTRS_TELEMETRY_DISTRO_NAME]: "odigos", - [SEMRESATTRS_TELEMETRY_DISTRO_VERSION]: VERSION, - }); - - const detectorsResource = detectResourcesSync({ - detectors: [ - // env detector reads resource attributes from the environment. - // we don't populate it at the moment, but if the user set anything, this detector will pick it up - envDetectorSync, - // info about executable, runtime, command, etc - processDetectorSync, - // host name, and arch - hostDetectorSync, - ], - }); - - // span processor - const spanProcessor = new BatchSpanProcessor(new OTLPTraceExporter()); - - // context manager - const ContextManager = semver.gte(process.version, "14.8.0") - ? AsyncLocalStorageContextManager - : AsyncHooksContextManager; - const contextManager = new ContextManager(); - contextManager.enable(); - context.setGlobalContextManager(contextManager); - - // propagator - const propagator = new CompositePropagator({ - propagators: [new W3CTraceContextPropagator(), new W3CBaggagePropagator()], - }); - propagation.setGlobalPropagator(propagator); - - // instrumentation libraries - const instrumentationLibraries = new InstrumentationLibraries(); - const localResource = staticResource.merge(detectorsResource); - - const opampClient = new OpAMPClientHttp({ - instrumentationDeviceId: instrumentationDeviceId, - opAMPServerHost: opampServerHost, - agentDescriptionIdentifyingAttributes: { - [SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]: TELEMETRYSDKLANGUAGEVALUES_NODEJS, - [SEMRESATTRS_TELEMETRY_DISTRO_VERSION]: VERSION, - [SEMRESATTRS_PROCESS_PID]: process.pid, - }, - agentDescriptionNonIdentifyingAttributes: {}, - onNewRemoteConfig: (remoteConfig: RemoteConfig) => { - const resource = localResource - .merge(remoteConfig.sdk.remoteResource); - - // tracer provider - const tracerProvider = new NodeTracerProvider({ - resource, - }); - tracerProvider.addSpanProcessor(spanProcessor); - instrumentationLibraries.onNewRemoteConfig( - remoteConfig.instrumentationLibraries, - remoteConfig.sdk.traceSignal, - tracerProvider - ); - }, - initialPackageStatues: instrumentationLibraries.getPackageStatuses(), - }); - - opampClient.start(); - - const shutdown = async () => { - try { - diag.info("Shutting down OpenTelemetry SDK and OpAMP client"); - await Promise.all([ - // sdk.shutdown(), - opampClient.shutdown(), - spanProcessor.shutdown(), - ]); - } catch (err) { - diag.error("Error shutting down OpenTelemetry SDK and OpAMP client", err); - } - }; - - process.on("SIGTERM", shutdown); - process.on("SIGINT", shutdown); - process.on("exit", shutdown); -} diff --git a/agents/nodejs/src/instrumentation-libraries.ts b/agents/nodejs/src/instrumentation-libraries.ts deleted file mode 100644 index efdaf044a..000000000 --- a/agents/nodejs/src/instrumentation-libraries.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { Instrumentation } from "@opentelemetry/instrumentation"; -import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node"; -import { ProxyTracerProvider, TracerProvider, diag, trace } from "@opentelemetry/api"; -import { - InstrumentationLibraryConfiguration, - TraceSignalGeneralConfig, -} from "./opamp"; -import { PackageStatus } from "./opamp/generated/opamp_pb"; -import { PartialMessage } from "@bufbuild/protobuf"; - -type OdigosInstrumentation = { - otelInstrumentation: Instrumentation; -}; - -const calculateLibraryEnabled = ( - traceSignal: TraceSignalGeneralConfig, - instrumentationLibraryEnabled: boolean | undefined, -): boolean => { - // if the signal is disabled globally, no library should be enabled - if (!traceSignal.enabled) { - return false; - } - - // if there is a specific configuration for this library, use it - if (instrumentationLibraryEnabled != null) { - return instrumentationLibraryEnabled; - } - - // if there is no remote config to enable/disable this library, use the default - return traceSignal.defaultEnabledValue; -}; - -export class InstrumentationLibraries { - private instrumentations: Instrumentation[]; - private instrumentationLibraries: OdigosInstrumentation[]; - - private noopTracerProvider: TracerProvider; - - private logger = diag.createComponentLogger({ - namespace: "@odigos/opentelemetry-node/instrumentation-libraries", - }); - - constructor() { - this.instrumentations = getNodeAutoInstrumentations(); - - // trick to get the noop tracer provider which is not exported from @openetelemetry/api - this.noopTracerProvider = new ProxyTracerProvider().getDelegate(); - - this.instrumentationLibraries = this.instrumentations.map( - (otelInstrumentation) => { - // start all instrumentations with a noop tracer provider. - // the global tracer provider is noop by default, so this is just to make sure - otelInstrumentation.setTracerProvider(this.noopTracerProvider); - - const odigosInstrumentation = { - otelInstrumentation, - }; - - return odigosInstrumentation; - } - ); - } - - public getPackageStatuses(): PartialMessage[] { - return this.instrumentations.map((instrumentation) => { - return { - name: instrumentation.instrumentationName, - agentHasVersion: instrumentation.instrumentationVersion, - }; - }); - } - - public onNewRemoteConfig( - configs: InstrumentationLibraryConfiguration[], - traceSignal: TraceSignalGeneralConfig, - enabledTracerProvider: TracerProvider - ) { - // it will happen when the pipeline is not setup to receive spans - const globalTracerProvider = traceSignal.enabled - ? enabledTracerProvider - : this.noopTracerProvider; - // set global tracer provider to record traces from 3rd party instrumented libraries - // or application manual instrumentation - trace.setGlobalTracerProvider(globalTracerProvider); - - // make the configs into a map by library name so it's quicker to find the right one - const configsMap = new Map( - configs.map((config) => [config.name, config]) - ); - - for (const odigosInstrumentation of this.instrumentationLibraries) { - - // for each installed library, calculate it's specific enabled state - // which depends on the global trace signal and the specific library config - const instrumentationLibraryConfig = configsMap.get( - odigosInstrumentation.otelInstrumentation.instrumentationName - ); - const enabled = calculateLibraryEnabled( - traceSignal, - instrumentationLibraryConfig?.traces?.enabled, - ); - const tracerProviderInUse = enabled - ? enabledTracerProvider - : this.noopTracerProvider; - odigosInstrumentation.otelInstrumentation.setTracerProvider( - tracerProviderInUse - ); - } - } -} diff --git a/agents/nodejs/src/opamp/client-http.ts b/agents/nodejs/src/opamp/client-http.ts deleted file mode 100644 index 76caaa726..000000000 --- a/agents/nodejs/src/opamp/client-http.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { PartialMessage } from "@bufbuild/protobuf"; -import { - AgentDescription, - AgentToServer, - RemoteConfigStatus, - RemoteConfigStatuses, - ServerToAgent, - ServerToAgentFlags, -} from "./generated/opamp_pb"; -import { OpAMPClientHttpConfig, RemoteConfig } from "./types"; -import { otelAttributesToKeyValuePairs } from "./utils"; -import { uuidv7 } from "uuidv7"; -import axios, { AxiosInstance } from "axios"; -import { Resource } from "@opentelemetry/resources"; -import { context, diag } from "@opentelemetry/api"; -import { - SEMRESATTRS_SERVICE_INSTANCE_ID, - SEMRESATTRS_SERVICE_NAME, -} from "@opentelemetry/semantic-conventions"; -import { suppressTracing } from "@opentelemetry/core"; -import { PackageStatuses } from "./generated/opamp_pb"; -import { extractRemoteConfigFromResponse } from "./remote-config"; - -export class OpAMPClientHttp { - private config: OpAMPClientHttpConfig; - private opampInstanceUidString: string; - private OpAMPInstanceUidBytes: Uint8Array; - private nextSequenceNum: bigint = BigInt(0); - private httpClient: AxiosInstance; - private logger = diag.createComponentLogger({ - namespace: "@odigos/opentelemetry-node/opamp", - }); - private remoteConfigStatus: RemoteConfigStatus | undefined; - // the remote config to use when we failed to get data from the server - private defaultRemoteConfig: RemoteConfig; - - constructor(config: OpAMPClientHttpConfig) { - this.config = config; - this.opampInstanceUidString = uuidv7(); - this.OpAMPInstanceUidBytes = new TextEncoder().encode( - this.opampInstanceUidString - ); - this.httpClient = axios.create({ - baseURL: `http://${this.config.opAMPServerHost}`, - headers: { - "Content-Type": " application/x-protobuf", - "X-Odigos-DeviceId": config.instrumentationDeviceId, - }, - timeout: 5000, - }); - - // avoid printing to noisy axios logs to the diag logger - this.httpClient.interceptors.response.use( - (response) => response, - (error) => { - const relevantErrorInfo = { - message: error.message, - code: error.code, - status: error.response?.status, - statusText: error.response?.statusText, - data: error.response?.data, - url: error.config?.url, - method: error.config?.method, - headers: error.config?.headers, - }; - return Promise.reject(relevantErrorInfo); - } - ); - - // on any issue connection to opamp server, this will be the default remote config which will be applied - this.defaultRemoteConfig = { - sdk: { - remoteResource: new Resource({ - [SEMRESATTRS_SERVICE_NAME]: this.config.instrumentationDeviceId, - [SEMRESATTRS_SERVICE_INSTANCE_ID]: this.opampInstanceUidString, - }), - traceSignal: { - enabled: true, - defaultEnabledValue: true, - }, - }, - instrumentationLibraries: [], - }; - } - - async start() { - await this.sendFirstMessageWithRetry(); - const timer = setInterval(async () => { - let heartbeatRes = await this.sendHeartBeatToServer(); - if (!heartbeatRes) { - return; - } - - // flags is bitmap, use bitwise AND to check if the flag is set - if ( - Number(heartbeatRes.flags) & - Number(ServerToAgentFlags.ServerToAgentFlags_ReportFullState) - ) { - this.logger.info("Opamp server requested full state report"); - try { - await this.sendFullState(); - } catch (error) { - this.logger.warn( - "Error sending full state to OpAMP server on heartbeat response", - error - ); - } - } - }, this.config.pollingIntervalMs || 30000); - timer.unref(); // do not keep the process alive just for this timer - } - - async shutdown() { - this.logger.info("Sending AgentDisconnect message to OpAMP server"); - try { - await this.sendAgentToServerMessage({ - agentDisconnect: {}, - }); - } catch (error) { - this.logger.error("Error sending AgentDisconnect message to OpAMP server"); - } - } - - // the first opamp message is special, as we need to get the remote resource attributes. - // this function will attempt to send the first message, and will retry after some interval if it fails. - // if no remote resource attributes are received after some grace period, we will continue without them. - private async sendFirstMessageWithRetry() { - let remainingRetries = 5; - const retryIntervalMs = 2000; - - for (let i = 0; i < remainingRetries; i++) { - try { - const firstServerToAgent = await this.sendFullState(); - this.handleFirstMessageResponse(firstServerToAgent); - return; - } catch (error) { - this.logger.warn( - `Error sending first message to OpAMP server, retrying in ${retryIntervalMs}ms`, - error - ); - await new Promise((resolve) => { - const timer = setTimeout(resolve, retryIntervalMs); - timer.unref(); // do not keep the process alive just for this timer - }); - } - } - - // if we got here, it means we run out of retries and did not return from the loop - // at this point we have no remote resource attributes, so we set the service name to the instrumentation device id - // which is the best we can do without the remote resource attributes - this.logger.error( - `Failed to get remote resource attributes from OpAMP server after retries, continuing without them` - ); - try { - this.config.onNewRemoteConfig(this.defaultRemoteConfig); - } catch (error) { - this.logger.error( - "Error handling default remote config on startup", - error - ); - } - } - - private handleFirstMessageResponse(serverToAgentMessage: ServerToAgent) { - const remoteConfigOpampMessage = serverToAgentMessage.remoteConfig; - if (!remoteConfigOpampMessage) { - throw new Error( - "No remote config received on first OpAMP message to the server" - ); - } - - // the configs should have already been processed. Simply log the message and continue - this.logger.info("Got remote configuration on first opamp message"); - } - - private handleRemoteConfigInResponse(serverToAgentMessage: ServerToAgent) { - const remoteConfigOpampMessage = serverToAgentMessage.remoteConfig; - if (!remoteConfigOpampMessage) { - return; - } - - try { - const remoteConfig = extractRemoteConfigFromResponse( - remoteConfigOpampMessage, - this.opampInstanceUidString - ); - this.logger.info( - "Got remote configuration from OpAMP server", - remoteConfig.sdk.remoteResource.attributes, - { traceSignal: remoteConfig.sdk.traceSignal } - ); - this.config.onNewRemoteConfig(remoteConfig); - this.remoteConfigStatus = new RemoteConfigStatus({ - lastRemoteConfigHash: remoteConfigOpampMessage.configHash, - status: RemoteConfigStatuses.RemoteConfigStatuses_APPLIED, - }); - } catch (error) { - this.remoteConfigStatus = new RemoteConfigStatus({ - lastRemoteConfigHash: remoteConfigOpampMessage.configHash, - status: RemoteConfigStatuses.RemoteConfigStatuses_FAILED, - errorMessage: "failed to apply the new remote config", - }); - this.logger.warn( - "Error extracting remote config from OpAMP message", - error - ); - return; - } - } - - private async sendHeartBeatToServer() { - try { - return await this.sendAgentToServerMessage({}); - } catch (error) { - this.logger.warn("Error sending heartbeat to OpAMP server", error); - } - } - - private async sendFullState() { - return await this.sendAgentToServerMessage({ - agentDescription: new AgentDescription({ - identifyingAttributes: otelAttributesToKeyValuePairs({ - [SEMRESATTRS_SERVICE_INSTANCE_ID]: this.opampInstanceUidString, // always send the instance id - ...this.config.agentDescriptionIdentifyingAttributes, - }), - nonIdentifyingAttributes: otelAttributesToKeyValuePairs( - this.config.agentDescriptionNonIdentifyingAttributes - ), - }), - packageStatuses: new PackageStatuses({ - packages: Object.fromEntries( - this.config.initialPackageStatues.map((pkg) => [pkg.name, pkg]) - ), - }), - }); - } - - private async sendAgentToServerMessage( - message: PartialMessage - ): Promise { - const completeMessageToSend = new AgentToServer({ - ...message, - instanceUid: this.OpAMPInstanceUidBytes, - sequenceNum: this.nextSequenceNum++, - remoteConfigStatus: this.remoteConfigStatus, - }); - const msgBytes = completeMessageToSend.toBinary(); - try { - // do not create traces for the opamp http requests - const serverToAgent = await context.with( - suppressTracing(context.active()), - async () => { - const res = await this.httpClient.post("/v1/opamp", msgBytes, { - responseType: "arraybuffer", - }); - const serverToAgent = ServerToAgent.fromBinary(res.data); - return serverToAgent; - } - ); - this.handleRemoteConfigInResponse(serverToAgent); - return serverToAgent; - } catch (error) { - // TODO: handle - throw error; - } - } -} diff --git a/agents/nodejs/src/opamp/generated/anyvalue_pb.d.ts b/agents/nodejs/src/opamp/generated/anyvalue_pb.d.ts deleted file mode 100644 index 1387bf6e1..000000000 --- a/agents/nodejs/src/opamp/generated/anyvalue_pb.d.ts +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2019, OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This file is copied and modified from https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/common/v1/common.proto -// Modifications: -// - Removal of unneeded InstrumentationLibrary and StringKeyValue messages. -// - Change of go_package to reference a package in this repo. -// - Removal of gogoproto usage. - -// @generated by protoc-gen-es v1.9.0 -// @generated from file anyvalue.proto (package opamp.proto, syntax proto3) -/* eslint-disable */ -// @ts-nocheck - -import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; -import { Message, proto3 } from "@bufbuild/protobuf"; - -/** - * AnyValue is used to represent any type of attribute value. AnyValue may contain a - * primitive value such as a string or integer or it may contain an arbitrary nested - * object containing arrays, key-value lists and primitives. - * - * @generated from message opamp.proto.AnyValue - */ -export declare class AnyValue extends Message { - /** - * The value is one of the listed fields. It is valid for all values to be unspecified - * in which case this AnyValue is considered to be "null". - * - * @generated from oneof opamp.proto.AnyValue.value - */ - value: { - /** - * @generated from field: string string_value = 1; - */ - value: string; - case: "stringValue"; - } | { - /** - * @generated from field: bool bool_value = 2; - */ - value: boolean; - case: "boolValue"; - } | { - /** - * @generated from field: int64 int_value = 3; - */ - value: bigint; - case: "intValue"; - } | { - /** - * @generated from field: double double_value = 4; - */ - value: number; - case: "doubleValue"; - } | { - /** - * @generated from field: opamp.proto.ArrayValue array_value = 5; - */ - value: ArrayValue; - case: "arrayValue"; - } | { - /** - * @generated from field: opamp.proto.KeyValueList kvlist_value = 6; - */ - value: KeyValueList; - case: "kvlistValue"; - } | { - /** - * @generated from field: bytes bytes_value = 7; - */ - value: Uint8Array; - case: "bytesValue"; - } | { case: undefined; value?: undefined }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AnyValue"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AnyValue; - - static fromJson(jsonValue: JsonValue, options?: Partial): AnyValue; - - static fromJsonString(jsonString: string, options?: Partial): AnyValue; - - static equals(a: AnyValue | PlainMessage | undefined, b: AnyValue | PlainMessage | undefined): boolean; -} - -/** - * ArrayValue is a list of AnyValue messages. We need ArrayValue as a message - * since oneof in AnyValue does not allow repeated fields. - * - * @generated from message opamp.proto.ArrayValue - */ -export declare class ArrayValue extends Message { - /** - * Array of values. The array may be empty (contain 0 elements). - * - * @generated from field: repeated opamp.proto.AnyValue values = 1; - */ - values: AnyValue[]; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ArrayValue"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ArrayValue; - - static fromJson(jsonValue: JsonValue, options?: Partial): ArrayValue; - - static fromJsonString(jsonString: string, options?: Partial): ArrayValue; - - static equals(a: ArrayValue | PlainMessage | undefined, b: ArrayValue | PlainMessage | undefined): boolean; -} - -/** - * KeyValueList is a list of KeyValue messages. We need KeyValueList as a message - * since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need - * a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to - * avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches - * are semantically equivalent. - * - * @generated from message opamp.proto.KeyValueList - */ -export declare class KeyValueList extends Message { - /** - * A collection of key/value pairs of key-value pairs. The list may be empty (may - * contain 0 elements). - * - * @generated from field: repeated opamp.proto.KeyValue values = 1; - */ - values: KeyValue[]; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.KeyValueList"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): KeyValueList; - - static fromJson(jsonValue: JsonValue, options?: Partial): KeyValueList; - - static fromJsonString(jsonString: string, options?: Partial): KeyValueList; - - static equals(a: KeyValueList | PlainMessage | undefined, b: KeyValueList | PlainMessage | undefined): boolean; -} - -/** - * KeyValue is a key-value pair that is used to store Span attributes, Link - * attributes, etc. - * - * @generated from message opamp.proto.KeyValue - */ -export declare class KeyValue extends Message { - /** - * @generated from field: string key = 1; - */ - key: string; - - /** - * @generated from field: opamp.proto.AnyValue value = 2; - */ - value?: AnyValue; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.KeyValue"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): KeyValue; - - static fromJson(jsonValue: JsonValue, options?: Partial): KeyValue; - - static fromJsonString(jsonString: string, options?: Partial): KeyValue; - - static equals(a: KeyValue | PlainMessage | undefined, b: KeyValue | PlainMessage | undefined): boolean; -} - diff --git a/agents/nodejs/src/opamp/generated/anyvalue_pb.js b/agents/nodejs/src/opamp/generated/anyvalue_pb.js deleted file mode 100644 index 4cc012610..000000000 --- a/agents/nodejs/src/opamp/generated/anyvalue_pb.js +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2019, OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// This file is copied and modified from https://github.com/open-telemetry/opentelemetry-proto/blob/main/opentelemetry/proto/common/v1/common.proto -// Modifications: -// - Removal of unneeded InstrumentationLibrary and StringKeyValue messages. -// - Change of go_package to reference a package in this repo. -// - Removal of gogoproto usage. - -// @generated by protoc-gen-es v1.9.0 -// @generated from file anyvalue.proto (package opamp.proto, syntax proto3) -/* eslint-disable */ -// @ts-nocheck - -import { proto3 } from "@bufbuild/protobuf"; - -/** - * AnyValue is used to represent any type of attribute value. AnyValue may contain a - * primitive value such as a string or integer or it may contain an arbitrary nested - * object containing arrays, key-value lists and primitives. - * - * @generated from message opamp.proto.AnyValue - */ -export const AnyValue = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AnyValue", - () => [ - { no: 1, name: "string_value", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "value" }, - { no: 2, name: "bool_value", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "value" }, - { no: 3, name: "int_value", kind: "scalar", T: 3 /* ScalarType.INT64 */, oneof: "value" }, - { no: 4, name: "double_value", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, oneof: "value" }, - { no: 5, name: "array_value", kind: "message", T: ArrayValue, oneof: "value" }, - { no: 6, name: "kvlist_value", kind: "message", T: KeyValueList, oneof: "value" }, - { no: 7, name: "bytes_value", kind: "scalar", T: 12 /* ScalarType.BYTES */, oneof: "value" }, - ], -); - -/** - * ArrayValue is a list of AnyValue messages. We need ArrayValue as a message - * since oneof in AnyValue does not allow repeated fields. - * - * @generated from message opamp.proto.ArrayValue - */ -export const ArrayValue = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ArrayValue", - () => [ - { no: 1, name: "values", kind: "message", T: AnyValue, repeated: true }, - ], -); - -/** - * KeyValueList is a list of KeyValue messages. We need KeyValueList as a message - * since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need - * a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to - * avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches - * are semantically equivalent. - * - * @generated from message opamp.proto.KeyValueList - */ -export const KeyValueList = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.KeyValueList", - () => [ - { no: 1, name: "values", kind: "message", T: KeyValue, repeated: true }, - ], -); - -/** - * KeyValue is a key-value pair that is used to store Span attributes, Link - * attributes, etc. - * - * @generated from message opamp.proto.KeyValue - */ -export const KeyValue = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.KeyValue", - () => [ - { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "value", kind: "message", T: AnyValue }, - ], -); - diff --git a/agents/nodejs/src/opamp/generated/opamp_pb.d.ts b/agents/nodejs/src/opamp/generated/opamp_pb.d.ts deleted file mode 100644 index dd3380dfd..000000000 --- a/agents/nodejs/src/opamp/generated/opamp_pb.d.ts +++ /dev/null @@ -1,1985 +0,0 @@ -// Copyright 2021, OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// OpAMP: Open Agent Management Protocol (https://github.com/open-telemetry/opamp-spec) - -// @generated by protoc-gen-es v1.9.0 -// @generated from file opamp.proto (package opamp.proto, syntax proto3) -/* eslint-disable */ -// @ts-nocheck - -import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf"; -import { Message, proto3 } from "@bufbuild/protobuf"; -import type { KeyValue } from "./anyvalue_pb.js"; - -/** - * @generated from enum opamp.proto.AgentToServerFlags - */ -export declare enum AgentToServerFlags { - /** - * @generated from enum value: AgentToServerFlags_Unspecified = 0; - */ - AgentToServerFlags_Unspecified = 0, - - /** - * The Agent requests Server go generate a new instance_uid, which will - * be sent back in ServerToAgent message - * - * @generated from enum value: AgentToServerFlags_RequestInstanceUid = 1; - */ - AgentToServerFlags_RequestInstanceUid = 1, -} - -/** - * @generated from enum opamp.proto.ServerToAgentFlags - */ -export declare enum ServerToAgentFlags { - /** - * @generated from enum value: ServerToAgentFlags_Unspecified = 0; - */ - ServerToAgentFlags_Unspecified = 0, - - /** - * ReportFullState flag can be used by the Server if the Agent did not include the - * particular bit of information in the last status report (which is an allowed - * optimization) but the Server detects that it does not have it (e.g. was - * restarted and lost state). The detection happens using - * AgentToServer.sequence_num values. - * The Server asks the Agent to report full status. - * - * @generated from enum value: ServerToAgentFlags_ReportFullState = 1; - */ - ServerToAgentFlags_ReportFullState = 1, -} - -/** - * @generated from enum opamp.proto.ServerCapabilities - */ -export declare enum ServerCapabilities { - /** - * The capabilities field is unspecified. - * - * @generated from enum value: ServerCapabilities_Unspecified = 0; - */ - ServerCapabilities_Unspecified = 0, - - /** - * The Server can accept status reports. This bit MUST be set, since all Server - * MUST be able to accept status reports. - * - * @generated from enum value: ServerCapabilities_AcceptsStatus = 1; - */ - ServerCapabilities_AcceptsStatus = 1, - - /** - * The Server can offer remote configuration to the Agent. - * - * @generated from enum value: ServerCapabilities_OffersRemoteConfig = 2; - */ - ServerCapabilities_OffersRemoteConfig = 2, - - /** - * The Server can accept EffectiveConfig in AgentToServer. - * - * @generated from enum value: ServerCapabilities_AcceptsEffectiveConfig = 4; - */ - ServerCapabilities_AcceptsEffectiveConfig = 4, - - /** - * The Server can offer Packages. - * Status: [Beta] - * - * @generated from enum value: ServerCapabilities_OffersPackages = 8; - */ - ServerCapabilities_OffersPackages = 8, - - /** - * The Server can accept Packages status. - * Status: [Beta] - * - * @generated from enum value: ServerCapabilities_AcceptsPackagesStatus = 16; - */ - ServerCapabilities_AcceptsPackagesStatus = 16, - - /** - * The Server can offer connection settings. - * Status: [Beta] - * - * @generated from enum value: ServerCapabilities_OffersConnectionSettings = 32; - */ - ServerCapabilities_OffersConnectionSettings = 32, - - /** - * The Server can accept ConnectionSettingsRequest and respond with an offer. - * Status: [Development] - * - * @generated from enum value: ServerCapabilities_AcceptsConnectionSettingsRequest = 64; - */ - ServerCapabilities_AcceptsConnectionSettingsRequest = 64, -} - -/** - * The type of the package, either an addon or a top-level package. - * Status: [Beta] - * - * @generated from enum opamp.proto.PackageType - */ -export declare enum PackageType { - /** - * @generated from enum value: PackageType_TopLevel = 0; - */ - PackageType_TopLevel = 0, - - /** - * @generated from enum value: PackageType_Addon = 1; - */ - PackageType_Addon = 1, -} - -/** - * @generated from enum opamp.proto.ServerErrorResponseType - */ -export declare enum ServerErrorResponseType { - /** - * Unknown error. Something went wrong, but it is not known what exactly. - * The Agent SHOULD NOT retry the message. - * The error_message field may contain a description of the problem. - * - * @generated from enum value: ServerErrorResponseType_Unknown = 0; - */ - ServerErrorResponseType_Unknown = 0, - - /** - * The AgentToServer message was malformed. The Agent SHOULD NOT retry - * the message. - * - * @generated from enum value: ServerErrorResponseType_BadRequest = 1; - */ - ServerErrorResponseType_BadRequest = 1, - - /** - * The Server is overloaded and unable to process the request. The Agent - * should retry the message later. retry_info field may be optionally - * set with additional information about retrying. - * - * @generated from enum value: ServerErrorResponseType_Unavailable = 2; - */ - ServerErrorResponseType_Unavailable = 2, -} - -/** - * Status: [Beta] - * - * @generated from enum opamp.proto.CommandType - */ -export declare enum CommandType { - /** - * The Agent should restart. This request will be ignored if the Agent does not - * support restart. - * - * @generated from enum value: CommandType_Restart = 0; - */ - CommandType_Restart = 0, -} - -/** - * @generated from enum opamp.proto.AgentCapabilities - */ -export declare enum AgentCapabilities { - /** - * The capabilities field is unspecified. - * - * @generated from enum value: AgentCapabilities_Unspecified = 0; - */ - AgentCapabilities_Unspecified = 0, - - /** - * The Agent can report status. This bit MUST be set, since all Agents MUST - * report status. - * - * @generated from enum value: AgentCapabilities_ReportsStatus = 1; - */ - AgentCapabilities_ReportsStatus = 1, - - /** - * The Agent can accept remote configuration from the Server. - * - * @generated from enum value: AgentCapabilities_AcceptsRemoteConfig = 2; - */ - AgentCapabilities_AcceptsRemoteConfig = 2, - - /** - * The Agent will report EffectiveConfig in AgentToServer. - * - * @generated from enum value: AgentCapabilities_ReportsEffectiveConfig = 4; - */ - AgentCapabilities_ReportsEffectiveConfig = 4, - - /** - * The Agent can accept package offers. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_AcceptsPackages = 8; - */ - AgentCapabilities_AcceptsPackages = 8, - - /** - * The Agent can report package status. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_ReportsPackageStatuses = 16; - */ - AgentCapabilities_ReportsPackageStatuses = 16, - - /** - * The Agent can report own trace to the destination specified by - * the Server via ConnectionSettingsOffers.own_traces field. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_ReportsOwnTraces = 32; - */ - AgentCapabilities_ReportsOwnTraces = 32, - - /** - * The Agent can report own metrics to the destination specified by - * the Server via ConnectionSettingsOffers.own_metrics field. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_ReportsOwnMetrics = 64; - */ - AgentCapabilities_ReportsOwnMetrics = 64, - - /** - * The Agent can report own logs to the destination specified by - * the Server via ConnectionSettingsOffers.own_logs field. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_ReportsOwnLogs = 128; - */ - AgentCapabilities_ReportsOwnLogs = 128, - - /** - * The can accept connections settings for OpAMP via - * ConnectionSettingsOffers.opamp field. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_AcceptsOpAMPConnectionSettings = 256; - */ - AgentCapabilities_AcceptsOpAMPConnectionSettings = 256, - - /** - * The can accept connections settings for other destinations via - * ConnectionSettingsOffers.other_connections field. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_AcceptsOtherConnectionSettings = 512; - */ - AgentCapabilities_AcceptsOtherConnectionSettings = 512, - - /** - * The Agent can accept restart requests. - * Status: [Beta] - * - * @generated from enum value: AgentCapabilities_AcceptsRestartCommand = 1024; - */ - AgentCapabilities_AcceptsRestartCommand = 1024, - - /** - * The Agent will report Health via AgentToServer.health field. - * - * @generated from enum value: AgentCapabilities_ReportsHealth = 2048; - */ - AgentCapabilities_ReportsHealth = 2048, - - /** - * The Agent will report RemoteConfig status via AgentToServer.remote_config_status field. - * - * @generated from enum value: AgentCapabilities_ReportsRemoteConfig = 4096; - */ - AgentCapabilities_ReportsRemoteConfig = 4096, -} - -/** - * @generated from enum opamp.proto.RemoteConfigStatuses - */ -export declare enum RemoteConfigStatuses { - /** - * The value of status field is not set. - * - * @generated from enum value: RemoteConfigStatuses_UNSET = 0; - */ - RemoteConfigStatuses_UNSET = 0, - - /** - * Remote config was successfully applied by the Agent. - * - * @generated from enum value: RemoteConfigStatuses_APPLIED = 1; - */ - RemoteConfigStatuses_APPLIED = 1, - - /** - * Agent is currently applying the remote config that it received earlier. - * - * @generated from enum value: RemoteConfigStatuses_APPLYING = 2; - */ - RemoteConfigStatuses_APPLYING = 2, - - /** - * Agent tried to apply the config received earlier, but it failed. - * See error_message for more details. - * - * @generated from enum value: RemoteConfigStatuses_FAILED = 3; - */ - RemoteConfigStatuses_FAILED = 3, -} - -/** - * The status of this package. - * Status: [Beta] - * - * @generated from enum opamp.proto.PackageStatusEnum - */ -export declare enum PackageStatusEnum { - /** - * Package is successfully installed by the Agent. - * The error_message field MUST NOT be set. - * - * @generated from enum value: PackageStatusEnum_Installed = 0; - */ - PackageStatusEnum_Installed = 0, - - /** - * Installation of this package has not yet started. - * - * @generated from enum value: PackageStatusEnum_InstallPending = 1; - */ - PackageStatusEnum_InstallPending = 1, - - /** - * Agent is currently downloading and installing the package. - * server_offered_hash field MUST be set to indicate the version that the - * Agent is installing. The error_message field MUST NOT be set. - * - * @generated from enum value: PackageStatusEnum_Installing = 2; - */ - PackageStatusEnum_Installing = 2, - - /** - * Agent tried to install the package but installation failed. - * server_offered_hash field MUST be set to indicate the version that the Agent - * tried to install. The error_message may also contain more details about - * the failure. - * - * @generated from enum value: PackageStatusEnum_InstallFailed = 3; - */ - PackageStatusEnum_InstallFailed = 3, -} - -/** - * @generated from message opamp.proto.AgentToServer - */ -export declare class AgentToServer extends Message { - /** - * Globally unique identifier of the running instance of the Agent. SHOULD remain - * unchanged for the lifetime of the Agent process. - * MUST be 16 bytes long and SHOULD be generated using the UUID v7 spec. - * - * @generated from field: bytes instance_uid = 1; - */ - instanceUid: Uint8Array; - - /** - * The sequence number is incremented by 1 for every AgentToServer sent - * by the Agent. This allows the Server to detect that it missed a message when - * it notices that the sequence_num is not exactly by 1 greater than the previously - * received one. - * - * @generated from field: uint64 sequence_num = 2; - */ - sequenceNum: bigint; - - /** - * Data that describes the Agent, its type, where it runs, etc. - * May be omitted if nothing changed since last AgentToServer message. - * - * @generated from field: opamp.proto.AgentDescription agent_description = 3; - */ - agentDescription?: AgentDescription; - - /** - * Bitmask of flags defined by AgentCapabilities enum. - * All bits that are not defined in AgentCapabilities enum MUST be set to 0 by - * the Agent. This allows extending the protocol and the AgentCapabilities enum - * in the future such that old Agents automatically report that they don't - * support the new capability. - * This field MUST be always set. - * - * @generated from field: uint64 capabilities = 4; - */ - capabilities: bigint; - - /** - * The current health of the Agent and sub-components. The top-level ComponentHealth represents - * the health of the Agent overall. May be omitted if nothing changed since last AgentToServer - * message. - * Status: [Beta] - * - * @generated from field: opamp.proto.ComponentHealth health = 5; - */ - health?: ComponentHealth; - - /** - * The current effective configuration of the Agent. The effective configuration is - * the one that is currently used by the Agent. The effective configuration may be - * different from the remote configuration received from the Server earlier, e.g. - * because the Agent uses a local configuration instead (or in addition). - * - * This field SHOULD be unset if the effective config is unchanged since the last - * AgentToServer message. - * - * @generated from field: opamp.proto.EffectiveConfig effective_config = 6; - */ - effectiveConfig?: EffectiveConfig; - - /** - * The status of the remote config that was previously received from the Server. - * This field SHOULD be unset if the remote config status is unchanged since the - * last AgentToServer message. - * - * @generated from field: opamp.proto.RemoteConfigStatus remote_config_status = 7; - */ - remoteConfigStatus?: RemoteConfigStatus; - - /** - * The list of the Agent packages, including package statuses. This field SHOULD be - * unset if this information is unchanged since the last AgentToServer message for - * this Agent was sent in the stream. - * Status: [Beta] - * - * @generated from field: opamp.proto.PackageStatuses package_statuses = 8; - */ - packageStatuses?: PackageStatuses; - - /** - * AgentDisconnect MUST be set in the last AgentToServer message sent from the - * Agent to the Server. - * - * @generated from field: opamp.proto.AgentDisconnect agent_disconnect = 9; - */ - agentDisconnect?: AgentDisconnect; - - /** - * Bit flags as defined by AgentToServerFlags bit masks. - * - * @generated from field: uint64 flags = 10; - */ - flags: bigint; - - /** - * A request to create connection settings. This field is set for flows where - * the Agent initiates the creation of connection settings. - * Status: [Development] - * - * @generated from field: opamp.proto.ConnectionSettingsRequest connection_settings_request = 11; - */ - connectionSettingsRequest?: ConnectionSettingsRequest; - - /** - * A message indicating custom capabilities supported by the Agent. - * Status: [Development] - * - * @generated from field: opamp.proto.CustomCapabilities custom_capabilities = 12; - */ - customCapabilities?: CustomCapabilities; - - /** - * A custom message sent from an Agent to the Server. - * Status: [Development] - * - * @generated from field: opamp.proto.CustomMessage custom_message = 13; - */ - customMessage?: CustomMessage; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentToServer"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentToServer; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentToServer; - - static fromJsonString(jsonString: string, options?: Partial): AgentToServer; - - static equals(a: AgentToServer | PlainMessage | undefined, b: AgentToServer | PlainMessage | undefined): boolean; -} - -/** - * AgentDisconnect is the last message sent from the Agent to the Server. The Server - * SHOULD forget the association of the Agent instance with the message stream. - * - * If the message stream is closed in the transport layer then the Server SHOULD - * forget association of all Agent instances that were previously established for - * this message stream using AgentConnect message, even if the corresponding - * AgentDisconnect message were not explicitly received from the Agent. - * - * @generated from message opamp.proto.AgentDisconnect - */ -export declare class AgentDisconnect extends Message { - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentDisconnect"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentDisconnect; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentDisconnect; - - static fromJsonString(jsonString: string, options?: Partial): AgentDisconnect; - - static equals(a: AgentDisconnect | PlainMessage | undefined, b: AgentDisconnect | PlainMessage | undefined): boolean; -} - -/** - * ConnectionSettingsRequest is a request from the Agent to the Server to create - * and respond with an offer of connection settings for the Agent. - * Status: [Development] - * - * @generated from message opamp.proto.ConnectionSettingsRequest - */ -export declare class ConnectionSettingsRequest extends Message { - /** - * Request for OpAMP connection settings. If this field is unset - * then the ConnectionSettingsRequest message is empty and is not actionable - * for the Server. - * - * @generated from field: opamp.proto.OpAMPConnectionSettingsRequest opamp = 1; - */ - opamp?: OpAMPConnectionSettingsRequest; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ConnectionSettingsRequest"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ConnectionSettingsRequest; - - static fromJson(jsonValue: JsonValue, options?: Partial): ConnectionSettingsRequest; - - static fromJsonString(jsonString: string, options?: Partial): ConnectionSettingsRequest; - - static equals(a: ConnectionSettingsRequest | PlainMessage | undefined, b: ConnectionSettingsRequest | PlainMessage | undefined): boolean; -} - -/** - * OpAMPConnectionSettingsRequest is a request for the Server to produce - * a OpAMPConnectionSettings in its response. - * Status: [Development] - * - * @generated from message opamp.proto.OpAMPConnectionSettingsRequest - */ -export declare class OpAMPConnectionSettingsRequest extends Message { - /** - * A request to create a client certificate. This is used to initiate a - * Client Signing Request (CSR) flow. - * Required. - * - * @generated from field: opamp.proto.CertificateRequest certificate_request = 1; - */ - certificateRequest?: CertificateRequest; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.OpAMPConnectionSettingsRequest"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): OpAMPConnectionSettingsRequest; - - static fromJson(jsonValue: JsonValue, options?: Partial): OpAMPConnectionSettingsRequest; - - static fromJsonString(jsonString: string, options?: Partial): OpAMPConnectionSettingsRequest; - - static equals(a: OpAMPConnectionSettingsRequest | PlainMessage | undefined, b: OpAMPConnectionSettingsRequest | PlainMessage | undefined): boolean; -} - -/** - * Status: [Development] - * - * @generated from message opamp.proto.CertificateRequest - */ -export declare class CertificateRequest extends Message { - /** - * PEM-encoded Client Certificate Signing Request (CSR), signed by client's private key. - * The Server SHOULD validate the request and SHOULD respond with a - * OpAMPConnectionSettings where the certificate.public_key contains the issued - * certificate. - * - * @generated from field: bytes csr = 1; - */ - csr: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.CertificateRequest"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): CertificateRequest; - - static fromJson(jsonValue: JsonValue, options?: Partial): CertificateRequest; - - static fromJsonString(jsonString: string, options?: Partial): CertificateRequest; - - static equals(a: CertificateRequest | PlainMessage | undefined, b: CertificateRequest | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.ServerToAgent - */ -export declare class ServerToAgent extends Message { - /** - * Agent instance uid. MUST match the instance_uid field in AgentToServer message. - * Used for multiplexing messages from/to multiple agents using one message stream. - * - * @generated from field: bytes instance_uid = 1; - */ - instanceUid: Uint8Array; - - /** - * error_response is set if the Server wants to indicate that something went wrong - * during processing of an AgentToServer message. If error_response is set then - * all other fields below must be unset and vice versa, if any of the fields below is - * set then error_response must be unset. - * - * @generated from field: opamp.proto.ServerErrorResponse error_response = 2; - */ - errorResponse?: ServerErrorResponse; - - /** - * remote_config field is set when the Server has a remote config offer for the Agent. - * - * @generated from field: opamp.proto.AgentRemoteConfig remote_config = 3; - */ - remoteConfig?: AgentRemoteConfig; - - /** - * This field is set when the Server wants the Agent to change one or more - * of its client connection settings (destination, headers, certificate, etc). - * Status: [Beta] - * - * @generated from field: opamp.proto.ConnectionSettingsOffers connection_settings = 4; - */ - connectionSettings?: ConnectionSettingsOffers; - - /** - * This field is set when the Server has packages to offer to the Agent. - * Status: [Beta] - * - * @generated from field: opamp.proto.PackagesAvailable packages_available = 5; - */ - packagesAvailable?: PackagesAvailable; - - /** - * Bit flags as defined by ServerToAgentFlags bit masks. - * - * @generated from field: uint64 flags = 6; - */ - flags: bigint; - - /** - * Bitmask of flags defined by ServerCapabilities enum. - * All bits that are not defined in ServerCapabilities enum MUST be set to 0 - * by the Server. This allows extending the protocol and the ServerCapabilities - * enum in the future such that old Servers automatically report that they - * don't support the new capability. - * This field MUST be set in the first ServerToAgent sent by the Server and MAY - * be omitted in subsequent ServerToAgent messages by setting it to - * UnspecifiedServerCapability value. - * - * @generated from field: uint64 capabilities = 7; - */ - capabilities: bigint; - - /** - * Properties related to identification of the Agent, which can be overridden - * by the Server if needed. - * - * @generated from field: opamp.proto.AgentIdentification agent_identification = 8; - */ - agentIdentification?: AgentIdentification; - - /** - * Allows the Server to instruct the Agent to perform a command, e.g. RESTART. This field should not be specified - * with fields other than instance_uid and capabilities. If specified, other fields will be ignored and the command - * will be performed. - * Status: [Beta] - * - * @generated from field: opamp.proto.ServerToAgentCommand command = 9; - */ - command?: ServerToAgentCommand; - - /** - * A message indicating custom capabilities supported by the Server. - * Status: [Development] - * - * @generated from field: opamp.proto.CustomCapabilities custom_capabilities = 10; - */ - customCapabilities?: CustomCapabilities; - - /** - * A custom message sent from the Server to an Agent. - * Status: [Development] - * - * @generated from field: opamp.proto.CustomMessage custom_message = 11; - */ - customMessage?: CustomMessage; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ServerToAgent"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ServerToAgent; - - static fromJson(jsonValue: JsonValue, options?: Partial): ServerToAgent; - - static fromJsonString(jsonString: string, options?: Partial): ServerToAgent; - - static equals(a: ServerToAgent | PlainMessage | undefined, b: ServerToAgent | PlainMessage | undefined): boolean; -} - -/** - * The OpAMPConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for OpAMP - * connection. - * Status: [Beta] - * - * @generated from message opamp.proto.OpAMPConnectionSettings - */ -export declare class OpAMPConnectionSettings extends Message { - /** - * OpAMP Server URL This MUST be a WebSocket or HTTP URL and MUST be non-empty, for - * example: "wss://example.com:4318/v1/opamp" - * - * @generated from field: string destination_endpoint = 1; - */ - destinationEndpoint: string; - - /** - * Optional headers to use when connecting. Typically used to set access tokens or - * other authorization headers. For HTTP-based protocols the Agent should - * set these in the request headers. - * For example: - * key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - * - * @generated from field: opamp.proto.Headers headers = 2; - */ - headers?: Headers; - - /** - * The Agent should use the offered certificate to connect to the destination - * from now on. If the Agent is able to validate and connect using the offered - * certificate the Agent SHOULD forget any previous client certificates - * for this connection. - * This field is optional: if omitted the client SHOULD NOT use a client-side certificate. - * This field can be used to perform a client certificate revocation/rotation. - * - * @generated from field: opamp.proto.TLSCertificate certificate = 3; - */ - certificate?: TLSCertificate; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.OpAMPConnectionSettings"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): OpAMPConnectionSettings; - - static fromJson(jsonValue: JsonValue, options?: Partial): OpAMPConnectionSettings; - - static fromJsonString(jsonString: string, options?: Partial): OpAMPConnectionSettings; - - static equals(a: OpAMPConnectionSettings | PlainMessage | undefined, b: OpAMPConnectionSettings | PlainMessage | undefined): boolean; -} - -/** - * The TelemetryConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for a network - * connection to report own telemetry. - * Status: [Beta] - * - * @generated from message opamp.proto.TelemetryConnectionSettings - */ -export declare class TelemetryConnectionSettings extends Message { - /** - * The value MUST be a full URL an OTLP/HTTP/Protobuf receiver with path. Schema - * SHOULD begin with "https://", for example "https://example.com:4318/v1/metrics" - * The Agent MAY refuse to send the telemetry if the URL begins with "http://". - * - * @generated from field: string destination_endpoint = 1; - */ - destinationEndpoint: string; - - /** - * Optional headers to use when connecting. Typically used to set access tokens or - * other authorization headers. For HTTP-based protocols the Agent should - * set these in the request headers. - * For example: - * key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - * - * @generated from field: opamp.proto.Headers headers = 2; - */ - headers?: Headers; - - /** - * The Agent should use the offered certificate to connect to the destination - * from now on. If the Agent is able to validate and connect using the offered - * certificate the Agent SHOULD forget any previous client certificates - * for this connection. - * This field is optional: if omitted the client SHOULD NOT use a client-side certificate. - * This field can be used to perform a client certificate revocation/rotation. - * - * @generated from field: opamp.proto.TLSCertificate certificate = 3; - */ - certificate?: TLSCertificate; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.TelemetryConnectionSettings"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): TelemetryConnectionSettings; - - static fromJson(jsonValue: JsonValue, options?: Partial): TelemetryConnectionSettings; - - static fromJsonString(jsonString: string, options?: Partial): TelemetryConnectionSettings; - - static equals(a: TelemetryConnectionSettings | PlainMessage | undefined, b: TelemetryConnectionSettings | PlainMessage | undefined): boolean; -} - -/** - * The OtherConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for a network - * connection. It is not required that all fields in this message are specified. - * The Server may specify only some of the fields, in which case it means that - * the Server offers the Agent to change only those fields, while keeping the - * rest of the fields unchanged. - * - * For example the Server may send a ConnectionSettings message with only the - * certificate field set, while all other fields are unset. This means that - * the Server wants the Agent to use a new certificate and continue sending to - * the destination it is currently sending using the current header and other - * settings. - * - * For fields which reference other messages the field is considered unset - * when the reference is unset. - * - * For primitive field (string) we rely on the "flags" to describe that the - * field is not set (this is done to overcome the limitation of old protoc - * compilers don't generate methods that allow to check for the presence of - * the field. - * Status: [Beta] - * - * @generated from message opamp.proto.OtherConnectionSettings - */ -export declare class OtherConnectionSettings extends Message { - /** - * A URL, host:port or some other destination specifier. - * - * @generated from field: string destination_endpoint = 1; - */ - destinationEndpoint: string; - - /** - * Optional headers to use when connecting. Typically used to set access tokens or - * other authorization headers. For HTTP-based protocols the Agent should - * set these in the request headers. - * For example: - * key="Authorization", Value="Basic YWxhZGRpbjpvcGVuc2VzYW1l". - * - * @generated from field: opamp.proto.Headers headers = 2; - */ - headers?: Headers; - - /** - * The Agent should use the offered certificate to connect to the destination - * from now on. If the Agent is able to validate and connect using the offered - * certificate the Agent SHOULD forget any previous client certificates - * for this connection. - * This field is optional: if omitted the client SHOULD NOT use a client-side certificate. - * This field can be used to perform a client certificate revocation/rotation. - * - * @generated from field: opamp.proto.TLSCertificate certificate = 3; - */ - certificate?: TLSCertificate; - - /** - * Other connection settings. These are Agent-specific and are up to the Agent - * interpret. - * - * @generated from field: map other_settings = 4; - */ - otherSettings: { [key: string]: string }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.OtherConnectionSettings"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): OtherConnectionSettings; - - static fromJson(jsonValue: JsonValue, options?: Partial): OtherConnectionSettings; - - static fromJsonString(jsonString: string, options?: Partial): OtherConnectionSettings; - - static equals(a: OtherConnectionSettings | PlainMessage | undefined, b: OtherConnectionSettings | PlainMessage | undefined): boolean; -} - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.Headers - */ -export declare class Headers extends Message { - /** - * @generated from field: repeated opamp.proto.Header headers = 1; - */ - headers: Header[]; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.Headers"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): Headers; - - static fromJson(jsonValue: JsonValue, options?: Partial): Headers; - - static fromJsonString(jsonString: string, options?: Partial): Headers; - - static equals(a: Headers | PlainMessage | undefined, b: Headers | PlainMessage | undefined): boolean; -} - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.Header - */ -export declare class Header extends Message
{ - /** - * @generated from field: string key = 1; - */ - key: string; - - /** - * @generated from field: string value = 2; - */ - value: string; - - constructor(data?: PartialMessage
); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.Header"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): Header; - - static fromJson(jsonValue: JsonValue, options?: Partial): Header; - - static fromJsonString(jsonString: string, options?: Partial): Header; - - static equals(a: Header | PlainMessage
| undefined, b: Header | PlainMessage
| undefined): boolean; -} - -/** - * Status: [Beta] - * - * The (public_key,private_key) certificate pair should be issued and - * signed by a Certificate Authority that the destination Server recognizes. - * - * It is highly recommended that the private key of the CA certificate is NOT - * stored on the destination Server otherwise compromising the Server will allow - * a malicious actor to issue valid Server certificates which will be automatically - * trusted by all agents and will allow the actor to trivially MITM Agent-to-Server - * traffic of all servers that use this CA certificate for their Server-side - * certificates. - * - * Alternatively the certificate may be self-signed, assuming the Server can - * verify the certificate. - * - * @generated from message opamp.proto.TLSCertificate - */ -export declare class TLSCertificate extends Message { - /** - * PEM-encoded public key of the certificate. Required. - * - * @generated from field: bytes public_key = 1; - */ - publicKey: Uint8Array; - - /** - * PEM-encoded private key of the certificate. Required. - * - * @generated from field: bytes private_key = 2; - */ - privateKey: Uint8Array; - - /** - * PEM-encoded public key of the CA that signed this certificate. - * Optional. MUST be specified if the certificate is CA-signed. - * Can be stored by TLS-terminating intermediary proxies in order to verify - * the connecting client's certificate in the future. - * It is not recommended that the Agent accepts this CA as an authority for - * any purposes. - * - * @generated from field: bytes ca_public_key = 3; - */ - caPublicKey: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.TLSCertificate"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): TLSCertificate; - - static fromJson(jsonValue: JsonValue, options?: Partial): TLSCertificate; - - static fromJsonString(jsonString: string, options?: Partial): TLSCertificate; - - static equals(a: TLSCertificate | PlainMessage | undefined, b: TLSCertificate | PlainMessage | undefined): boolean; -} - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.ConnectionSettingsOffers - */ -export declare class ConnectionSettingsOffers extends Message { - /** - * Hash of all settings, including settings that may be omitted from this message - * because they are unchanged. - * - * @generated from field: bytes hash = 1; - */ - hash: Uint8Array; - - /** - * Settings to connect to the OpAMP Server. - * If this field is not set then the Agent should assume that the settings are - * unchanged and should continue using existing settings. - * The Agent MUST verify the offered connection settings by actually connecting - * before accepting the setting to ensure it does not loose access to the OpAMP - * Server due to invalid settings. - * - * @generated from field: opamp.proto.OpAMPConnectionSettings opamp = 2; - */ - opamp?: OpAMPConnectionSettings; - - /** - * Settings to connect to an OTLP metrics backend to send Agent's own metrics to. - * If this field is not set then the Agent should assume that the settings - * are unchanged. - * - * Once accepted the Agent should periodically send to the specified destination - * its own metrics, i.e. metrics of the Agent process and any custom metrics that - * describe the Agent state. - * - * All attributes specified in the identifying_attributes field in AgentDescription - * message SHOULD be also specified in the Resource of the reported OTLP metrics. - * - * Attributes specified in the non_identifying_attributes field in - * AgentDescription message may be also specified in the Resource of the reported - * OTLP metrics, in which case they SHOULD have exactly the same values. - * - * Process metrics MUST follow the conventions for processes: - * https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/semantic_conventions/process-metrics.md - * - * @generated from field: opamp.proto.TelemetryConnectionSettings own_metrics = 3; - */ - ownMetrics?: TelemetryConnectionSettings; - - /** - * Similar to own_metrics, but for traces. - * - * @generated from field: opamp.proto.TelemetryConnectionSettings own_traces = 4; - */ - ownTraces?: TelemetryConnectionSettings; - - /** - * Similar to own_metrics, but for logs. - * - * @generated from field: opamp.proto.TelemetryConnectionSettings own_logs = 5; - */ - ownLogs?: TelemetryConnectionSettings; - - /** - * Another set of connection settings, with a string name associated with each. - * How the Agent uses these is Agent-specific. Typically the name represents - * the name of the destination to connect to (as it is known to the Agent). - * If this field is not set then the Agent should assume that the other_connections - * settings are unchanged. - * - * @generated from field: map other_connections = 6; - */ - otherConnections: { [key: string]: OtherConnectionSettings }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ConnectionSettingsOffers"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ConnectionSettingsOffers; - - static fromJson(jsonValue: JsonValue, options?: Partial): ConnectionSettingsOffers; - - static fromJsonString(jsonString: string, options?: Partial): ConnectionSettingsOffers; - - static equals(a: ConnectionSettingsOffers | PlainMessage | undefined, b: ConnectionSettingsOffers | PlainMessage | undefined): boolean; -} - -/** - * List of packages that the Server offers to the Agent. - * Status: [Beta] - * - * @generated from message opamp.proto.PackagesAvailable - */ -export declare class PackagesAvailable extends Message { - /** - * Map of packages. Keys are package names, values are the packages available for download. - * - * @generated from field: map packages = 1; - */ - packages: { [key: string]: PackageAvailable }; - - /** - * Aggregate hash of all remotely installed packages. The Agent SHOULD include this - * value in subsequent PackageStatuses messages. This in turn allows the management - * Server to identify that a different set of packages is available for the Agent - * and specify the available packages in the next ServerToAgent message. - * - * This field MUST be always set if the management Server supports packages - * of agents. - * - * The hash is calculated as an aggregate of all packages names and content. - * - * @generated from field: bytes all_packages_hash = 2; - */ - allPackagesHash: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.PackagesAvailable"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): PackagesAvailable; - - static fromJson(jsonValue: JsonValue, options?: Partial): PackagesAvailable; - - static fromJsonString(jsonString: string, options?: Partial): PackagesAvailable; - - static equals(a: PackagesAvailable | PlainMessage | undefined, b: PackagesAvailable | PlainMessage | undefined): boolean; -} - -/** - * Each Agent is composed of one or more packages. A package has a name and - * content stored in a file. The content of the files, functionality - * provided by the packages, how they are stored and used by the Agent side is Agent - * type-specific and is outside the concerns of the OpAMP protocol. - * - * If the Agent does not have an installed package with the specified name then - * it SHOULD download it from the specified URL and install it. - * - * If the Agent already has an installed package with the specified name - * but with a different hash then the Agent SHOULD download and - * install the package again, since it is a different version of the same package. - * - * If the Agent has an installed package with the specified name and the same - * hash then the Agent does not need to do anything, it already - * has the right version of the package. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageAvailable - */ -export declare class PackageAvailable extends Message { - /** - * @generated from field: opamp.proto.PackageType type = 1; - */ - type: PackageType; - - /** - * The package version that is available on the Server side. The Agent may for - * example use this information to avoid downloading a package that was previously - * already downloaded and failed to install. - * - * @generated from field: string version = 2; - */ - version: string; - - /** - * The downloadable file of the package. - * - * @generated from field: opamp.proto.DownloadableFile file = 3; - */ - file?: DownloadableFile; - - /** - * The hash of the package. SHOULD be calculated based on all other fields of the - * PackageAvailable message and content of the file of the package. The hash is - * used by the Agent to determine if the package it has is different from the - * package the Server is offering. - * - * @generated from field: bytes hash = 4; - */ - hash: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.PackageAvailable"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): PackageAvailable; - - static fromJson(jsonValue: JsonValue, options?: Partial): PackageAvailable; - - static fromJsonString(jsonString: string, options?: Partial): PackageAvailable; - - static equals(a: PackageAvailable | PlainMessage | undefined, b: PackageAvailable | PlainMessage | undefined): boolean; -} - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.DownloadableFile - */ -export declare class DownloadableFile extends Message { - /** - * The URL from which the file can be downloaded using HTTP GET request. - * The Server at the specified URL SHOULD support range requests - * to allow for resuming downloads. - * - * @generated from field: string download_url = 1; - */ - downloadUrl: string; - - /** - * The hash of the file content. Can be used by the Agent to verify that the file - * was downloaded correctly. - * - * @generated from field: bytes content_hash = 2; - */ - contentHash: Uint8Array; - - /** - * Optional signature of the file content. Can be used by the Agent to verify the - * authenticity of the downloaded file, for example can be the - * [detached GPG signature](https://www.gnupg.org/gph/en/manual/x135.html#AEN160). - * The exact signing and verification method is Agent specific. See - * https://github.com/open-telemetry/opamp-spec/blob/main/specification.md#code-signing - * for recommendations. - * - * @generated from field: bytes signature = 3; - */ - signature: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.DownloadableFile"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): DownloadableFile; - - static fromJson(jsonValue: JsonValue, options?: Partial): DownloadableFile; - - static fromJsonString(jsonString: string, options?: Partial): DownloadableFile; - - static equals(a: DownloadableFile | PlainMessage | undefined, b: DownloadableFile | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.ServerErrorResponse - */ -export declare class ServerErrorResponse extends Message { - /** - * @generated from field: opamp.proto.ServerErrorResponseType type = 1; - */ - type: ServerErrorResponseType; - - /** - * Error message in the string form, typically human readable. - * - * @generated from field: string error_message = 2; - */ - errorMessage: string; - - /** - * @generated from oneof opamp.proto.ServerErrorResponse.Details - */ - Details: { - /** - * Additional information about retrying if type==UNAVAILABLE. - * - * @generated from field: opamp.proto.RetryInfo retry_info = 3; - */ - value: RetryInfo; - case: "retryInfo"; - } | { case: undefined; value?: undefined }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ServerErrorResponse"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ServerErrorResponse; - - static fromJson(jsonValue: JsonValue, options?: Partial): ServerErrorResponse; - - static fromJsonString(jsonString: string, options?: Partial): ServerErrorResponse; - - static equals(a: ServerErrorResponse | PlainMessage | undefined, b: ServerErrorResponse | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.RetryInfo - */ -export declare class RetryInfo extends Message { - /** - * @generated from field: uint64 retry_after_nanoseconds = 1; - */ - retryAfterNanoseconds: bigint; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.RetryInfo"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): RetryInfo; - - static fromJson(jsonValue: JsonValue, options?: Partial): RetryInfo; - - static fromJsonString(jsonString: string, options?: Partial): RetryInfo; - - static equals(a: RetryInfo | PlainMessage | undefined, b: RetryInfo | PlainMessage | undefined): boolean; -} - -/** - * ServerToAgentCommand is sent from the Server to the Agent to request that the Agent - * perform a command. - * Status: [Beta] - * - * @generated from message opamp.proto.ServerToAgentCommand - */ -export declare class ServerToAgentCommand extends Message { - /** - * @generated from field: opamp.proto.CommandType type = 1; - */ - type: CommandType; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ServerToAgentCommand"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ServerToAgentCommand; - - static fromJson(jsonValue: JsonValue, options?: Partial): ServerToAgentCommand; - - static fromJsonString(jsonString: string, options?: Partial): ServerToAgentCommand; - - static equals(a: ServerToAgentCommand | PlainMessage | undefined, b: ServerToAgentCommand | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.AgentDescription - */ -export declare class AgentDescription extends Message { - /** - * Attributes that identify the Agent. - * Keys/values are according to OpenTelemetry semantic conventions, see: - * https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/resource/semantic_conventions - * - * For standalone running Agents (such as OpenTelemetry Collector) the following - * attributes SHOULD be specified: - * - service.name should be set to a reverse FQDN that uniquely identifies the - * Agent type, e.g. "io.opentelemetry.collector" - * - service.namespace if it is used in the environment where the Agent runs. - * - service.version should be set to version number of the Agent build. - * - service.instance.id should be set. It may be set equal to the Agent's - * instance uid (equal to ServerToAgent.instance_uid field) or any other value - * that uniquely identifies the Agent in combination with other attributes. - * - any other attributes that are necessary for uniquely identifying the Agent's - * own telemetry. - * - * The Agent SHOULD also include these attributes in the Resource of its own - * telemetry. The combination of identifying attributes SHOULD be sufficient to - * uniquely identify the Agent's own telemetry in the destination system to which - * the Agent sends its own telemetry. - * - * @generated from field: repeated opamp.proto.KeyValue identifying_attributes = 1; - */ - identifyingAttributes: KeyValue[]; - - /** - * Attributes that do not necessarily identify the Agent but help describe - * where it runs. - * The following attributes SHOULD be included: - * - os.type, os.version - to describe where the Agent runs. - * - host.* to describe the host the Agent runs on. - * - cloud.* to describe the cloud where the host is located. - * - any other relevant Resource attributes that describe this Agent and the - * environment it runs in. - * - any user-defined attributes that the end user would like to associate - * with this Agent. - * - * @generated from field: repeated opamp.proto.KeyValue non_identifying_attributes = 2; - */ - nonIdentifyingAttributes: KeyValue[]; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentDescription"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentDescription; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentDescription; - - static fromJsonString(jsonString: string, options?: Partial): AgentDescription; - - static equals(a: AgentDescription | PlainMessage | undefined, b: AgentDescription | PlainMessage | undefined): boolean; -} - -/** - * The health of the Agent and sub-components - * Status: [Beta] - * - * @generated from message opamp.proto.ComponentHealth - */ -export declare class ComponentHealth extends Message { - /** - * Set to true if the component is up and healthy. - * - * @generated from field: bool healthy = 1; - */ - healthy: boolean; - - /** - * Timestamp since the component is up, i.e. when the component was started. - * Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. - * If the component is not running MUST be set to 0. - * - * @generated from field: fixed64 start_time_unix_nano = 2; - */ - startTimeUnixNano: bigint; - - /** - * Human-readable error message if the component is in erroneous state. SHOULD be set - * when healthy==false. - * - * @generated from field: string last_error = 3; - */ - lastError: string; - - /** - * Component status represented as a string. The status values are defined by agent-specific - * semantics and not at the protocol level. - * - * @generated from field: string status = 4; - */ - status: string; - - /** - * The time when the component status was observed. Value is UNIX Epoch time in - * nanoseconds since 00:00:00 UTC on 1 January 1970. - * - * @generated from field: fixed64 status_time_unix_nano = 5; - */ - statusTimeUnixNano: bigint; - - /** - * A map to store more granular, sub-component health. It can nest as deeply as needed to - * describe the underlying system. - * - * @generated from field: map component_health_map = 6; - */ - componentHealthMap: { [key: string]: ComponentHealth }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.ComponentHealth"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): ComponentHealth; - - static fromJson(jsonValue: JsonValue, options?: Partial): ComponentHealth; - - static fromJsonString(jsonString: string, options?: Partial): ComponentHealth; - - static equals(a: ComponentHealth | PlainMessage | undefined, b: ComponentHealth | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.EffectiveConfig - */ -export declare class EffectiveConfig extends Message { - /** - * The effective config of the Agent. - * - * @generated from field: opamp.proto.AgentConfigMap config_map = 1; - */ - configMap?: AgentConfigMap; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.EffectiveConfig"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): EffectiveConfig; - - static fromJson(jsonValue: JsonValue, options?: Partial): EffectiveConfig; - - static fromJsonString(jsonString: string, options?: Partial): EffectiveConfig; - - static equals(a: EffectiveConfig | PlainMessage | undefined, b: EffectiveConfig | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.RemoteConfigStatus - */ -export declare class RemoteConfigStatus extends Message { - /** - * The hash of the remote config that was last received by this Agent in the - * AgentRemoteConfig.config_hash field. - * The Server SHOULD compare this hash with the config hash - * it has for the Agent and if the hashes are different the Server MUST include - * the remote_config field in the response in the ServerToAgent message. - * - * @generated from field: bytes last_remote_config_hash = 1; - */ - lastRemoteConfigHash: Uint8Array; - - /** - * @generated from field: opamp.proto.RemoteConfigStatuses status = 2; - */ - status: RemoteConfigStatuses; - - /** - * Optional error message if status==FAILED. - * - * @generated from field: string error_message = 3; - */ - errorMessage: string; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.RemoteConfigStatus"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): RemoteConfigStatus; - - static fromJson(jsonValue: JsonValue, options?: Partial): RemoteConfigStatus; - - static fromJsonString(jsonString: string, options?: Partial): RemoteConfigStatus; - - static equals(a: RemoteConfigStatus | PlainMessage | undefined, b: RemoteConfigStatus | PlainMessage | undefined): boolean; -} - -/** - * The PackageStatuses message describes the status of all packages that the Agent - * has or was offered. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageStatuses - */ -export declare class PackageStatuses extends Message { - /** - * A map of PackageStatus messages, where the keys are package names. - * The key MUST match the name field of PackageStatus message. - * - * @generated from field: map packages = 1; - */ - packages: { [key: string]: PackageStatus }; - - /** - * The aggregate hash of all packages that this Agent previously received from the - * Server via PackagesAvailable message. - * - * The Server SHOULD compare this hash to the aggregate hash of all packages that - * it has for this Agent and if the hashes are different the Server SHOULD send - * an PackagesAvailable message to the Agent. - * - * @generated from field: bytes server_provided_all_packages_hash = 2; - */ - serverProvidedAllPackagesHash: Uint8Array; - - /** - * This field is set if the Agent encountered an error when processing the - * PackagesAvailable message and that error is not related to any particular single - * package. - * The field must be unset is there were no processing errors. - * - * @generated from field: string error_message = 3; - */ - errorMessage: string; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.PackageStatuses"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): PackageStatuses; - - static fromJson(jsonValue: JsonValue, options?: Partial): PackageStatuses; - - static fromJsonString(jsonString: string, options?: Partial): PackageStatuses; - - static equals(a: PackageStatuses | PlainMessage | undefined, b: PackageStatuses | PlainMessage | undefined): boolean; -} - -/** - * The status of a single package. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageStatus - */ -export declare class PackageStatus extends Message { - /** - * Package name. MUST be always set and MUST match the key in the packages field - * of PackageStatuses message. - * - * @generated from field: string name = 1; - */ - name: string; - - /** - * The version of the package that the Agent has. - * MUST be set if the Agent has this package. - * MUST be empty if the Agent does not have this package. This may be the case - * for example if the package was offered by the Server but failed to install - * and the Agent did not have this package previously. - * - * @generated from field: string agent_has_version = 2; - */ - agentHasVersion: string; - - /** - * The hash of the package that the Agent has. - * MUST be set if the Agent has this package. - * MUST be empty if the Agent does not have this package. This may be the case for - * example if the package was offered by the Server but failed to install and the - * Agent did not have this package previously. - * - * @generated from field: bytes agent_has_hash = 3; - */ - agentHasHash: Uint8Array; - - /** - * The version of the package that the Server offered to the Agent. - * MUST be set if the installation of the package is initiated by an earlier offer - * from the Server to install this package. - * - * MUST be empty if the Agent has this package but it was installed locally and - * was not offered by the Server. - * - * Note that it is possible for both agent_has_version and server_offered_version - * fields to be set and to have different values. This is for example possible if - * the Agent already has a version of the package successfully installed, the Server - * offers a different version, but the Agent fails to install that version. - * - * @generated from field: string server_offered_version = 4; - */ - serverOfferedVersion: string; - - /** - * The hash of the package that the Server offered to the Agent. - * MUST be set if the installation of the package is initiated by an earlier - * offer from the Server to install this package. - * - * MUST be empty if the Agent has this package but it was installed locally and - * was not offered by the Server. - * - * Note that it is possible for both agent_has_hash and server_offered_hash - * fields to be set and to have different values. This is for example possible if - * the Agent already has a version of the package successfully installed, the - * Server offers a different version, but the Agent fails to install that version. - * - * @generated from field: bytes server_offered_hash = 5; - */ - serverOfferedHash: Uint8Array; - - /** - * @generated from field: opamp.proto.PackageStatusEnum status = 6; - */ - status: PackageStatusEnum; - - /** - * Error message if the status is erroneous. - * - * @generated from field: string error_message = 7; - */ - errorMessage: string; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.PackageStatus"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): PackageStatus; - - static fromJson(jsonValue: JsonValue, options?: Partial): PackageStatus; - - static fromJsonString(jsonString: string, options?: Partial): PackageStatus; - - static equals(a: PackageStatus | PlainMessage | undefined, b: PackageStatus | PlainMessage | undefined): boolean; -} - -/** - * Properties related to identification of the Agent, which can be overridden - * by the Server if needed - * - * @generated from message opamp.proto.AgentIdentification - */ -export declare class AgentIdentification extends Message { - /** - * When new_instance_uid is set, Agent MUST update instance_uid - * to the value provided and use it for all further communication. - * MUST be 16 bytes long and SHOULD be generated using the UUID v7 spec. - * - * @generated from field: bytes new_instance_uid = 1; - */ - newInstanceUid: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentIdentification"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentIdentification; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentIdentification; - - static fromJsonString(jsonString: string, options?: Partial): AgentIdentification; - - static equals(a: AgentIdentification | PlainMessage | undefined, b: AgentIdentification | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.AgentRemoteConfig - */ -export declare class AgentRemoteConfig extends Message { - /** - * Agent config offered by the management Server to the Agent instance. SHOULD NOT be - * set if the config for this Agent has not changed since it was last requested (i.e. - * AgentConfigRequest.last_remote_config_hash field is equal to - * AgentConfigResponse.config_hash field). - * - * @generated from field: opamp.proto.AgentConfigMap config = 1; - */ - config?: AgentConfigMap; - - /** - * Hash of "config". The Agent SHOULD include this value in subsequent - * RemoteConfigStatus messages in the last_remote_config_hash field. This in turn - * allows the management Server to identify that a new config is available for the Agent. - * - * This field MUST be always set if the management Server supports remote configuration - * of agents. - * - * Management Server must choose a hashing function that guarantees lack of hash - * collisions in practice. - * - * @generated from field: bytes config_hash = 2; - */ - configHash: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentRemoteConfig"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentRemoteConfig; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentRemoteConfig; - - static fromJsonString(jsonString: string, options?: Partial): AgentRemoteConfig; - - static equals(a: AgentRemoteConfig | PlainMessage | undefined, b: AgentRemoteConfig | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.AgentConfigMap - */ -export declare class AgentConfigMap extends Message { - /** - * Map of configs. Keys are config file names or config section names. - * The configuration is assumed to be a collection of one or more named config files - * or sections. - * For agents that use a single config file or section the map SHOULD contain a single - * entry and the key may be an empty string. - * - * @generated from field: map config_map = 1; - */ - configMap: { [key: string]: AgentConfigFile }; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentConfigMap"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentConfigMap; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentConfigMap; - - static fromJsonString(jsonString: string, options?: Partial): AgentConfigMap; - - static equals(a: AgentConfigMap | PlainMessage | undefined, b: AgentConfigMap | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.AgentConfigFile - */ -export declare class AgentConfigFile extends Message { - /** - * Config file or section body. The content, format and encoding depends on the Agent - * type. The content_type field may optionally describe the MIME type of the body. - * - * @generated from field: bytes body = 1; - */ - body: Uint8Array; - - /** - * Optional MIME Content-Type that describes what's in the body field, for - * example "text/yaml". - * - * @generated from field: string content_type = 2; - */ - contentType: string; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.AgentConfigFile"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): AgentConfigFile; - - static fromJson(jsonValue: JsonValue, options?: Partial): AgentConfigFile; - - static fromJsonString(jsonString: string, options?: Partial): AgentConfigFile; - - static equals(a: AgentConfigFile | PlainMessage | undefined, b: AgentConfigFile | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.CustomCapabilities - */ -export declare class CustomCapabilities extends Message { - /** - * A list of custom capabilities that are supported. Each capability is a reverse FQDN - * with optional version information that uniquely identifies the custom capability - * and should match a capability specified in a supported CustomMessage. - * Status: [Development] - * - * @generated from field: repeated string capabilities = 1; - */ - capabilities: string[]; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.CustomCapabilities"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): CustomCapabilities; - - static fromJson(jsonValue: JsonValue, options?: Partial): CustomCapabilities; - - static fromJsonString(jsonString: string, options?: Partial): CustomCapabilities; - - static equals(a: CustomCapabilities | PlainMessage | undefined, b: CustomCapabilities | PlainMessage | undefined): boolean; -} - -/** - * @generated from message opamp.proto.CustomMessage - */ -export declare class CustomMessage extends Message { - /** - * A reverse FQDN that uniquely identifies the capability and matches one of the - * capabilities in the CustomCapabilities message. - * Status: [Development] - * - * @generated from field: string capability = 1; - */ - capability: string; - - /** - * Type of message within the capability. The capability defines the types of custom - * messages that are used to implement the capability. The type must only be unique - * within the capability. - * Status: [Development] - * - * @generated from field: string type = 2; - */ - type: string; - - /** - * Binary data of the message. The capability must specify the format of the contents - * of the data for each custom message type it defines. - * Status: [Development] - * - * @generated from field: bytes data = 3; - */ - data: Uint8Array; - - constructor(data?: PartialMessage); - - static readonly runtime: typeof proto3; - static readonly typeName = "opamp.proto.CustomMessage"; - static readonly fields: FieldList; - - static fromBinary(bytes: Uint8Array, options?: Partial): CustomMessage; - - static fromJson(jsonValue: JsonValue, options?: Partial): CustomMessage; - - static fromJsonString(jsonString: string, options?: Partial): CustomMessage; - - static equals(a: CustomMessage | PlainMessage | undefined, b: CustomMessage | PlainMessage | undefined): boolean; -} - diff --git a/agents/nodejs/src/opamp/generated/opamp_pb.js b/agents/nodejs/src/opamp/generated/opamp_pb.js deleted file mode 100644 index d7dd44a19..000000000 --- a/agents/nodejs/src/opamp/generated/opamp_pb.js +++ /dev/null @@ -1,636 +0,0 @@ -// Copyright 2021, OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// OpAMP: Open Agent Management Protocol (https://github.com/open-telemetry/opamp-spec) - -// @generated by protoc-gen-es v1.9.0 -// @generated from file opamp.proto (package opamp.proto, syntax proto3) -/* eslint-disable */ -// @ts-nocheck - -import { proto3 } from "@bufbuild/protobuf"; -import { KeyValue } from "./anyvalue_pb.js"; - -/** - * @generated from enum opamp.proto.AgentToServerFlags - */ -export const AgentToServerFlags = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.AgentToServerFlags", - [ - {no: 0, name: "AgentToServerFlags_Unspecified"}, - {no: 1, name: "AgentToServerFlags_RequestInstanceUid"}, - ], -); - -/** - * @generated from enum opamp.proto.ServerToAgentFlags - */ -export const ServerToAgentFlags = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.ServerToAgentFlags", - [ - {no: 0, name: "ServerToAgentFlags_Unspecified"}, - {no: 1, name: "ServerToAgentFlags_ReportFullState"}, - ], -); - -/** - * @generated from enum opamp.proto.ServerCapabilities - */ -export const ServerCapabilities = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.ServerCapabilities", - [ - {no: 0, name: "ServerCapabilities_Unspecified"}, - {no: 1, name: "ServerCapabilities_AcceptsStatus"}, - {no: 2, name: "ServerCapabilities_OffersRemoteConfig"}, - {no: 4, name: "ServerCapabilities_AcceptsEffectiveConfig"}, - {no: 8, name: "ServerCapabilities_OffersPackages"}, - {no: 16, name: "ServerCapabilities_AcceptsPackagesStatus"}, - {no: 32, name: "ServerCapabilities_OffersConnectionSettings"}, - {no: 64, name: "ServerCapabilities_AcceptsConnectionSettingsRequest"}, - ], -); - -/** - * The type of the package, either an addon or a top-level package. - * Status: [Beta] - * - * @generated from enum opamp.proto.PackageType - */ -export const PackageType = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.PackageType", - [ - {no: 0, name: "PackageType_TopLevel"}, - {no: 1, name: "PackageType_Addon"}, - ], -); - -/** - * @generated from enum opamp.proto.ServerErrorResponseType - */ -export const ServerErrorResponseType = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.ServerErrorResponseType", - [ - {no: 0, name: "ServerErrorResponseType_Unknown"}, - {no: 1, name: "ServerErrorResponseType_BadRequest"}, - {no: 2, name: "ServerErrorResponseType_Unavailable"}, - ], -); - -/** - * Status: [Beta] - * - * @generated from enum opamp.proto.CommandType - */ -export const CommandType = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.CommandType", - [ - {no: 0, name: "CommandType_Restart"}, - ], -); - -/** - * @generated from enum opamp.proto.AgentCapabilities - */ -export const AgentCapabilities = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.AgentCapabilities", - [ - {no: 0, name: "AgentCapabilities_Unspecified"}, - {no: 1, name: "AgentCapabilities_ReportsStatus"}, - {no: 2, name: "AgentCapabilities_AcceptsRemoteConfig"}, - {no: 4, name: "AgentCapabilities_ReportsEffectiveConfig"}, - {no: 8, name: "AgentCapabilities_AcceptsPackages"}, - {no: 16, name: "AgentCapabilities_ReportsPackageStatuses"}, - {no: 32, name: "AgentCapabilities_ReportsOwnTraces"}, - {no: 64, name: "AgentCapabilities_ReportsOwnMetrics"}, - {no: 128, name: "AgentCapabilities_ReportsOwnLogs"}, - {no: 256, name: "AgentCapabilities_AcceptsOpAMPConnectionSettings"}, - {no: 512, name: "AgentCapabilities_AcceptsOtherConnectionSettings"}, - {no: 1024, name: "AgentCapabilities_AcceptsRestartCommand"}, - {no: 2048, name: "AgentCapabilities_ReportsHealth"}, - {no: 4096, name: "AgentCapabilities_ReportsRemoteConfig"}, - ], -); - -/** - * @generated from enum opamp.proto.RemoteConfigStatuses - */ -export const RemoteConfigStatuses = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.RemoteConfigStatuses", - [ - {no: 0, name: "RemoteConfigStatuses_UNSET"}, - {no: 1, name: "RemoteConfigStatuses_APPLIED"}, - {no: 2, name: "RemoteConfigStatuses_APPLYING"}, - {no: 3, name: "RemoteConfigStatuses_FAILED"}, - ], -); - -/** - * The status of this package. - * Status: [Beta] - * - * @generated from enum opamp.proto.PackageStatusEnum - */ -export const PackageStatusEnum = /*@__PURE__*/ proto3.makeEnum( - "opamp.proto.PackageStatusEnum", - [ - {no: 0, name: "PackageStatusEnum_Installed"}, - {no: 1, name: "PackageStatusEnum_InstallPending"}, - {no: 2, name: "PackageStatusEnum_Installing"}, - {no: 3, name: "PackageStatusEnum_InstallFailed"}, - ], -); - -/** - * @generated from message opamp.proto.AgentToServer - */ -export const AgentToServer = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentToServer", - () => [ - { no: 1, name: "instance_uid", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "sequence_num", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - { no: 3, name: "agent_description", kind: "message", T: AgentDescription }, - { no: 4, name: "capabilities", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - { no: 5, name: "health", kind: "message", T: ComponentHealth }, - { no: 6, name: "effective_config", kind: "message", T: EffectiveConfig }, - { no: 7, name: "remote_config_status", kind: "message", T: RemoteConfigStatus }, - { no: 8, name: "package_statuses", kind: "message", T: PackageStatuses }, - { no: 9, name: "agent_disconnect", kind: "message", T: AgentDisconnect }, - { no: 10, name: "flags", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - { no: 11, name: "connection_settings_request", kind: "message", T: ConnectionSettingsRequest }, - { no: 12, name: "custom_capabilities", kind: "message", T: CustomCapabilities }, - { no: 13, name: "custom_message", kind: "message", T: CustomMessage }, - ], -); - -/** - * AgentDisconnect is the last message sent from the Agent to the Server. The Server - * SHOULD forget the association of the Agent instance with the message stream. - * - * If the message stream is closed in the transport layer then the Server SHOULD - * forget association of all Agent instances that were previously established for - * this message stream using AgentConnect message, even if the corresponding - * AgentDisconnect message were not explicitly received from the Agent. - * - * @generated from message opamp.proto.AgentDisconnect - */ -export const AgentDisconnect = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentDisconnect", - [], -); - -/** - * ConnectionSettingsRequest is a request from the Agent to the Server to create - * and respond with an offer of connection settings for the Agent. - * Status: [Development] - * - * @generated from message opamp.proto.ConnectionSettingsRequest - */ -export const ConnectionSettingsRequest = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ConnectionSettingsRequest", - () => [ - { no: 1, name: "opamp", kind: "message", T: OpAMPConnectionSettingsRequest }, - ], -); - -/** - * OpAMPConnectionSettingsRequest is a request for the Server to produce - * a OpAMPConnectionSettings in its response. - * Status: [Development] - * - * @generated from message opamp.proto.OpAMPConnectionSettingsRequest - */ -export const OpAMPConnectionSettingsRequest = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.OpAMPConnectionSettingsRequest", - () => [ - { no: 1, name: "certificate_request", kind: "message", T: CertificateRequest }, - ], -); - -/** - * Status: [Development] - * - * @generated from message opamp.proto.CertificateRequest - */ -export const CertificateRequest = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.CertificateRequest", - () => [ - { no: 1, name: "csr", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * @generated from message opamp.proto.ServerToAgent - */ -export const ServerToAgent = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ServerToAgent", - () => [ - { no: 1, name: "instance_uid", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "error_response", kind: "message", T: ServerErrorResponse }, - { no: 3, name: "remote_config", kind: "message", T: AgentRemoteConfig }, - { no: 4, name: "connection_settings", kind: "message", T: ConnectionSettingsOffers }, - { no: 5, name: "packages_available", kind: "message", T: PackagesAvailable }, - { no: 6, name: "flags", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - { no: 7, name: "capabilities", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - { no: 8, name: "agent_identification", kind: "message", T: AgentIdentification }, - { no: 9, name: "command", kind: "message", T: ServerToAgentCommand }, - { no: 10, name: "custom_capabilities", kind: "message", T: CustomCapabilities }, - { no: 11, name: "custom_message", kind: "message", T: CustomMessage }, - ], -); - -/** - * The OpAMPConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for OpAMP - * connection. - * Status: [Beta] - * - * @generated from message opamp.proto.OpAMPConnectionSettings - */ -export const OpAMPConnectionSettings = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.OpAMPConnectionSettings", - () => [ - { no: 1, name: "destination_endpoint", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "headers", kind: "message", T: Headers }, - { no: 3, name: "certificate", kind: "message", T: TLSCertificate }, - ], -); - -/** - * The TelemetryConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for a network - * connection to report own telemetry. - * Status: [Beta] - * - * @generated from message opamp.proto.TelemetryConnectionSettings - */ -export const TelemetryConnectionSettings = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.TelemetryConnectionSettings", - () => [ - { no: 1, name: "destination_endpoint", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "headers", kind: "message", T: Headers }, - { no: 3, name: "certificate", kind: "message", T: TLSCertificate }, - ], -); - -/** - * The OtherConnectionSettings message is a collection of fields which comprise an - * offer from the Server to the Agent to use the specified settings for a network - * connection. It is not required that all fields in this message are specified. - * The Server may specify only some of the fields, in which case it means that - * the Server offers the Agent to change only those fields, while keeping the - * rest of the fields unchanged. - * - * For example the Server may send a ConnectionSettings message with only the - * certificate field set, while all other fields are unset. This means that - * the Server wants the Agent to use a new certificate and continue sending to - * the destination it is currently sending using the current header and other - * settings. - * - * For fields which reference other messages the field is considered unset - * when the reference is unset. - * - * For primitive field (string) we rely on the "flags" to describe that the - * field is not set (this is done to overcome the limitation of old protoc - * compilers don't generate methods that allow to check for the presence of - * the field. - * Status: [Beta] - * - * @generated from message opamp.proto.OtherConnectionSettings - */ -export const OtherConnectionSettings = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.OtherConnectionSettings", - () => [ - { no: 1, name: "destination_endpoint", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "headers", kind: "message", T: Headers }, - { no: 3, name: "certificate", kind: "message", T: TLSCertificate }, - { no: 4, name: "other_settings", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} }, - ], -); - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.Headers - */ -export const Headers = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.Headers", - () => [ - { no: 1, name: "headers", kind: "message", T: Header, repeated: true }, - ], -); - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.Header - */ -export const Header = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.Header", - () => [ - { no: 1, name: "key", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "value", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - ], -); - -/** - * Status: [Beta] - * - * The (public_key,private_key) certificate pair should be issued and - * signed by a Certificate Authority that the destination Server recognizes. - * - * It is highly recommended that the private key of the CA certificate is NOT - * stored on the destination Server otherwise compromising the Server will allow - * a malicious actor to issue valid Server certificates which will be automatically - * trusted by all agents and will allow the actor to trivially MITM Agent-to-Server - * traffic of all servers that use this CA certificate for their Server-side - * certificates. - * - * Alternatively the certificate may be self-signed, assuming the Server can - * verify the certificate. - * - * @generated from message opamp.proto.TLSCertificate - */ -export const TLSCertificate = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.TLSCertificate", - () => [ - { no: 1, name: "public_key", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "private_key", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 3, name: "ca_public_key", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.ConnectionSettingsOffers - */ -export const ConnectionSettingsOffers = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ConnectionSettingsOffers", - () => [ - { no: 1, name: "hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "opamp", kind: "message", T: OpAMPConnectionSettings }, - { no: 3, name: "own_metrics", kind: "message", T: TelemetryConnectionSettings }, - { no: 4, name: "own_traces", kind: "message", T: TelemetryConnectionSettings }, - { no: 5, name: "own_logs", kind: "message", T: TelemetryConnectionSettings }, - { no: 6, name: "other_connections", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "message", T: OtherConnectionSettings} }, - ], -); - -/** - * List of packages that the Server offers to the Agent. - * Status: [Beta] - * - * @generated from message opamp.proto.PackagesAvailable - */ -export const PackagesAvailable = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.PackagesAvailable", - () => [ - { no: 1, name: "packages", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "message", T: PackageAvailable} }, - { no: 2, name: "all_packages_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * Each Agent is composed of one or more packages. A package has a name and - * content stored in a file. The content of the files, functionality - * provided by the packages, how they are stored and used by the Agent side is Agent - * type-specific and is outside the concerns of the OpAMP protocol. - * - * If the Agent does not have an installed package with the specified name then - * it SHOULD download it from the specified URL and install it. - * - * If the Agent already has an installed package with the specified name - * but with a different hash then the Agent SHOULD download and - * install the package again, since it is a different version of the same package. - * - * If the Agent has an installed package with the specified name and the same - * hash then the Agent does not need to do anything, it already - * has the right version of the package. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageAvailable - */ -export const PackageAvailable = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.PackageAvailable", - () => [ - { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(PackageType) }, - { no: 2, name: "version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "file", kind: "message", T: DownloadableFile }, - { no: 4, name: "hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * Status: [Beta] - * - * @generated from message opamp.proto.DownloadableFile - */ -export const DownloadableFile = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.DownloadableFile", - () => [ - { no: 1, name: "download_url", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "content_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 3, name: "signature", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * @generated from message opamp.proto.ServerErrorResponse - */ -export const ServerErrorResponse = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ServerErrorResponse", - () => [ - { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(ServerErrorResponseType) }, - { no: 2, name: "error_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "retry_info", kind: "message", T: RetryInfo, oneof: "Details" }, - ], -); - -/** - * @generated from message opamp.proto.RetryInfo - */ -export const RetryInfo = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.RetryInfo", - () => [ - { no: 1, name: "retry_after_nanoseconds", kind: "scalar", T: 4 /* ScalarType.UINT64 */ }, - ], -); - -/** - * ServerToAgentCommand is sent from the Server to the Agent to request that the Agent - * perform a command. - * Status: [Beta] - * - * @generated from message opamp.proto.ServerToAgentCommand - */ -export const ServerToAgentCommand = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ServerToAgentCommand", - () => [ - { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(CommandType) }, - ], -); - -/** - * @generated from message opamp.proto.AgentDescription - */ -export const AgentDescription = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentDescription", - () => [ - { no: 1, name: "identifying_attributes", kind: "message", T: KeyValue, repeated: true }, - { no: 2, name: "non_identifying_attributes", kind: "message", T: KeyValue, repeated: true }, - ], -); - -/** - * The health of the Agent and sub-components - * Status: [Beta] - * - * @generated from message opamp.proto.ComponentHealth - */ -export const ComponentHealth = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.ComponentHealth", - () => [ - { no: 1, name: "healthy", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, - { no: 2, name: "start_time_unix_nano", kind: "scalar", T: 6 /* ScalarType.FIXED64 */ }, - { no: 3, name: "last_error", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 4, name: "status", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 5, name: "status_time_unix_nano", kind: "scalar", T: 6 /* ScalarType.FIXED64 */ }, - { no: 6, name: "component_health_map", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "message", T: ComponentHealth} }, - ], -); - -/** - * @generated from message opamp.proto.EffectiveConfig - */ -export const EffectiveConfig = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.EffectiveConfig", - () => [ - { no: 1, name: "config_map", kind: "message", T: AgentConfigMap }, - ], -); - -/** - * @generated from message opamp.proto.RemoteConfigStatus - */ -export const RemoteConfigStatus = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.RemoteConfigStatus", - () => [ - { no: 1, name: "last_remote_config_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "status", kind: "enum", T: proto3.getEnumType(RemoteConfigStatuses) }, - { no: 3, name: "error_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - ], -); - -/** - * The PackageStatuses message describes the status of all packages that the Agent - * has or was offered. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageStatuses - */ -export const PackageStatuses = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.PackageStatuses", - () => [ - { no: 1, name: "packages", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "message", T: PackageStatus} }, - { no: 2, name: "server_provided_all_packages_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 3, name: "error_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - ], -); - -/** - * The status of a single package. - * Status: [Beta] - * - * @generated from message opamp.proto.PackageStatus - */ -export const PackageStatus = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.PackageStatus", - () => [ - { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "agent_has_version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "agent_has_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 4, name: "server_offered_version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 5, name: "server_offered_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 6, name: "status", kind: "enum", T: proto3.getEnumType(PackageStatusEnum) }, - { no: 7, name: "error_message", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - ], -); - -/** - * Properties related to identification of the Agent, which can be overridden - * by the Server if needed - * - * @generated from message opamp.proto.AgentIdentification - */ -export const AgentIdentification = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentIdentification", - () => [ - { no: 1, name: "new_instance_uid", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * @generated from message opamp.proto.AgentRemoteConfig - */ -export const AgentRemoteConfig = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentRemoteConfig", - () => [ - { no: 1, name: "config", kind: "message", T: AgentConfigMap }, - { no: 2, name: "config_hash", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - -/** - * @generated from message opamp.proto.AgentConfigMap - */ -export const AgentConfigMap = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentConfigMap", - () => [ - { no: 1, name: "config_map", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "message", T: AgentConfigFile} }, - ], -); - -/** - * @generated from message opamp.proto.AgentConfigFile - */ -export const AgentConfigFile = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.AgentConfigFile", - () => [ - { no: 1, name: "body", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - { no: 2, name: "content_type", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - ], -); - -/** - * @generated from message opamp.proto.CustomCapabilities - */ -export const CustomCapabilities = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.CustomCapabilities", - () => [ - { no: 1, name: "capabilities", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, - ], -); - -/** - * @generated from message opamp.proto.CustomMessage - */ -export const CustomMessage = /*@__PURE__*/ proto3.makeMessageType( - "opamp.proto.CustomMessage", - () => [ - { no: 1, name: "capability", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 2, name: "type", kind: "scalar", T: 9 /* ScalarType.STRING */ }, - { no: 3, name: "data", kind: "scalar", T: 12 /* ScalarType.BYTES */ }, - ], -); - diff --git a/agents/nodejs/src/opamp/index.ts b/agents/nodejs/src/opamp/index.ts deleted file mode 100644 index f35a50d9c..000000000 --- a/agents/nodejs/src/opamp/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './client-http'; -export * from './types'; diff --git a/agents/nodejs/src/opamp/opamp-types.ts b/agents/nodejs/src/opamp/opamp-types.ts deleted file mode 100644 index 4a4974bb0..000000000 --- a/agents/nodejs/src/opamp/opamp-types.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { TraceSignalGeneralConfig } from "./types"; - -export interface ResourceAttributeFromServer { - key: string; - value: string; -} - -export interface OpAMPSdkConfiguration { - remoteResourceAttributes: ResourceAttributeFromServer[]; - traceSignal: TraceSignalGeneralConfig; -} diff --git a/agents/nodejs/src/opamp/remote-config.ts b/agents/nodejs/src/opamp/remote-config.ts deleted file mode 100644 index 141762df7..000000000 --- a/agents/nodejs/src/opamp/remote-config.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Resource } from "@opentelemetry/resources"; -import { AgentRemoteConfig } from "./generated/opamp_pb"; -import { InstrumentationLibraryConfiguration, RemoteConfig } from "./types"; -import { keyValuePairsToOtelAttributes } from "./utils"; -import { SEMRESATTRS_SERVICE_INSTANCE_ID } from "@opentelemetry/semantic-conventions"; -import { OpAMPSdkConfiguration } from "./opamp-types"; - -export const extractRemoteConfigFromResponse = ( - agentRemoteConfig: AgentRemoteConfig, - instanceUid: string -): RemoteConfig => { - const instrumentationLibrariesConfigSection = - agentRemoteConfig.config?.configMap["InstrumentationLibraries"]; - if ( - !instrumentationLibrariesConfigSection || - !instrumentationLibrariesConfigSection.body - ) { - throw new Error("missing instrumentation libraries remote config"); - } - const instrumentationLibrariesConfigBody = - instrumentationLibrariesConfigSection.body.toString(); - - let instrumentationLibrariesConfig: InstrumentationLibraryConfiguration[]; - try { - instrumentationLibrariesConfig = JSON.parse( - instrumentationLibrariesConfigBody - ) as InstrumentationLibraryConfiguration[]; - } catch (error) { - throw new Error("error parsing instrumentation libraries remote config"); - } - - const sdkConfigSection = agentRemoteConfig.config?.configMap["SDK"]; - if (!sdkConfigSection || !sdkConfigSection.body) { - throw new Error("missing SDK remote config"); - } - const sdkConfigBody = sdkConfigSection.body.toString(); - - let sdkConfig: OpAMPSdkConfiguration; - try { - sdkConfig = JSON.parse(sdkConfigBody) as OpAMPSdkConfiguration; - } catch (error) { - throw new Error("error parsing SDK remote config"); - } - - const remoteResource = new Resource( - keyValuePairsToOtelAttributes([ - ...sdkConfig.remoteResourceAttributes, - { - key: SEMRESATTRS_SERVICE_INSTANCE_ID, - value: instanceUid, - }, - ]) - ); - - return { - sdk: { - remoteResource, - traceSignal: sdkConfig.traceSignal, - }, - instrumentationLibraries: instrumentationLibrariesConfig, - }; -}; diff --git a/agents/nodejs/src/opamp/types.ts b/agents/nodejs/src/opamp/types.ts deleted file mode 100644 index 7b66fa7f5..000000000 --- a/agents/nodejs/src/opamp/types.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Attributes } from "@opentelemetry/api"; -import { Resource } from "@opentelemetry/resources"; -import { PackageStatus } from "./generated/opamp_pb"; -import { PartialMessage } from "@bufbuild/protobuf"; - -export interface OpAMPClientHttpConfig { - // instrumentedDeviceId, as allocated by the kubelet, - // and injected into the pod as an environment variable named ODIGOS_INSTRUMENTATION_DEVICE_ID - // This is the unique identifier for the device that is mounted to the container - instrumentationDeviceId: string; - opAMPServerHost: string; // the host + (optional) port of the OpAMP server to connect over http:// - pollingIntervalMs?: number; - - agentDescriptionIdentifyingAttributes?: Attributes; - agentDescriptionNonIdentifyingAttributes?: Attributes; - - initialPackageStatues: PartialMessage[]; - - onNewRemoteConfig: (remoteConfig: RemoteConfig) => void; -} - -// Sdk Remote Configuration - -export interface TraceSignalGeneralConfig { - enabled: boolean; // if enabled is false, the pipeline is not configured to receive spans - defaultEnabledValue: boolean; -} - -export interface SdkConfiguration { - remoteResource: Resource; // parse resource object - traceSignal: TraceSignalGeneralConfig; -} - -// InstrumentationLibrary Remote Configuration -export interface InstrumentationLibraryTracesConfiguration { - // if the value is set, use it, otherwise use the default value from the trace signal in the sdk level - enabled?: boolean; -} -export interface InstrumentationLibraryConfiguration { - name: string; - traces: InstrumentationLibraryTracesConfiguration; -} - -// All remote config fields - -export type RemoteConfig = { - sdk: SdkConfiguration; - instrumentationLibraries: InstrumentationLibraryConfiguration[]; -}; \ No newline at end of file diff --git a/agents/nodejs/src/opamp/utils.ts b/agents/nodejs/src/opamp/utils.ts deleted file mode 100644 index 244dcc82b..000000000 --- a/agents/nodejs/src/opamp/utils.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { AttributeValue, Attributes } from "@opentelemetry/api"; -import { AnyValue, KeyValue } from "./generated/anyvalue_pb"; -import { ResourceAttributeFromServer } from "./opamp-types"; - -const attributeValueToAnyValue = (value: AttributeValue | undefined): AnyValue => { - const anyValue = new AnyValue(); - if (typeof value === 'string') { - anyValue.value = { value: value, case: "stringValue" }; - } else if (typeof value === 'number') { - if (Number.isInteger(value)) { - anyValue.value = { value: BigInt(value), case: "intValue" }; - } else { - anyValue.value = { value, case: "doubleValue" }; - } - } else if (typeof value === 'boolean') { - anyValue.value = { value, case: "boolValue" }; - } else { - // TODO: support this one day - throw new Error(`Unsupported attribute value type: ${typeof value}`); - } - return anyValue; -} - -export const otelAttributesToKeyValuePairs = (attributes?: Attributes): KeyValue[] | undefined => { - if (!attributes) { - return undefined; - } - return Object.entries(attributes) - .filter(([_, value]) => value !== undefined) // Filter out attributes with undefined values - .map(([key, value]) => { - return new KeyValue({ - key, - value: attributeValueToAnyValue(value), - }); - }); -}; - -export const keyValuePairsToOtelAttributes = (keyValuePairs?: ResourceAttributeFromServer[]): Attributes => { - if (!keyValuePairs) { - return {}; - } - return keyValuePairs.reduce((acc, keyValue) => { - const value = keyValue.value; - if (value) { - acc[keyValue.key] = value; - } - return acc; - }, {} as Attributes); -}; \ No newline at end of file diff --git a/agents/nodejs/src/version.ts b/agents/nodejs/src/version.ts deleted file mode 100644 index 940b1bdd3..000000000 --- a/agents/nodejs/src/version.ts +++ /dev/null @@ -1,3 +0,0 @@ - -// the content of the file is replaced with the real version in the odiglet DOCKERFILE -export const VERSION = "development"; diff --git a/agents/nodejs/tsconfig.json b/agents/nodejs/tsconfig.json deleted file mode 100644 index d0b26cd28..000000000 --- a/agents/nodejs/tsconfig.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", /* Specify what module code is generated. */ - "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "build", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - }, - "include": ["src/**/*.ts", "src/**/*.js"], -} diff --git a/agents/nodejs/yarn.lock b/agents/nodejs/yarn.lock deleted file mode 100644 index 6ff2c477b..000000000 --- a/agents/nodejs/yarn.lock +++ /dev/null @@ -1,1524 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@bufbuild/protobuf@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.10.0.tgz#1a67ac889c2d464a3492b3e54c38f80517963b16" - integrity sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag== - -"@grpc/grpc-js@^1.7.1": - version "1.10.8" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.8.tgz#99787785cd8335be861afd1cd485ae9f058e4484" - integrity sha512-vYVqYzHicDqyKB+NQhAc54I1QWCBLCrYG6unqOIcBTHx+7x8C9lcoLj3KVJXs2VB4lUbpWY+Kk9NipcbXYWmvg== - dependencies: - "@grpc/proto-loader" "^0.7.13" - "@js-sdsl/ordered-map" "^4.4.2" - -"@grpc/proto-loader@^0.7.13": - version "0.7.13" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" - integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== - dependencies: - lodash.camelcase "^4.3.0" - long "^5.0.0" - protobufjs "^7.2.5" - yargs "^17.7.2" - -"@js-sdsl/ordered-map@^4.4.2": - version "4.4.2" - resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" - integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== - -"@opentelemetry/api-logs@0.51.1", "@opentelemetry/api-logs@^0.51.0": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.51.1.tgz#ded1874c04516c2b8cb24828eef3d6c3d1f75343" - integrity sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA== - dependencies: - "@opentelemetry/api" "^1.0.0" - -"@opentelemetry/api@1.8.0", "@opentelemetry/api@^1.0.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" - integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== - -"@opentelemetry/auto-instrumentations-node@0.46.1": - version "0.46.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.46.1.tgz#15d8e2db049f0cfdb10a84489c68581291443c20" - integrity sha512-s0CwmY9KYtPawOhV5YO2Gf62uVOQRNvT6Or8IZ0S4gr/kPVNhoMehTsQvqBwSWQfoFrkmW3KKOHiKJEp4dVGXg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/instrumentation-amqplib" "^0.37.0" - "@opentelemetry/instrumentation-aws-lambda" "^0.41.1" - "@opentelemetry/instrumentation-aws-sdk" "^0.41.0" - "@opentelemetry/instrumentation-bunyan" "^0.38.0" - "@opentelemetry/instrumentation-cassandra-driver" "^0.38.0" - "@opentelemetry/instrumentation-connect" "^0.36.1" - "@opentelemetry/instrumentation-cucumber" "^0.6.0" - "@opentelemetry/instrumentation-dataloader" "^0.9.0" - "@opentelemetry/instrumentation-dns" "^0.36.1" - "@opentelemetry/instrumentation-express" "^0.39.0" - "@opentelemetry/instrumentation-fastify" "^0.36.1" - "@opentelemetry/instrumentation-fs" "^0.12.0" - "@opentelemetry/instrumentation-generic-pool" "^0.36.0" - "@opentelemetry/instrumentation-graphql" "^0.40.0" - "@opentelemetry/instrumentation-grpc" "^0.51.0" - "@opentelemetry/instrumentation-hapi" "^0.38.0" - "@opentelemetry/instrumentation-http" "^0.51.0" - "@opentelemetry/instrumentation-ioredis" "^0.40.0" - "@opentelemetry/instrumentation-knex" "^0.36.1" - "@opentelemetry/instrumentation-koa" "^0.40.0" - "@opentelemetry/instrumentation-lru-memoizer" "^0.37.0" - "@opentelemetry/instrumentation-memcached" "^0.36.0" - "@opentelemetry/instrumentation-mongodb" "^0.43.0" - "@opentelemetry/instrumentation-mongoose" "^0.38.1" - "@opentelemetry/instrumentation-mysql" "^0.38.1" - "@opentelemetry/instrumentation-mysql2" "^0.38.1" - "@opentelemetry/instrumentation-nestjs-core" "^0.37.1" - "@opentelemetry/instrumentation-net" "^0.36.0" - "@opentelemetry/instrumentation-pg" "^0.41.0" - "@opentelemetry/instrumentation-pino" "^0.39.0" - "@opentelemetry/instrumentation-redis" "^0.39.1" - "@opentelemetry/instrumentation-redis-4" "^0.39.0" - "@opentelemetry/instrumentation-restify" "^0.38.0" - "@opentelemetry/instrumentation-router" "^0.37.0" - "@opentelemetry/instrumentation-socket.io" "^0.39.0" - "@opentelemetry/instrumentation-tedious" "^0.10.1" - "@opentelemetry/instrumentation-undici" "^0.2.0" - "@opentelemetry/instrumentation-winston" "^0.37.0" - "@opentelemetry/resource-detector-alibaba-cloud" "^0.28.9" - "@opentelemetry/resource-detector-aws" "^1.5.0" - "@opentelemetry/resource-detector-azure" "^0.2.6" - "@opentelemetry/resource-detector-container" "^0.3.9" - "@opentelemetry/resource-detector-gcp" "^0.29.9" - "@opentelemetry/resources" "^1.24.0" - "@opentelemetry/sdk-node" "^0.51.0" - -"@opentelemetry/context-async-hooks@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.24.1.tgz#1db7116d78f60e993e0d337bd497885a53deba1a" - integrity sha512-R5r6DO4kgEOVBxFXhXjwospLQkv+sYxwCfjvoZBe7Zm6KKXAV9kDSJhi/D1BweowdZmO+sdbENLs374gER8hpQ== - -"@opentelemetry/context-async-hooks@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.0.tgz#bc3dcb1302b34b0f56047dd0d0f56b33013f657f" - integrity sha512-sBW313mnMyFg0cp/40BRzrZBWG+581s2j5gIsa5fgGadswyILk4mNFATsqrCOpAx945RDuZ2B7ThQLgor9OpfA== - -"@opentelemetry/core@1.24.1", "@opentelemetry/core@^1.0.0", "@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.8.0": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.24.1.tgz#35ab9d2ac9ca938e0ffbdfa40c49c169ac8ba80d" - integrity sha512-wMSGfsdmibI88K9wB498zXY04yThPexo8jvwNNlm542HZB7XrrMRBbAyKJqG8qDRJwIBdBrPMi4V9ZPW/sqrcg== - dependencies: - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/core@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.25.0.tgz#ad034f5c2669f589bd703bfbbaa38b51f8504053" - integrity sha512-n0B3s8rrqGrasTgNkXLKXzN0fXo+6IYP7M5b7AMsrZM33f/y6DS6kJ0Btd7SespASWq8bgL3taLo0oe0vB52IQ== - dependencies: - "@opentelemetry/semantic-conventions" "1.25.0" - -"@opentelemetry/exporter-trace-otlp-grpc@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.51.1.tgz#f38ef867ec11d25880fa81d6b5cbd1edec7d75db" - integrity sha512-P9+Hkszih95ITvldGZ+kXvj9HpD1QfS+PwooyHK72GYA+Bgm+yUSAsDkUkDms8+s9HW6poxURv3LcjaMuBBpVQ== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.51.1" - "@opentelemetry/otlp-transformer" "0.51.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/exporter-trace-otlp-http@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.51.1.tgz#10c4706ed0c216e98411e5aa90c88a5c710d56c6" - integrity sha512-n+LhLPsX07URh+HhV2SHVSvz1t4G/l/CE5BjpmhAPqeTceFac1VpyQkavWEJbvnK5bUEXijWt4LxAxFpt2fXyw== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-exporter-base" "0.51.1" - "@opentelemetry/otlp-transformer" "0.51.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/exporter-trace-otlp-proto@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.51.1.tgz#f087eb752ebdb0392d5cae9a97f4245aaea2b38a" - integrity sha512-SE9f0/6V6EeXC9i+WA4WFjS1EYgaBCpAnI5+lxWvZ7iO7EU1IvHvZhP6Kojr0nLldo83gqg6G7OWFqsID3uF+w== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-exporter-base" "0.51.1" - "@opentelemetry/otlp-proto-exporter-base" "0.51.1" - "@opentelemetry/otlp-transformer" "0.51.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/exporter-zipkin@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.24.1.tgz#fc0173dca3c50ffe0d7b754d9bf8b35f6d2700c4" - integrity sha512-+Rl/VFmu2n6eaRMnVbyfZx1DqR/1KNyWebYuHyQBZaEAVIn/ZLgmofRpXN1X2nhJ4BNaptQUNxAstCYYz6dKoQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/instrumentation-amqplib@^0.37.0": - version "0.37.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.37.0.tgz#90a3df5188d6cb52e1575fba59d9aaf52dd5b6f1" - integrity sha512-XjOHeAOreh0XX4jlzTTUWWqu1dIGvMWM8yvd43JJdRMAmTZisezjKsxLjMEMIvF0PzQdoXwh9DiS9nYE4/QmpA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-aws-lambda@^0.41.1": - version "0.41.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.41.1.tgz#dc40aefa4e697be5cf411be6f71c16ba4121beda" - integrity sha512-/BLG+0DQr2tCILFGJKJH2Fg6eyjhqOlVflYpNddUEXnzyQ/PAhTdgirkqbICFgeSW2XYcEY9zXpuRldrVNw9cA== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/propagator-aws-xray" "^1.3.1" - "@opentelemetry/resources" "^1.8.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/aws-lambda" "8.10.122" - -"@opentelemetry/instrumentation-aws-sdk@^0.41.0": - version "0.41.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.41.0.tgz#08f0cccfaedb6cffda2e3f10e2a658df8d6129ea" - integrity sha512-7+8WMY0LQeqv6KIObXK+Py44qNFLeCU0ZLLxSZtXEbZ2wJlQISP1St65jRto0NV7isnZoyuOxb2+ZpypPPNv7Q== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/propagation-utils" "^0.30.9" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-bunyan@^0.38.0": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.38.0.tgz#306e956aab77bc8771fb5214d1dbc0c2d4f13ec2" - integrity sha512-ThNcgTE22W7PKzTzz5qfGxb5Gf7rA3EORousYo2nJWHHcF6gqiMNv2+GXY3MdpjLBr8IgCfhtvbQdD6rlIPUpA== - dependencies: - "@opentelemetry/api-logs" "^0.51.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@types/bunyan" "1.8.9" - -"@opentelemetry/instrumentation-cassandra-driver@^0.38.0": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.38.0.tgz#c709db8eb6a2898c6d9cc69405810506ab7e414a" - integrity sha512-ML4Vw0it2uIpETfX6skuSIGLHF9D3TUKOfdfrk9lnrzzWSzg2aS6pl3UeepkQX4wXHdzlxVRB0USrUqsmxMd5Q== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-connect@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.36.1.tgz#4ef93ade4c7224213d9e4411190c22d753166a18" - integrity sha512-xI5Q/CMmzBmHshPnzzjD19ptFaYO/rQWzokpNio4QixZYWhJsa35QgRvN9FhPkwgtuJIbt/CWWAufJ3egJNHEA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/connect" "3.4.36" - -"@opentelemetry/instrumentation-cucumber@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.6.0.tgz#270731825d556fcb374226d81f6d525aacee2c60" - integrity sha512-90eAF2JPSbPAsOuGfYyctYaoYXqy4Clbxt0j/uUgg6dto4oqwUw3AvTyHQEztLGxeXwEzC1EQigDtVPg5ZexYA== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-dataloader@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.9.0.tgz#0ec95ec46ad5351a3f208d87b925a8373bd8b128" - integrity sha512-fiyCOAw+tlbneok1x7P5UseoGW5nS60CWWx7NXzYW+WOexpSmDQQW7olttGa8fqE6/sVCoi1l+QdfVoETZi/NQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-dns@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.36.1.tgz#db764037ce8bcec450b8a2802cd6458ad4e2e7c4" - integrity sha512-NWRbQ7q0E3co/CNTWLZZvUzZoKhB1iTitY282IM8HDTXkA6VRssCfOcvaHw5ezOh23TJbAeYxmmpVj4hFvDPYQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - semver "^7.5.4" - -"@opentelemetry/instrumentation-express@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.39.0.tgz#2e7452645431c24b7a878a7919ce6dbc215f9def" - integrity sha512-AG8U7z7D0JcBu/7dDcwb47UMEzj9/FMiJV2iQZqrsZnxR3FjB9J9oIH2iszJYci2eUdp2WbdvtpD9RV/zmME5A== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-fastify@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.36.1.tgz#e814f2fcce22bdc1fd96928ac45a8f9dd751bdd5" - integrity sha512-3Nfm43PI0I+3EX+1YbSy6xbDu276R1Dh1tqAk68yd4yirnIh52Kd5B+nJ8CgHA7o3UKakpBjj6vSzi5vNCzJIA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-fs@^0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.12.0.tgz#474377524db8b482edf33499c7fc749726d3aa3e" - integrity sha512-Waf+2hekJRxIwq1PmivxOWLdMOtYbY22hKr34gEtfbv2CArSv8FBJH4BmQxB9o5ZcwkdKu589qs009dbuSfNmQ== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-generic-pool@^0.36.0": - version "0.36.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.36.0.tgz#b7a270219dd0f5bdaca3f990ed8f0c98980a5670" - integrity sha512-CExAEqJvK8jYxrhN8cl6EaGg57EGJi+qsSKouLC5lndXi68gZLOKbZIMZg4pF0kNfp/D4BFaGmA6Ap7d5WoPTw== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-graphql@^0.40.0": - version "0.40.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.40.0.tgz#111e035070f40f5d73f2289df0f38e56a0fbc999" - integrity sha512-LVRdEHWACWOczv2imD+mhUrLMxsEjPPi32vIZJT57zygR5aUiA4em8X3aiGOCycgbMWkIu8xOSGSxdx3JmzN+w== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-grpc@^0.51.0": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.51.1.tgz#33c63b6c18a23ab5c1d851a75d89258948f117bd" - integrity sha512-coRTugFL7De/VNH/1NqPlxnfik87jS+jBXsny+Y/lMhXIA3x8t71IyL9ihuewkD+lNtIxIz6Y7Sq6kPuOqz5dQ== - dependencies: - "@opentelemetry/instrumentation" "0.51.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/instrumentation-hapi@^0.38.0": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.38.0.tgz#2913263248c190638aaed921b1f272af0b830a2b" - integrity sha512-ZcOqEuwuutTDYIjhDIStix22ECblG/i9pHje23QGs4Q4YS4RMaZ5hKCoQJxW88Z4K7T53rQkdISmoXFKDV8xMg== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-http@^0.51.0": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.51.1.tgz#c450f01af42e44cfd1302a527dc391f09e8364c0" - integrity sha512-6b3nZnFFEz/3xZ6w8bVxctPUWIPWiXuPQ725530JgxnN1cvYFd8CJ75PrHZNjynmzSSnqBkN3ef4R9N+RpMh8Q== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/instrumentation" "0.51.1" - "@opentelemetry/semantic-conventions" "1.24.1" - semver "^7.5.2" - -"@opentelemetry/instrumentation-ioredis@^0.40.0": - version "0.40.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.40.0.tgz#3a747dc44c6244d7f4c8cc98a6b75b9856241eaf" - integrity sha512-Jv/fH7KhpWe4KBirsiqeUJIYrsdR2iu2l4nWhfOlRvaZ+zYIiLEzTQR6QhBbyRoAbU4OuYJzjWusOmmpGBnwng== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/redis-common" "^0.36.2" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-knex@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.36.1.tgz#4c7de53bd63b081e473a44359edde33ed39c84af" - integrity sha512-6bEuiI+yMf3D0+ZWZE2AKmXhIhBvZ0brdO/0A8lUqeqeS+sS4fTcjA1F2CclsCNxYWEgcs8o3QyQqPceBeVRlg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-koa@^0.40.0": - version "0.40.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.40.0.tgz#c83ea7bb63836776282629c889ba8b77113b528c" - integrity sha512-dJc3H/bKMcgUYcQpLF+1IbmUKus0e5Fnn/+ru/3voIRHwMADT3rFSUcGLWSczkg68BCgz0vFWGDTvPtcWIFr7A== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/koa" "2.14.0" - "@types/koa__router" "12.0.3" - -"@opentelemetry/instrumentation-lru-memoizer@^0.37.0": - version "0.37.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.37.0.tgz#b8c67465ad0f593324e79991bbe17aae898bd37d" - integrity sha512-dHLrn55qVWsHJQYdForPWPUWDk2HZ2jjzkT+WoQSqpYT1j4HxfoiLfBTF+I3EbEYFAJnDRmRAUfA6nU5GPdCLQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-memcached@^0.36.0": - version "0.36.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.36.0.tgz#348545e581a847c645d2aa235fbe1cf2290f3ab8" - integrity sha512-5efkT8ZfN8il5z+yfKYFGm2YR3mhlhaJoGfNOAylKE/6tUH3WDTTWaP7nrURtWGc+fuvDktcEch18Se8qsGS7w== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/memcached" "^2.2.6" - -"@opentelemetry/instrumentation-mongodb@^0.43.0": - version "0.43.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.43.0.tgz#b1c53f18ec55058a817571ea9f0c85017ddd9bc6" - integrity sha512-bMKej7Y76QVUD3l55Q9YqizXybHUzF3pujsBFjqbZrRn2WYqtsDtTUlbCK7fvXNPwFInqZ2KhnTqd0gwo8MzaQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/sdk-metrics" "^1.9.1" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-mongoose@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.38.1.tgz#e2e56423431dfb57ebc10b9a93897f827f1750b0" - integrity sha512-zaeiasdnRjXe6VhYCBMdkmAVh1S5MmXC/0spet+yqoaViGnYst/DOxPvhwg3yT4Yag5crZNWsVXnA538UjP6Ow== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-mysql2@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.38.1.tgz#42093bba3c4424ebd5487a01a12e5526c8ea4da8" - integrity sha512-qkpHMgWSDTYVB1vlZ9sspf7l2wdS5DDq/rbIepDwX5BA0N0068JTQqh0CgAh34tdFqSCnWXIhcyOXC2TtRb0sg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@opentelemetry/sql-common" "^0.40.1" - -"@opentelemetry/instrumentation-mysql@^0.38.1": - version "0.38.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.38.1.tgz#7b897f3b663bf7a245a5a0ff780f2198973a4e44" - integrity sha512-+iBAawUaTfX/HAlvySwozx0C2B6LBfNPXX1W8Z2On1Uva33AGkw2UjL9XgIg1Pj4eLZ9R4EoJ/aFz+Xj4E/7Fw== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/mysql" "2.15.22" - -"@opentelemetry/instrumentation-nestjs-core@^0.37.1": - version "0.37.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.37.1.tgz#c5ef8afe0275c61ecf158974e8c4b19a8dc01763" - integrity sha512-ebYQjHZEmGHWEALwwDGhSQVLBaurFnuLIkZD5igPXrt7ohfF4lc5/4al1LO+vKc0NHk8SJWStuRueT86ISA8Vg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-net@^0.36.0": - version "0.36.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-net/-/instrumentation-net-0.36.0.tgz#6e999049beedba78866aab5a4e6f8dcff38df915" - integrity sha512-rZlbSgwAJys8lpug+xIeAdO98ypYMAPVqrHqc4AHuUl5S4MULHEcjGLMZLoE/guEGO4xAQ5XUezpRFGM1SAnsg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-pg@^0.41.0": - version "0.41.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.41.0.tgz#fd3540789f3f1b4bd051a348f85d61065f2cd8a1" - integrity sha512-BSlhpivzBD77meQNZY9fS4aKgydA8AJBzv2dqvxXFy/Hq64b7HURgw/ztbmwFeYwdF5raZZUifiiNSMLpOJoSA== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@opentelemetry/sql-common" "^0.40.1" - "@types/pg" "8.6.1" - "@types/pg-pool" "2.0.4" - -"@opentelemetry/instrumentation-pino@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.39.0.tgz#1da96116a29edef1cf6d77c7454dfec29aca0605" - integrity sha512-uA17F2iP77o3NculB63QD2zv3jkJ093Gfb0GxHLEqTIqpYs1ToJ53ybWwjJwqFByxk7GrliaxaxVtWC23PKzBg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-redis-4@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.39.0.tgz#9f9950bca3eb7e2f1cfc53a003c4eef64d8846bc" - integrity sha512-Zpfqfi83KeKgVQ0C2083GZPon3ZPYQ5E59v9FAbhubtOoUb9Rh7n111YD8FPW3sgx6JKp1odXmBmfQhWCaTOpQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/redis-common" "^0.36.2" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-redis@^0.39.1": - version "0.39.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.39.1.tgz#6c0cd3d3d761f16752617ff86f8e4ff7a6267f95" - integrity sha512-HUjTerD84jRJnSyDrRPqn6xQ7K91o9qLflRPZqzRvq0GRj5PMfc6TJ/z3q/ayWy/2Kzffhrp7HCIVp0u0TkgUg== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/redis-common" "^0.36.2" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-restify@^0.38.0": - version "0.38.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.38.0.tgz#dadc5d8cc3a1ee1b5de06fa25b667329ac60f7f9" - integrity sha512-VYK47Z9GBaZX5MQLL7kZDdzQDdyUtHRD4J/GSr6kdwmIpdpUQXLsV3EnboeB8P+BlpucF57FyJKE8yWTOEMfnA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-router@^0.37.0": - version "0.37.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-router/-/instrumentation-router-0.37.0.tgz#b093d6de6343e292b28f231402678ffe13161c00" - integrity sha512-+OPcm7C9I5oPqnpStE+1WkdPWjRx0k5XKratxQmIDFZrmhRcqvMte3vrrzE/OBPg9iqh2tKrSe0y7+0sRfTJyQ== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/instrumentation-socket.io@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.39.0.tgz#e7d685bbc23b64f312b1cbb2b5b25c5bbe778097" - integrity sha512-4J2ehk5mJyDT6j2yJCOuPxAjit5QB1Fwzhx0LID5jjvhI9LxzZIGDNAPTTHyghSiaRDeNMzceXKkkEQJkg2MNw== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-tedious@^0.10.1": - version "0.10.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.10.1.tgz#0c57a8a7842a232199eba230c2c1e858c0e6afff" - integrity sha512-maSXMxgS0szU52khQzAROV4nWr+3M8mZajMQOc3/7tYjo+Q3HlWAowOuagPvp4pwROK4x6oDaFYlY+ZSj1qjYA== - dependencies: - "@opentelemetry/instrumentation" "^0.51.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - "@types/tedious" "^4.0.10" - -"@opentelemetry/instrumentation-undici@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.2.0.tgz#7152b20448070a4f2d7e98b5d91a36f2d5fd67f0" - integrity sha512-RH9WdVRtpnyp8kvya2RYqKsJouPxvHl7jKPsIfrbL8u2QCKloAGi0uEqDHoOS15ZRYPQTDXZ7d8jSpUgSQmvpA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation-winston@^0.37.0": - version "0.37.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.37.0.tgz#43876c7bde19c2d3bf729f56c66465602b88187c" - integrity sha512-vOx55fxdNjo2XojJf8JN4jP7VVvQCh7UQzzQ2Q2FpGJpt8Z3EErKaY8xOBkOuJH0TtL/Q72rmIn9c+mRG46BxA== - dependencies: - "@opentelemetry/api-logs" "^0.51.0" - "@opentelemetry/instrumentation" "^0.51.0" - -"@opentelemetry/instrumentation@0.51.1", "@opentelemetry/instrumentation@^0.51.0": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.51.1.tgz#46fb2291150ec6923e50b2f094b9407bc726ca9b" - integrity sha512-JIrvhpgqY6437QIqToyozrUG1h5UhwHkaGK/WAX+fkrpyPtc+RO5FkRtUd9BH0MibabHHvqsnBGKfKVijbmp8w== - dependencies: - "@opentelemetry/api-logs" "0.51.1" - "@types/shimmer" "^1.0.2" - import-in-the-middle "1.7.4" - require-in-the-middle "^7.1.1" - semver "^7.5.2" - shimmer "^1.2.1" - -"@opentelemetry/otlp-exporter-base@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.51.1.tgz#e3b1e877f88adfd6a5d48acc8b72a1cf70167371" - integrity sha512-UYlnOYyDdzo1Gw559EHCzru0RwhvuXCwoH8jGo9J4gO1TE58GjnEmIjomMsKBCym3qWNJfIQXw+9SZCV0DdQNg== - dependencies: - "@opentelemetry/core" "1.24.1" - -"@opentelemetry/otlp-grpc-exporter-base@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.51.1.tgz#79a5ffd7c1d8cc0c5dd1af0e57e61b63c7ccc02e" - integrity sha512-ZAS+4pq8o7dsugGTwV9s6JMKSxi+guIHdn0acOv0bqj26e9pWDFx5Ky+bI0aY46uR9Y0JyXqY+KAEYM/SO3DFA== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-exporter-base" "0.51.1" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-proto-exporter-base@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.51.1.tgz#6937c486c688e6e19a9708ac08d92451762b2c1a" - integrity sha512-gxxxwfk0inDMb5DLeuxQ3L8TtptxSiTNHE4nnAJH34IQXAVRhXSXW1rK8PmDKDngRPIZ6J7ncUCjjIn8b+AgqQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/otlp-exporter-base" "0.51.1" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-transformer@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.51.1.tgz#d2344075de50ff64a11fc047db6bcb301a11dcf8" - integrity sha512-OppYOXwV9LQqqtYUCywqoOqX/JT9LQ5/FMuPZ//eTkvuHdUC4ZMwz2c6uSoT2R90GWvvGnF1iEqTGyTT3xAt2Q== - dependencies: - "@opentelemetry/api-logs" "0.51.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-logs" "0.51.1" - "@opentelemetry/sdk-metrics" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - -"@opentelemetry/propagation-utils@^0.30.9": - version "0.30.9" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagation-utils/-/propagation-utils-0.30.9.tgz#9d5a5cb74cb493193fa23012cd839d6bbd0d4957" - integrity sha512-DP2Y91zyw2uNgKLbej6c3IIjyF27sKnRK/UY/6msMIVGPIbZgtH9L0JOioN5L5kYjEkH4CDvt921SjutN7hY4A== - -"@opentelemetry/propagator-aws-xray@^1.3.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.24.1.tgz#fd041d43f0eee7d482d272bc23688d42abe216d5" - integrity sha512-RzwoLe6QzsYGcpmxxDbbbgSpe3ncxSM4dtFHXh/rCYGjyq0nZGXKvk26mJtWZ4kQ3nuiIoqSZueIuGmt/mvOTA== - dependencies: - "@opentelemetry/core" "1.24.1" - -"@opentelemetry/propagator-b3@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.24.1.tgz#37ff0ee875b585fdbc095e58651cb8b09e09e051" - integrity sha512-nda97ZwhpZKyUJTXqQuKzNhPMUgMLunbbGWn8kroBwegn+nh6OhtyGkrVQsQLNdVKJl0KeB5z0ZgeWszrYhwFw== - dependencies: - "@opentelemetry/core" "1.24.1" - -"@opentelemetry/propagator-b3@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.25.0.tgz#bd37a043d4290765c7edbab83bb34a23845be540" - integrity sha512-/A+1Tbnf0uwnP51OkoaQlrb9YILdHsoqIISna1MNXpZRzf42xm6LVLb49i+m/zlJoW1e8P4ekcrditR5pfmwog== - dependencies: - "@opentelemetry/core" "1.25.0" - -"@opentelemetry/propagator-jaeger@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.24.1.tgz#cbc07aa29ee1a4351a161e6cd1ed13b958f1da54" - integrity sha512-7bRBJn3FG1l195A1m+xXRHvgzAOBsfmRi9uZ5Da18oTh7BLmNDiA8+kpk51FpTsU1PCikPVpRDNPhKVB6lyzZg== - dependencies: - "@opentelemetry/core" "1.24.1" - -"@opentelemetry/propagator-jaeger@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.25.0.tgz#7ea9f781237ab1ecbedf16847f066f94655c023f" - integrity sha512-uwA5xqaPISXeX+YutqbjmzENnCGCvrIXlqIXP5gRoA5N6S3W28p+ExL77TugMKHN5gXklapF67jDfz7lq5ETzQ== - dependencies: - "@opentelemetry/core" "1.25.0" - -"@opentelemetry/redis-common@^0.36.2": - version "0.36.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz#906ac8e4d804d4109f3ebd5c224ac988276fdc47" - integrity sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g== - -"@opentelemetry/resource-detector-alibaba-cloud@^0.28.9": - version "0.28.9" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.28.9.tgz#fe0eb994ee6fa6c666220811db1cc7496c8da124" - integrity sha512-cTV2YFFkKAZUZgs5SMknIX4MmFb/0KQhrJuiz2dtJKnI1n7OanCgnMkuXzJ5+CbifRB57I2g3HnwcSPOx3zsKw== - dependencies: - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/resource-detector-aws@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.5.0.tgz#85f025f4246bde30d45d1e7531b94e081f0a1ced" - integrity sha512-JNk/kSzzNQaiMo/F0b/bm8S3Qtr/m89BckN9B4U/cPHSqKLdxX03vgRBOqkXJ5KlAD8kc6K1Etcr8QfvGw6+uA== - dependencies: - "@opentelemetry/core" "^1.0.0" - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/resource-detector-azure@^0.2.6": - version "0.2.7" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-azure/-/resource-detector-azure-0.2.7.tgz#55b484a70c969ff2658a76665f7621b97e4e38c0" - integrity sha512-+R3VnPaK6rc+kKfdvhgQlYDGXy0+JMAjPNDjcRQSeXY8pVOzHGCIrY+gT6gUrpjsw8w1EgNBVofr+qeNOr+o4A== - dependencies: - "@opentelemetry/resources" "^1.10.1" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/resource-detector-container@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.9.tgz#74504820233a3f583a25b45f63caf5c986c486a9" - integrity sha512-kfJ78av51EKk09fn5cwe5UNt+G7UBLvPTmfK/nZzvmNs7enw/TGB8X0j0JUHb9487ypRGph6MBoeP1+qZh+w1A== - dependencies: - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - -"@opentelemetry/resource-detector-gcp@^0.29.9": - version "0.29.9" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.29.9.tgz#fdb262ad76961d53738c3247d1916b8f8cec7db4" - integrity sha512-rTUm0U0cF8f75JzeMpMLbQ4m1uLph+Q31DQKk8ekdDe6SZ1EPD4rM1JgRnbxZtsC2sE8ju87s5nEio77xPz7dQ== - dependencies: - "@opentelemetry/core" "^1.0.0" - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.22.0" - gcp-metadata "^6.0.0" - -"@opentelemetry/resources@1.24.1", "@opentelemetry/resources@^1.0.0", "@opentelemetry/resources@^1.10.1", "@opentelemetry/resources@^1.24.0", "@opentelemetry/resources@^1.8.0": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.24.1.tgz#5e2cb84814824f3b1e1017e6caeeee8402e0ad6e" - integrity sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/resources@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.25.0.tgz#84a1e70097e342aa2047aac97be114ad14966793" - integrity sha512-iHjydPMYJ+Li1auveJCq2rp5U2h6Mhq8BidiyE0jfVlDTFyR1ny8AfJHfmFzJ/RAM8vT8L7T21kcmGybxZC7lQ== - dependencies: - "@opentelemetry/core" "1.25.0" - "@opentelemetry/semantic-conventions" "1.25.0" - -"@opentelemetry/sdk-logs@0.51.1": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.51.1.tgz#8e4544e1034413ed2bd5e0741734d062c5e81c94" - integrity sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - -"@opentelemetry/sdk-metrics@1.24.1", "@opentelemetry/sdk-metrics@^1.9.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.24.1.tgz#82ee3069b2ca9bb7c1e91272ff81536dc2e9bc8d" - integrity sha512-FrAqCbbGao9iKI+Mgh+OsC9+U2YMoXnlDHe06yH7dvavCKzE3S892dGtX54+WhSFVxHR/TMRVJiK/CV93GR0TQ== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-node@^0.51.0": - version "0.51.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.51.1.tgz#153968c5c63e0841e1af871fcc0a5ceb4d0d4b2d" - integrity sha512-GgmNF9C+6esr8PIJxCqHw84rEOkYm6XdFWZ2+Wyc3qaUt92ACoN7uSw5iKNvaUq62W0xii1wsGxwHzyENtPP8w== - dependencies: - "@opentelemetry/api-logs" "0.51.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/exporter-trace-otlp-grpc" "0.51.1" - "@opentelemetry/exporter-trace-otlp-http" "0.51.1" - "@opentelemetry/exporter-trace-otlp-proto" "0.51.1" - "@opentelemetry/exporter-zipkin" "1.24.1" - "@opentelemetry/instrumentation" "0.51.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/sdk-logs" "0.51.1" - "@opentelemetry/sdk-metrics" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - "@opentelemetry/sdk-trace-node" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/sdk-trace-base@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.24.1.tgz#dc2ab89126e75e442913fb5af98803fde67b2536" - integrity sha512-zz+N423IcySgjihl2NfjBf0qw1RWe11XIAWVrTNOSSI6dtSPJiVom2zipFB2AEEtJWpv0Iz6DY6+TjnyTV5pWg== - dependencies: - "@opentelemetry/core" "1.24.1" - "@opentelemetry/resources" "1.24.1" - "@opentelemetry/semantic-conventions" "1.24.1" - -"@opentelemetry/sdk-trace-base@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.0.tgz#263f9ce19001c5cd7a814d0eb40ebc6469ae763d" - integrity sha512-6+g2fiRQUG39guCsKVeY8ToeuUf3YUnPkN6DXRA1qDmFLprlLvZm9cS6+chgbW70cZJ406FTtSCDnJwxDC5sGQ== - dependencies: - "@opentelemetry/core" "1.25.0" - "@opentelemetry/resources" "1.25.0" - "@opentelemetry/semantic-conventions" "1.25.0" - -"@opentelemetry/sdk-trace-node@1.24.1": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.24.1.tgz#9bcb08ee64416531ff71edba7d46972b24606345" - integrity sha512-/FZX8uWaGIAwsDhqI8VvQ+qWtfMNlXjaFYGc+vmxgdRFppCSSIRwrPyIhJO1qx61okyYhoyxVEZAfoiNxrfJCg== - dependencies: - "@opentelemetry/context-async-hooks" "1.24.1" - "@opentelemetry/core" "1.24.1" - "@opentelemetry/propagator-b3" "1.24.1" - "@opentelemetry/propagator-jaeger" "1.24.1" - "@opentelemetry/sdk-trace-base" "1.24.1" - semver "^7.5.2" - -"@opentelemetry/sdk-trace-node@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.25.0.tgz#6cd76b4844e4bb7643395462ecaed1cc46b7cb8c" - integrity sha512-sYdZmNCkqthPpjwCxAJk5aQNLxCOQjT1u3JMGvO6rb3Ic8uFdnzXavP13Md9uYPcZBo+KxetyDhCf0x8wJGRng== - dependencies: - "@opentelemetry/context-async-hooks" "1.25.0" - "@opentelemetry/core" "1.25.0" - "@opentelemetry/propagator-b3" "1.25.0" - "@opentelemetry/propagator-jaeger" "1.25.0" - "@opentelemetry/sdk-trace-base" "1.25.0" - semver "^7.5.2" - -"@opentelemetry/semantic-conventions@1.24.1", "@opentelemetry/semantic-conventions@^1.0.0", "@opentelemetry/semantic-conventions@^1.22.0": - version "1.24.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.24.1.tgz#d4bcebda1cb5146d47a2a53daaa7922f8e084dfb" - integrity sha512-VkliWlS4/+GHLLW7J/rVBA00uXus1SWvwFvcUDxDwmFxYfg/2VI6ekwdXS28cjI8Qz2ky2BzG8OUHo+WeYIWqw== - -"@opentelemetry/semantic-conventions@1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.0.tgz#390eb4d42a29c66bdc30066af9035645e9bb7270" - integrity sha512-M+kkXKRAIAiAP6qYyesfrC5TOmDpDVtsxuGfPcqd9B/iBrac+E14jYwrgm0yZBUIbIP2OnqC3j+UgkXLm1vxUQ== - -"@opentelemetry/sql-common@^0.40.1": - version "0.40.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz#93fbc48d8017449f5b3c3274f2268a08af2b83b6" - integrity sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg== - dependencies: - "@opentelemetry/core" "^1.1.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@types/accepts@*": - version "1.3.7" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" - integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== - dependencies: - "@types/node" "*" - -"@types/aws-lambda@8.10.122": - version "8.10.122" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.122.tgz#206c8d71b09325d26a458dba27db842afdc54df1" - integrity sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw== - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bunyan@1.8.9": - version "1.8.9" - resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.9.tgz#22d4517f3217b7c8f5a69bbc8c9f6df79779dcb5" - integrity sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw== - dependencies: - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/connect@3.4.36": - version "3.4.36" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.8" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.8.tgz#6742a5971f490dc41e59d277eee71361fea0b537" - integrity sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg== - -"@types/cookies@*": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.9.0.tgz#a2290cfb325f75f0f28720939bee854d4142aee2" - integrity sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/express-serve-static-core@^4.17.33": - version "4.19.3" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" - integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/http-assert@*": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.5.tgz#dfb1063eb7c240ee3d3fe213dac5671cfb6a8dbf" - integrity sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g== - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/keygrip@*": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.6.tgz#1749535181a2a9b02ac04a797550a8787345b740" - integrity sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ== - -"@types/koa-compose@*": - version "3.2.8" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.8.tgz#dec48de1f6b3d87f87320097686a915f1e954b57" - integrity sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.15.0" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.15.0.tgz#eca43d76f527c803b491731f95df575636e7b6f2" - integrity sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa@2.14.0": - version "2.14.0" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.14.0.tgz#8939e8c3b695defc12f2ef9f38064509e564be18" - integrity sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa__router@12.0.3": - version "12.0.3" - resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-12.0.3.tgz#3fb74ea1991cadd6c6712b6106657aa6e64afca4" - integrity sha512-5YUJVv6NwM1z7m6FuYpKfNLTZ932Z6EF6xy2BbtpJSyn13DKNQEkXVffFVSnJHxvwwWh2SAeumpjAYUELqgjyw== - dependencies: - "@types/koa" "*" - -"@types/memcached@^2.2.6": - version "2.2.10" - resolved "https://registry.yarnpkg.com/@types/memcached/-/memcached-2.2.10.tgz#113f9e3a451d6b5e0a3822e06d9feb52e63e954a" - integrity sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg== - dependencies: - "@types/node" "*" - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/mysql@2.15.22": - version "2.15.22" - resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.22.tgz#8705edb9872bf4aa9dbc004cd494e00334e5cdb4" - integrity sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ== - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@>=13.7.0": - version "20.14.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.0.tgz#49ceec7b34f8621470cff44677fa9d461a477f17" - integrity sha512-5cHBxFGJx6L4s56Bubp4fglrEpmyJypsqI6RgzMfBHWUJQGWAAi8cWcgetEbZXHYXo9C2Fa4EEds/uSyS4cxmA== - dependencies: - undici-types "~5.26.4" - -"@types/pg-pool@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.4.tgz#b5c60f678094ff3acf3442628a7f708928fcf263" - integrity sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ== - dependencies: - "@types/pg" "*" - -"@types/pg@*": - version "8.11.6" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.11.6.tgz#a2d0fb0a14b53951a17df5197401569fb9c0c54b" - integrity sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ== - dependencies: - "@types/node" "*" - pg-protocol "*" - pg-types "^4.0.1" - -"@types/pg@8.6.1": - version "8.6.1" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.1.tgz#099450b8dc977e8197a44f5229cedef95c8747f9" - integrity sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== - dependencies: - "@types/node" "*" - pg-protocol "*" - pg-types "^2.2.0" - -"@types/qs@*": - version "6.9.15" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" - integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/semver@^7.5.8": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== - dependencies: - "@types/http-errors" "*" - "@types/node" "*" - "@types/send" "*" - -"@types/shimmer@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.5.tgz#491d8984d4510e550bfeb02d518791d7f59d2b88" - integrity sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww== - -"@types/tedious@^4.0.10": - version "4.0.14" - resolved "https://registry.yarnpkg.com/@types/tedious/-/tedious-4.0.14.tgz#868118e7a67808258c05158e9cad89ca58a2aec1" - integrity sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw== - dependencies: - "@types/node" "*" - -"@types/uuid@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-10.0.0.tgz#e9c07fe50da0f53dc24970cca94d619ff03f6f6d" - integrity sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ== - -acorn-import-attributes@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" - integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== - -acorn@^8.8.2: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -agent-base@^7.0.2: - version "7.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -bignumber.js@^9.0.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - -cjs-module-lexer@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" - integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -debug@4, debug@^4.1.1, debug@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" - integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== - dependencies: - ms "2.1.2" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -escalade@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== - -extend@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -follow-redirects@^1.15.6: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -gaxios@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" - integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== - dependencies: - extend "^3.0.2" - https-proxy-agent "^7.0.1" - is-stream "^2.0.0" - node-fetch "^2.6.9" - uuid "^9.0.1" - -gcp-metadata@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" - integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg== - dependencies: - gaxios "^6.0.0" - json-bigint "^1.0.0" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -hasown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -https-proxy-agent@^7.0.1: - version "7.0.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" - integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== - dependencies: - agent-base "^7.0.2" - debug "4" - -import-in-the-middle@1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.7.4.tgz#508da6e91cfa84f210dcdb6c0a91ab0c9e8b3ebc" - integrity sha512-Lk+qzWmiQuRPPulGQeK5qq0v32k2bHnWrRPFgqyvhw7Kkov5L6MOLOIU3pcWeujc9W4q54Cp3Q2WV16eQkc7Bg== - dependencies: - acorn "^8.8.2" - acorn-import-attributes "^1.9.5" - cjs-module-lexer "^1.2.2" - module-details-from-path "^1.0.3" - -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -json-bigint@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" - integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== - dependencies: - bignumber.js "^9.0.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -long@^5.0.0: - version "5.2.3" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" - integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -module-details-from-path@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" - integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -node-fetch@^2.6.9: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - -obuf@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-numeric@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pg-numeric/-/pg-numeric-1.0.2.tgz#816d9a44026086ae8ae74839acd6a09b0636aa3a" - integrity sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw== - -pg-protocol@*: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== - -pg-types@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg-types@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-4.0.2.tgz#399209a57c326f162461faa870145bb0f918b76d" - integrity sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng== - dependencies: - pg-int8 "1.0.1" - pg-numeric "1.0.2" - postgres-array "~3.0.1" - postgres-bytea "~3.0.0" - postgres-date "~2.1.0" - postgres-interval "^3.0.0" - postgres-range "^1.1.1" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-array@~3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-3.0.2.tgz#68d6182cb0f7f152a7e60dc6a6889ed74b0a5f98" - integrity sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-bytea@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-3.0.0.tgz#9048dc461ac7ba70a6a42d109221619ecd1cb089" - integrity sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw== - dependencies: - obuf "~1.1.2" - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-date@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-2.1.0.tgz#b85d3c1fb6fb3c6c8db1e9942a13a3bf625189d0" - integrity sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -postgres-interval@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-3.0.0.tgz#baf7a8b3ebab19b7f38f07566c7aab0962f0c86a" - integrity sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw== - -postgres-range@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.4.tgz#a59c5f9520909bcec5e63e8cf913a92e4c952863" - integrity sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== - -protobufjs@^7.2.3, protobufjs@^7.2.5: - version "7.3.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c" - integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-in-the-middle@^7.1.1: - version "7.3.0" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz#ce64a1083647dc07b3273b348357efac8a9945c9" - integrity sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw== - dependencies: - debug "^4.1.1" - module-details-from-path "^1.0.3" - resolve "^1.22.1" - -resolve@^1.22.1: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -semver@^7.5.2, semver@^7.5.4, semver@^7.6.2: - version "7.6.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -shimmer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -typescript@^5.5.2: - version "5.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" - integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -uuidv7@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uuidv7/-/uuidv7-1.0.1.tgz#43c8d4329a2a1b403c8815c03f4770e531ae0151" - integrity sha512-2noB909GbI352dKfASOY6VHHl59KvevZ1FF8gCAXCwDyrt2kkZhuFbczF9udqTfeejiRYEmO4wzUZ0WhVP+IUA== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" diff --git a/odiglet/Dockerfile b/odiglet/Dockerfile index 26d26babe..a5497a5c9 100644 --- a/odiglet/Dockerfile +++ b/odiglet/Dockerfile @@ -1,3 +1,6 @@ + +######### python Native Community Agent ######### + FROM python:3.11 AS python-builder ARG ODIGOS_VERSION WORKDIR /python-instrumentation @@ -5,20 +8,50 @@ COPY ../agents/python ./agents/python RUN echo "VERSION = \"$ODIGOS_VERSION\";" > ./agents/python/configurator/version.py RUN mkdir workspace && pip install ./agents/python/ --target workspace -FROM node:18 AS nodejs-builder +######### Node.js Native Community Agent ######### +# +# The Node.js agent is built in multiple stages so it can be built with either upstream +# @odigos/opentelemetry-node or with a local clone to test changes during development. +# The implemntation is based on the following blog post: +# https://www.docker.com/blog/dockerfiles-now-support-multiple-build-contexts/ + +# The first build stage 'nodejs-agent-native-community-clone' clones the agent sources from github main branch. +FROM alpine AS nodejs-agent-native-community-clone +RUN apk add git +WORKDIR /src +ARG NODEJS_AGENT_VERSION=main +RUN git clone https://github.com/odigos-io/opentelemetry-node.git && cd opentelemetry-node && git checkout $NODEJS_AGENT_VERSION + +# The second build stage 'nodejs-agent-native-community-src' prepares the actual code we are going to compile and embed in odiglet. +# By default, it uses the previous 'nodejs-agent-native-community-src' stage, but one can override it by setting the +# --build-context nodejs-agent-native-community-src=../opentelemetry-node flag in the docker build command. +# This allows us to nobe the agent sources and test changes during development. +# The output of this stage is the resolved source code to be used in the next stage. +FROM scratch AS nodejs-agent-native-community-src +COPY --from=nodejs-agent-native-community-clone /src/opentelemetry-node / + +# The third build stage 'nodejs-agent-native-community-builder' compiles the agent sources and prepares the final output. +# it COPY from the previous 'nodejs-agent-native-community-src' stage, so it can be used with either the upstream or local sources. +# The output of this stage is the compiled agent code in: +# - package source code in '/nodejs-instrumentation/build/src' directory. +# - all required dependencies in '/nodejs-instrumentation/prod_node_modules' directory. +# These artifacts are later copied into the odiglet final image to be mounted into auto-instrumented pods at runtime. +FROM node:18 AS nodejs-agent-native-community-builder ARG ODIGOS_VERSION WORKDIR /nodejs-instrumentation -COPY agents/nodejs/package.json agents/nodejs/yarn.lock ./ +COPY --from=nodejs-agent-native-community-src /package.json /yarn.lock ./ # prepare the production node_modules content in a separate directory RUN yarn --production --frozen-lockfile RUN mv node_modules ./prod_node_modules # install all dependencies including dev so we can yarn compile RUN yarn --frozen-lockfile -COPY agents/nodejs . +COPY --from=nodejs-agent-native-community-src / ./ # inject the actual version into the agent code RUN echo "export const VERSION = \"$ODIGOS_VERSION\";" > ./src/version.ts RUN yarn compile + + FROM busybox AS dotnet-builder WORKDIR /dotnet-instrumentation ARG DOTNET_OTEL_VERSION=v0.7.0 @@ -27,7 +60,7 @@ RUN unzip opentelemetry-dotnet-instrumentation-linux-musl.zip && rm opentelemetr FROM --platform=$BUILDPLATFORM keyval/odiglet-base:v1.4 as builder WORKDIR /go/src/github.com/odigos-io/odigos -# Copyy local modules required by the build +# Copy local modules required by the build COPY api/ api/ COPY common/ common/ COPY k8sutils/ k8sutils/ @@ -52,8 +85,8 @@ RUN chmod 644 /instrumentations/java/javaagent.jar COPY --from=python-builder /python-instrumentation/workspace /instrumentations/python # NodeJS -COPY --from=nodejs-builder /nodejs-instrumentation/build/src /instrumentations/nodejs -COPY --from=nodejs-builder /nodejs-instrumentation/prod_node_modules /instrumentations/nodejs/node_modules +COPY --from=nodejs-agent-native-community-builder /nodejs-instrumentation/build/src /instrumentations/nodejs +COPY --from=nodejs-agent-native-community-builder /nodejs-instrumentation/prod_node_modules /instrumentations/nodejs/node_modules # .NET COPY --from=dotnet-builder /dotnet-instrumentation /instrumentations/dotnet