@synnaxlabs/alamos 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sources":["../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/api/trace.js","../../../node_modules/.pnpm/@opentelemetry+api@1.6.0/node_modules/@opentelemetry/api/build/esm/trace-api.js","../../../x/ts/dist/x.es.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/platform/browser/globalThis.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/version.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/internal/semver.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/diag/types.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/api/diag.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/baggage/internal/baggage-impl.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/baggage/internal/symbol.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/baggage/utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/context/context.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/diag/consoleLogger.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeter.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/metrics/Metric.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/propagation/TextMapPropagator.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/api/context.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/invalid-span-constants.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/NoopTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/SamplingResult.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/span_kind.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/status.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-validators.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/internal/tracestate-impl.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace/internal/utils.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/context-api.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/diag-api.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/api/metrics.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/metrics-api.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/propagation/NoopTextMapPropagator.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/baggage/context-helpers.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/api/propagation.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/propagation-api.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/api/trace.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/trace-api.js","../../../node_modules/.pnpm/@opentelemetry+api@1.4.1/node_modules/@opentelemetry/api/build/esm/index.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/trace/suppress-tracing.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/baggage/constants.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/baggage/utils.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/baggage/propagation/W3CBaggagePropagator.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/common/attributes.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/common/logging-error-handler.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/common/global-error-handler.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/sampling.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/globalThis.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/environment.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/environment.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/hex-to-base64.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/performance.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/version.js","../../../node_modules/.pnpm/@opentelemetry+semantic-conventions@1.11.0/node_modules/@opentelemetry/semantic-conventions/build/esm/trace/SemanticAttributes.js","../../../node_modules/.pnpm/@opentelemetry+semantic-conventions@1.11.0/node_modules/@opentelemetry/semantic-conventions/build/esm/resource/SemanticResourceAttributes.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/sdk-info.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/platform/browser/timer-util.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/common/time.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/ExportResult.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/propagation/composite.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/internal/validators.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/trace/TraceState.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/trace/W3CTraceContextPropagator.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/lodash.merge.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/merge.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/url.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/promise.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/utils/callback.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/internal/exporter.js","../../../node_modules/.pnpm/@opentelemetry+core@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/core/build/esm/index.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/enums.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/Sampler.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOffSampler.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOnSampler.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/ParentBasedSampler.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/TraceIdRatioBasedSampler.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/config.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/utility.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/BatchSpanProcessorBase.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/browser/export/BatchSpanProcessor.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/browser/RandomIdGenerator.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/default-service-name.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/NoopDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/NoopDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/HostDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/OSDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/HostDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/OSDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/ProcessDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/platform/browser/ProcessDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/Resource.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/BrowserDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/EnvDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/EnvDetector.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detectors/BrowserDetectorSync.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/utils.js","../../../node_modules/.pnpm/@opentelemetry+resources@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/resources/build/esm/detect-resources.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/MultiSpanProcessor.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/NoopSpanProcessor.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/ConsoleSpanExporter.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/InMemorySpanExporter.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-base@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/SimpleSpanProcessor.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-web@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-web/build/esm/StackContextManager.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-web@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-web/build/esm/WebTracerProvider.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-web@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-web/build/esm/enums/PerformanceTimingNames.js","../../../node_modules/.pnpm/@opentelemetry+sdk-trace-web@1.11.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/sdk-trace-web/build/esm/utils.js","../../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js","../../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js","../../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-exporter-base/build/esm/types.js","../../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-exporter-base/build/esm/platform/browser/util.js","../../../node_modules/.pnpm/@opentelemetry+otlp-exporter-base@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-exporter-base/build/esm/platform/browser/OTLPExporterBrowserBase.js","../../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-transformer/build/esm/common/internal.js","../../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/internal.js","../../../node_modules/.pnpm/@opentelemetry+otlp-transformer@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/otlp-transformer/build/esm/trace/index.js","../../../node_modules/.pnpm/@opentelemetry+exporter-trace-otlp-http@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/exporter-trace-otlp-http/build/esm/platform/browser/OTLPTraceExporter.js","../../../node_modules/.pnpm/@opentelemetry+instrumentation@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/instrumentation/build/esm/autoLoaderUtils.js","../../../node_modules/.pnpm/@opentelemetry+instrumentation@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/instrumentation/build/esm/autoLoader.js","../../../node_modules/.pnpm/shimmer@1.2.1/node_modules/shimmer/index.js","../../../node_modules/.pnpm/@opentelemetry+instrumentation@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","../../../node_modules/.pnpm/@opentelemetry+instrumentation@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/instrumentation/build/esm/platform/browser/instrumentation.js","../../../node_modules/.pnpm/@opentelemetry+instrumentation@0.37.0_@opentelemetry+api@1.4.1/node_modules/@opentelemetry/instrumentation/build/esm/utils.js","../../../node_modules/.pnpm/@uptrace+core@1.11.1/node_modules/@uptrace/core/build/src/config.js","../../../node_modules/.pnpm/@uptrace+core@1.11.1/node_modules/@uptrace/core/build/src/client.js","../../../node_modules/.pnpm/@uptrace+core@1.11.1/node_modules/@uptrace/core/build/src/types.js","../../../node_modules/.pnpm/@uptrace+core@1.11.1/node_modules/@uptrace/core/build/src/version.js","../../../node_modules/.pnpm/@uptrace+core@1.11.1/node_modules/@uptrace/core/build/src/index.js","../../../node_modules/.pnpm/@uptrace+web@1.11.1/node_modules/@uptrace/web/build/src/uptrace.js","../../../node_modules/.pnpm/@uptrace+web@1.11.1/node_modules/@uptrace/web/build/src/version.js","../../../node_modules/.pnpm/@uptrace+web@1.11.1/node_modules/@uptrace/web/build/src/index.js","../src/dev/index.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var TraceFlags;\n(function (TraceFlags) {\n /** Represents no flag set. */\n TraceFlags[TraceFlags[\"NONE\"] = 0] = \"NONE\";\n /** Bit to represent whether trace is sampled in trace flags. */\n TraceFlags[TraceFlags[\"SAMPLED\"] = 1] = \"SAMPLED\";\n})(TraceFlags || (TraceFlags = {}));\n//# sourceMappingURL=trace_flags.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TraceFlags } from './trace_flags';\nexport var INVALID_SPANID = '0000000000000000';\nexport var INVALID_TRACEID = '00000000000000000000000000000000';\nexport var INVALID_SPAN_CONTEXT = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n//# sourceMappingURL=invalid-span-constants.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nvar NonRecordingSpan = /** @class */ (function () {\n function NonRecordingSpan(_spanContext) {\n if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; }\n this._spanContext = _spanContext;\n }\n // Returns a SpanContext.\n NonRecordingSpan.prototype.spanContext = function () {\n return this._spanContext;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttribute = function (_key, _value) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttributes = function (_attributes) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setStatus = function (_status) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.updateName = function (_name) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.end = function (_endTime) { };\n // isRecording always returns false for NonRecordingSpan.\n NonRecordingSpan.prototype.isRecording = function () {\n return false;\n };\n // By default does nothing\n NonRecordingSpan.prototype.recordException = function (_exception, _time) { };\n return NonRecordingSpan;\n}());\nexport { NonRecordingSpan };\n//# sourceMappingURL=NonRecordingSpan.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '../context/context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n/**\n * span key\n */\nvar SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context) {\n return context.getValue(SPAN_KEY) || undefined;\n}\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan() {\n return getSpan(ContextAPI.getInstance().active());\n}\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context, span) {\n return context.setValue(SPAN_KEY, span);\n}\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context) {\n return context.deleteValue(SPAN_KEY);\n}\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(context, spanContext) {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context) {\n var _a;\n return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();\n}\n//# sourceMappingURL=context-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nvar VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nvar VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\nexport function isValidTraceId(traceId) {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\nexport function isValidSpanId(spanId) {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext) {\n return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));\n}\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext) {\n return new NonRecordingSpan(spanContext);\n}\n//# sourceMappingURL=spancontext-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextAPI } from '../api/context';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { isSpanContextValid } from './spancontext-utils';\nvar contextApi = ContextAPI.getInstance();\n/**\n * No-op implementations of {@link Tracer}.\n */\nvar NoopTracer = /** @class */ (function () {\n function NoopTracer() {\n }\n // startSpan starts a noop span.\n NoopTracer.prototype.startSpan = function (name, options, context) {\n if (context === void 0) { context = contextApi.active(); }\n var root = Boolean(options === null || options === void 0 ? void 0 : options.root);\n if (root) {\n return new NonRecordingSpan();\n }\n var parentFromContext = context && getSpanContext(context);\n if (isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)) {\n return new NonRecordingSpan(parentFromContext);\n }\n else {\n return new NonRecordingSpan();\n }\n };\n NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {\n var opts;\n var ctx;\n var fn;\n if (arguments.length < 2) {\n return;\n }\n else if (arguments.length === 2) {\n fn = arg2;\n }\n else if (arguments.length === 3) {\n opts = arg2;\n fn = arg3;\n }\n else {\n opts = arg2;\n ctx = arg3;\n fn = arg4;\n }\n var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();\n var span = this.startSpan(name, opts, parentContext);\n var contextWithSpanSet = setSpan(parentContext, span);\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n };\n return NoopTracer;\n}());\nexport { NoopTracer };\nfunction isSpanContext(spanContext) {\n return (typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number');\n}\n//# sourceMappingURL=NoopTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\nvar NOOP_TRACER = new NoopTracer();\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nvar ProxyTracer = /** @class */ (function () {\n function ProxyTracer(_provider, name, version, options) {\n this._provider = _provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n ProxyTracer.prototype.startSpan = function (name, options, context) {\n return this._getTracer().startSpan(name, options, context);\n };\n ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {\n var tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n };\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n ProxyTracer.prototype._getTracer = function () {\n if (this._delegate) {\n return this._delegate;\n }\n var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!tracer) {\n return NOOP_TRACER;\n }\n this._delegate = tracer;\n return this._delegate;\n };\n return ProxyTracer;\n}());\nexport { ProxyTracer };\n//# sourceMappingURL=ProxyTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nvar NoopTracerProvider = /** @class */ (function () {\n function NoopTracerProvider() {\n }\n NoopTracerProvider.prototype.getTracer = function (_name, _version, _options) {\n return new NoopTracer();\n };\n return NoopTracerProvider;\n}());\nexport { NoopTracerProvider };\n//# sourceMappingURL=NoopTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nvar NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nvar ProxyTracerProvider = /** @class */ (function () {\n function ProxyTracerProvider() {\n }\n /**\n * Get a {@link ProxyTracer}\n */\n ProxyTracerProvider.prototype.getTracer = function (name, version, options) {\n var _a;\n return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options));\n };\n ProxyTracerProvider.prototype.getDelegate = function () {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;\n };\n /**\n * Set the delegate tracer provider\n */\n ProxyTracerProvider.prototype.setDelegate = function (delegate) {\n this._delegate = delegate;\n };\n ProxyTracerProvider.prototype.getDelegateTracer = function (name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);\n };\n return ProxyTracerProvider;\n}());\nexport { ProxyTracerProvider };\n//# sourceMappingURL=ProxyTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport { isSpanContextValid, wrapSpanContext, } from '../trace/spancontext-utils';\nimport { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext, } from '../trace/context-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'trace';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nvar TraceAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function TraceAPI() {\n this._proxyTracerProvider = new ProxyTracerProvider();\n this.wrapSpanContext = wrapSpanContext;\n this.isSpanContextValid = isSpanContextValid;\n this.deleteSpan = deleteSpan;\n this.getSpan = getSpan;\n this.getActiveSpan = getActiveSpan;\n this.getSpanContext = getSpanContext;\n this.setSpan = setSpan;\n this.setSpanContext = setSpanContext;\n }\n /** Get the singleton instance of the Trace API */\n TraceAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n TraceAPI.prototype.setGlobalTracerProvider = function (provider) {\n var success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance());\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n };\n /**\n * Returns the global tracer provider.\n */\n TraceAPI.prototype.getTracerProvider = function () {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n };\n /**\n * Returns a tracer from the global tracer provider.\n */\n TraceAPI.prototype.getTracer = function (name, version) {\n return this.getTracerProvider().getTracer(name, version);\n };\n /** Remove the global tracer provider */\n TraceAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n };\n return TraceAPI;\n}());\nexport { TraceAPI };\n//# sourceMappingURL=trace.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport var trace = TraceAPI.getInstance();\n//# sourceMappingURL=trace-api.js.map","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar _a;\nconst isStringer = (value) => value != null && typeof value === \"object\" && \"toString\" in value;\nconst primitiveIsZero = (value) => {\n if (isStringer(value))\n return (value == null ? void 0 : value.toString().length) === 0;\n switch (typeof value) {\n case \"string\":\n return value.length === 0;\n case \"number\":\n return value === 0;\n case \"bigint\":\n return value === BigInt(0);\n case \"boolean\":\n return !value;\n case \"undefined\":\n return true;\n case \"object\":\n return value === null;\n }\n};\nconst newF = (v, reverse = false) => {\n const t = isStringer(v) ? \"stringer\" : typeof v;\n let f;\n switch (t) {\n case \"string\":\n f = (a, b) => a.localeCompare(b);\n break;\n case \"stringer\":\n f = (a, b) => a.toString().localeCompare(b.toString());\n break;\n case \"number\":\n f = (a, b) => a - b;\n break;\n case \"bigint\":\n f = (a, b) => a - b > BigInt(0) ? 1 : -1;\n break;\n case \"boolean\":\n f = (a, b) => Number(a) - Number(b);\n break;\n default:\n console.warn(\"sortFunc: unknown type\");\n return () => -1;\n }\n return reverse ? reverseF(f) : f;\n};\nconst newFieldF = (key, value, reverse) => {\n const f = newF(value[key], reverse);\n return (a, b) => f(a[key], b[key]);\n};\nconst primitiveArrays = (a, b) => {\n if (a.length !== b.length)\n return a.length - b.length;\n return a.every((v, i) => v === b[i]) ? 0 : -1;\n};\nconst unorderedPrimitiveArrays = (a, b) => {\n if (a.length !== b.length)\n return a.length - b.length;\n if (a.length === 0)\n return 0;\n const compareF = newF(a[0]);\n const aSorted = [...a].sort(compareF);\n const bSorted = [...b].sort(compareF);\n return aSorted.every((v, i) => v === bSorted[i]) ? 0 : -1;\n};\nconst order$1 = (a, b) => {\n if (a === b)\n return 0;\n if (a === \"first\" && b === \"last\")\n return 1;\n return -1;\n};\nconst reverseF = (f) => (a, b) => f(b, a);\nconst EQUAL = 0;\nconst LESS_THAN = -1;\nconst GREATER_THAN = 1;\nconst compare = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n EQUAL,\n GREATER_THAN,\n LESS_THAN,\n newF,\n newFieldF,\n order: order$1,\n primitiveArrays,\n reverseF,\n unorderedPrimitiveArrays\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar util;\n(function(util2) {\n util2.assertEqual = (val) => val;\n function assertIs(_arg) {\n }\n util2.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util2.assertNever = assertNever;\n util2.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util2.getValidEnumValues = (obj) => {\n const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util2.objectValues(filtered);\n };\n util2.objectValues = (obj) => {\n return util2.objectKeys(obj).map(function(e) {\n return obj[e];\n });\n };\n util2.objectKeys = typeof Object.keys === \"function\" ? (obj) => Object.keys(obj) : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util2.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return void 0;\n };\n util2.isInteger = typeof Number.isInteger === \"function\" ? (val) => Number.isInteger(val) : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => typeof val === \"string\" ? `'${val}'` : val).join(separator);\n }\n util2.joinValues = joinValues;\n util2.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function(objectUtil2) {\n objectUtil2.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second\n // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper || function(issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n } else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n } else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n } else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n } else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n } else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n } else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n } else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n } else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n } else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n } else {\n util.assertNever(issue.validation);\n }\n } else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n } else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...issueData.path || []];\n const fullIssue = {\n ...issueData,\n path: fullPath\n };\n let errorMessage = \"\";\n const maps = errorMaps.filter((m) => !!m).slice().reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n // then global default map\n ].filter((x2) => !!x2)\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\"\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x2) => x2.status === \"aborted\";\nconst isDirty = (x2) => x2.status === \"dirty\";\nconst isValid = (x2) => x2.status === \"valid\";\nconst isAsync = (x2) => typeof Promise !== \"undefined\" && x2 instanceof Promise;\nvar errorUtil;\n(function(errorUtil2) {\n errorUtil2.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil2.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n } else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n } else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n }\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap: errorMap2, invalid_type_error, required_error, description } = params;\n if (errorMap2 && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap2)\n return { errorMap: errorMap2, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n };\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n }\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a2;\n const ctx = {\n common: {\n issues: [],\n async: (_a2 = params === null || params === void 0 ? void 0 : params.async) !== null && _a2 !== void 0 ? _a2 : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n } else if (typeof message === \"function\") {\n return message(val);\n } else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val)\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n } else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement }\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform }\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def)\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description\n });\n }\n pipe(target2) {\n return ZodPipeline.create(this, target2);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n } else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n } else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(\n ctx2,\n {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx2.parsedType\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = void 0;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n } else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n }\n status.dirty();\n }\n } else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n } catch (_a2) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n } else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n } else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n } else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message)\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options2) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options2) });\n }\n datetime(options2) {\n var _a2;\n if (typeof options2 === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options2\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options2 === null || options2 === void 0 ? void 0 : options2.precision) === \"undefined\" ? null : options2 === null || options2 === void 0 ? void 0 : options2.precision,\n offset: (_a2 = options2 === null || options2 === void 0 ? void 0 : options2.offset) !== null && _a2 !== void 0 ? _a2 : false,\n ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message)\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex,\n ...errorUtil.errToObj(message)\n });\n }\n includes(value, options2) {\n return this._addCheck({\n kind: \"includes\",\n value,\n position: options2 === null || options2 === void 0 ? void 0 : options2.position,\n ...errorUtil.errToObj(options2 === null || options2 === void 0 ? void 0 : options2.message)\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message)\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message)\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min2 === null || ch.value > min2)\n min2 = ch.value;\n }\n }\n return min2;\n }\n get maxLength() {\n let max2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max2 === null || ch.value < max2)\n max2 = ch.value;\n }\n }\n return max2;\n }\n}\nZodString.create = (params) => {\n var _a2;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : false,\n ...processCreateParams(params)\n });\n};\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return valInt % stepInt / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = void 0;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message)\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message)\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message)\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min2 === null || ch.value > min2)\n min2 = ch.value;\n }\n }\n return min2;\n }\n get maxValue() {\n let max2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max2 === null || ch.value < max2)\n max2 = ch.value;\n }\n }\n return max2;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || ch.kind === \"multipleOf\" && util.isInteger(ch.value));\n }\n get isFinite() {\n let max2 = null, min2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n } else if (ch.kind === \"min\") {\n if (min2 === null || ch.value > min2)\n min2 = ch.value;\n } else if (ch.kind === \"max\") {\n if (max2 === null || ch.value < max2)\n max2 = ch.value;\n }\n }\n return Number.isFinite(min2) && Number.isFinite(max2);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params)\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = void 0;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min2 === null || ch.value > min2)\n min2 = ch.value;\n }\n }\n return min2;\n }\n get maxValue() {\n let max2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max2 === null || ch.value < max2)\n max2 = ch.value;\n }\n }\n return max2;\n }\n}\nZodBigInt.create = (params) => {\n var _a2;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a2 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a2 !== void 0 ? _a2 : false,\n ...processCreateParams(params)\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params)\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_date\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = void 0;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime())\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n get minDate() {\n let min2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min2 === null || ch.value > min2)\n min2 = ch.value;\n }\n }\n return min2 != null ? new Date(min2) : null;\n }\n get maxDate() {\n let max2 = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max2 === null || ch.value < max2)\n max2 = ch.value;\n }\n }\n return max2 != null ? new Date(max2) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params)\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params)\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params)\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params)\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params)\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params)\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params)\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params)\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: tooSmall ? def.exactLength.value : void 0,\n maximum: tooBig ? def.exactLength.value : void 0,\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result2) => {\n return ParseStatus.mergeArray(status, result2);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) }\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) }\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) }\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params)\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape\n });\n } else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element)\n });\n } else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n } else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n this.nonstrict = this.passthrough;\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return this._cached = { shape, keys };\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] }\n });\n }\n } else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys\n });\n status.dirty();\n }\n } else if (unknownKeys === \"strip\")\n ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n } else {\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(\n new ParseInputLazyPath(ctx, value, ctx.path, key)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve().then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet\n });\n }\n return syncPairs;\n }).then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...message !== void 0 ? {\n errorMap: (issue, ctx) => {\n var _a2, _b, _c, _d;\n const defaultError = (_c = (_b = (_a2 = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a2, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError\n };\n return {\n message: defaultError\n };\n }\n } : {}\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape()\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n } else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n } else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options2 = this._def.options;\n function handleResults(results) {\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options2.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n }),\n ctx: childCtx\n };\n })).then(handleResults);\n } else {\n let dirty = void 0;\n const issues = [];\n for (const option of options2) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n });\n if (result.status === \"valid\") {\n return result;\n } else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues2) => new ZodError(issues2));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types2, params) => {\n return new ZodUnion({\n options: types2,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params)\n });\n};\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n } else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n } else if (type instanceof ZodLiteral) {\n return [type.value];\n } else if (type instanceof ZodEnum) {\n return type.options;\n } else if (type instanceof ZodNativeEnum) {\n return Object.keys(type.enum);\n } else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n } else if (type instanceof ZodUndefined) {\n return [void 0];\n } else if (type instanceof ZodNull) {\n return [null];\n } else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator]\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n } else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options2, params) {\n const optionsMap = /* @__PURE__ */ new Map();\n for (const type of options2) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options: options2,\n optionsMap,\n ...processCreateParams(params)\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n } else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n })\n ]).then(([left2, right2]) => handleParsed(left2, right2));\n } else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }));\n }\n }\n}\nZodIntersection.create = (left2, right2, params) => {\n return new ZodIntersection({\n left: left2,\n right: right2,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params)\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n status.dirty();\n }\n const items = [...ctx.data].map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n }).filter((x2) => !!x2);\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n } else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params)\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third)\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second)\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"]))\n };\n });\n if (ctx.common.async) {\n const finalMap = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n } else {\n const finalMap = /* @__PURE__ */ new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params)\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements2) {\n const parsedSet = /* @__PURE__ */ new Set();\n for (const element of elements2) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements2) => finalizeSet(elements2));\n } else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) }\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) }\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params)\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n ].filter((x2) => !!x2),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error\n }\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n ].filter((x2) => !!x2),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error\n }\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n const me = this;\n return OK(async function(...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n } else {\n const me = this;\n return OK(function(...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create())\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params)\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params)\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params)\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params)\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params)\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params)\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n } else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n }\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed2) => {\n return this._def.schema._parseAsync({\n data: processed2,\n path: ctx.path,\n parent: ctx\n });\n });\n } else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params)\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params)\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(void 0);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params)\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params)\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params)\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n }\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx\n }\n });\n if (isAsync(result)) {\n return result.then((result2) => {\n return {\n status: \"valid\",\n value: result2.status === \"valid\" ? result2.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n });\n } else {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params)\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params)\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n } else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n };\n return handleAsync();\n } else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value\n };\n } else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params)\n });\n};\nconst custom = (check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a2, _b;\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const _fatal = (_b = (_a2 = p.fatal) !== null && _a2 !== void 0 ? _a2 : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate\n};\nvar ZodFirstPartyTypeKind;\n(function(ZodFirstPartyTypeKind2) {\n ZodFirstPartyTypeKind2[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind2[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind2[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind2[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind2[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind2[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind2[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind2[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind2[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind2[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind2[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind2[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind2[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind2[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind2[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind2[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind2[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind2[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind2[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind2[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind2[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind2[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind2[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind2[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind2[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind2[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind2[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind2[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind2[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind2[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind2[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind2[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind2[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind2[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind2[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind2[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: (arg) => ZodString.create({ ...arg, coerce: true }),\n number: (arg) => ZodNumber.create({ ...arg, coerce: true }),\n boolean: (arg) => ZodBoolean.create({\n ...arg,\n coerce: true\n }),\n bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),\n date: (arg) => ZodDate.create({ ...arg, coerce: true })\n};\nconst NEVER = INVALID;\nvar z = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap,\n getErrorMap,\n makeIssue,\n EMPTY_PATH,\n addIssueToContext,\n ParseStatus,\n INVALID,\n DIRTY,\n OK,\n isAborted,\n isDirty,\n isValid,\n isAsync,\n get util() {\n return util;\n },\n get objectUtil() {\n return objectUtil;\n },\n ZodParsedType,\n getParsedType,\n ZodType,\n ZodString,\n ZodNumber,\n ZodBigInt,\n ZodBoolean,\n ZodDate,\n ZodSymbol,\n ZodUndefined,\n ZodNull,\n ZodAny,\n ZodUnknown,\n ZodNever,\n ZodVoid,\n ZodArray,\n ZodObject,\n ZodUnion,\n ZodDiscriminatedUnion,\n ZodIntersection,\n ZodTuple,\n ZodRecord,\n ZodMap,\n ZodSet,\n ZodFunction,\n ZodLazy,\n ZodLiteral,\n ZodEnum,\n ZodNativeEnum,\n ZodPromise,\n ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional,\n ZodNullable,\n ZodDefault,\n ZodCatch,\n ZodNaN,\n BRAND,\n ZodBranded,\n ZodPipeline,\n ZodReadonly,\n custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late,\n get ZodFirstPartyTypeKind() {\n return ZodFirstPartyTypeKind;\n },\n coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n \"enum\": enumType,\n \"function\": functionType,\n \"instanceof\": instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n \"null\": nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean,\n onumber,\n optional: optionalType,\n ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n \"undefined\": undefinedType,\n union: unionType,\n unknown: unknownType,\n \"void\": voidType,\n NEVER,\n ZodIssueCode,\n quotelessJson,\n ZodError\n});\nconst numberCouple = z.tuple([z.number(), z.number()]);\nconst dimensions$1 = z.object({ width: z.number(), height: z.number() });\nconst signedDimensions = z.object({\n signedWidth: z.number(),\n signedHeight: z.number()\n});\nconst DIMENSIONS = [\"width\", \"height\"];\nz.enum(DIMENSIONS);\nconst ALIGNMENTS = [\"start\", \"center\", \"end\"];\nconst SIGNED_DIMENSIONS = [\"signedWidth\", \"signedHeight\"];\nz.enum(SIGNED_DIMENSIONS);\nconst xy$2 = z.object({ x: z.number(), y: z.number() });\nconst clientXY = z.object({ clientX: z.number(), clientY: z.number() });\nconst DIRECTIONS = [\"x\", \"y\"];\nconst direction$2 = z.enum(DIRECTIONS);\nconst OUTER_LOCATIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nconst outerLocation = z.enum(OUTER_LOCATIONS);\nconst X_LOCATIONS = [\"left\", \"right\"];\nconst xLocation = z.enum(X_LOCATIONS);\nconst Y_LOCATIONS = [\"top\", \"bottom\"];\nconst yLocation = z.enum(Y_LOCATIONS);\nconst CENTER_LOCATIONS = [\"center\"];\nz.enum(CENTER_LOCATIONS);\nconst LOCATIONS = [...OUTER_LOCATIONS, ...CENTER_LOCATIONS];\nconst location$2 = z.enum(LOCATIONS);\nconst alignment = z.enum(ALIGNMENTS);\nconst ORDERS = [\"first\", \"last\"];\nconst order = z.enum(ORDERS);\nconst bounds$1 = z.object({ lower: z.number(), upper: z.number() });\nz.union([bounds$1, numberCouple]);\nconst crudeDirection = z.union([direction$2, location$2]);\nconst crudeLocation = z.union([direction$2, location$2, z.instanceof(String)]);\nconst construct$5 = (lower, upper) => {\n const b = { lower: 0, upper: 0 };\n if (typeof lower === \"number\") {\n if (upper != null) {\n b.lower = lower;\n b.upper = upper;\n } else {\n b.lower = 0;\n b.upper = lower;\n }\n } else if (Array.isArray(lower)) {\n [b.lower, b.upper] = lower;\n } else {\n b.lower = lower.lower;\n b.upper = lower.upper;\n }\n return makeValid(b);\n};\nconst ZERO$3 = { lower: 0, upper: 0 };\nconst INFINITE = { lower: -Infinity, upper: Infinity };\nconst DECIMAL$2 = { lower: 0, upper: 1 };\nconst CLIP = { lower: -1, upper: 1 };\nconst equals$3 = (a, b) => (a == null ? void 0 : a.lower) === (b == null ? void 0 : b.lower) && (a == null ? void 0 : a.upper) === (b == null ? void 0 : b.upper);\nconst makeValid = (a) => {\n if (a.lower > a.upper)\n return { lower: a.upper, upper: a.lower };\n return a;\n};\nconst clamp$1 = (bounds2, target2) => {\n if (target2 < bounds2.lower)\n return bounds2.lower;\n if (target2 >= bounds2.upper)\n return bounds2.upper - 1;\n return target2;\n};\nconst contains$1 = (bounds2, target2) => target2 >= bounds2.lower && target2 < bounds2.upper;\nconst overlapsWith = (a, b) => contains$1(a, a.lower) || contains$1(b, b.upper - 1);\nconst span = (a) => a.upper - a.lower;\nconst isZero$2 = (a) => a.lower === 0 && a.upper === 0;\nconst spanIsZero = (a) => span(a) === 0;\nconst isFinite$1 = (a) => Number.isFinite(a.lower) && Number.isFinite(a.upper);\nconst max$1 = (bounds2) => ({\n lower: Math.min(...bounds2.map((b) => construct$5(b).lower)),\n upper: Math.max(...bounds2.map((b) => construct$5(b).upper))\n});\nconst min$1 = (bounds2) => ({\n lower: Math.max(...bounds2.map((b) => construct$5(b).lower)),\n upper: Math.min(...bounds2.map((b) => construct$5(b).upper))\n});\nconst bounds = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n CLIP,\n DECIMAL: DECIMAL$2,\n INFINITE,\n ZERO: ZERO$3,\n bounds: bounds$1,\n clamp: clamp$1,\n construct: construct$5,\n contains: contains$1,\n equals: equals$3,\n isFinite: isFinite$1,\n isZero: isZero$2,\n makeValid,\n max: max$1,\n min: min$1,\n overlapsWith,\n span,\n spanIsZero\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst crude$2 = crudeDirection;\nconst construct$4 = (c) => {\n if (DIRECTIONS.includes(c))\n return c;\n if (Y_LOCATIONS.includes(c))\n return \"y\";\n else\n return \"x\";\n};\nconst swap$2 = (direction2) => construct$4(direction2) === \"x\" ? \"y\" : \"x\";\nconst dimension = (direction2) => construct$4(direction2) === \"x\" ? \"width\" : \"height\";\nconst location$1 = (direction2) => construct$4(direction2) === \"x\" ? \"left\" : \"top\";\nconst isDirection = (c) => crude$2.safeParse(c).success;\nconst signedDimension = (direction2) => construct$4(direction2) === \"x\" ? \"signedWidth\" : \"signedHeight\";\nconst direction$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n construct: construct$4,\n crude: crude$2,\n dimension,\n isDirection,\n location: location$1,\n signedDimension,\n swap: swap$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nvar lib = {};\nvar jsCamelcase = {};\nObject.defineProperty(jsCamelcase, \"__esModule\", { value: true });\nfunction toCamelCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"$\" + b;\n }).toLowerCase().replace(/(\\$)(\\w)/g, function(m, a, b) {\n return b.toUpperCase();\n });\n}\njsCamelcase.default = toCamelCase;\nvar jsSnakecase = {};\nObject.defineProperty(jsSnakecase, \"__esModule\", { value: true });\nfunction toSnakeCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"_\").toLowerCase();\n}\njsSnakecase.default = toSnakeCase;\nvar jsPascalcase = {};\nObject.defineProperty(jsPascalcase, \"__esModule\", { value: true });\nfunction toPascalCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"$\").replace(/[^A-Za-z0-9]+/g, \"$\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"$\" + b;\n }).toLowerCase().replace(/(\\$)(\\w?)/g, function(m, a, b) {\n return b.toUpperCase();\n });\n}\njsPascalcase.default = toPascalCase;\nvar jsDotcase = {};\nObject.defineProperty(jsDotcase, \"__esModule\", { value: true });\nfunction toDotCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \".\").toLowerCase();\n}\njsDotcase.default = toDotCase;\nvar jsPathcase = {};\nObject.defineProperty(jsPathcase, \"__esModule\", { value: true });\nfunction toPathCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"/\").toLowerCase();\n}\njsPathcase.default = toPathCase;\nvar jsTextcase = {};\nObject.defineProperty(jsTextcase, \"__esModule\", { value: true });\nfunction toTextCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase();\n}\njsTextcase.default = toTextCase;\nvar jsSentencecase = {};\nObject.defineProperty(jsSentencecase, \"__esModule\", { value: true });\nfunction toSentenceCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n var textcase = String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase();\n return textcase.charAt(0).toUpperCase() + textcase.slice(1);\n}\njsSentencecase.default = toSentenceCase;\nvar jsHeadercase = {};\nObject.defineProperty(jsHeadercase, \"__esModule\", { value: true });\nfunction toHeaderCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \" \").toLowerCase().replace(/( ?)(\\w+)( ?)/g, function(m, a, b, c) {\n return a + b.charAt(0).toUpperCase() + b.slice(1) + c;\n });\n}\njsHeadercase.default = toHeaderCase;\nvar jsKebabcase = {};\nObject.defineProperty(jsKebabcase, \"__esModule\", { value: true });\nfunction toKebabCase(str) {\n if (str === void 0) {\n str = \"\";\n }\n if (!str)\n return \"\";\n return String(str).replace(/^[^A-Za-z0-9]*|[^A-Za-z0-9]*$/g, \"\").replace(/([a-z])([A-Z])/g, function(m, a, b) {\n return a + \"_\" + b.toLowerCase();\n }).replace(/[^A-Za-z0-9]+|_+/g, \"-\").toLowerCase();\n}\njsKebabcase.default = toKebabCase;\nvar lowercaseKeysObject = {};\nvar utils = {};\n(function(exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.belongToTypes = exports.isValidObject = exports.isArrayObject = exports.validateOptions = exports.DefaultOption = void 0;\n exports.DefaultOption = {\n recursive: false,\n recursiveInArray: false,\n keepTypesOnRecursion: []\n };\n exports.validateOptions = function(opt) {\n if (opt === void 0) {\n opt = exports.DefaultOption;\n }\n if (opt.recursive == null) {\n opt = exports.DefaultOption;\n } else if (opt.recursiveInArray == null) {\n opt.recursiveInArray = false;\n }\n return opt;\n };\n exports.isArrayObject = function(obj) {\n return obj != null && Array.isArray(obj);\n };\n exports.isValidObject = function(obj) {\n return obj != null && typeof obj === \"object\" && !Array.isArray(obj);\n };\n exports.belongToTypes = function(obj, types2) {\n return (types2 || []).some(function(Type) {\n return obj instanceof Type;\n });\n };\n})(utils);\nvar __spreadArrays$5 = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(lowercaseKeysObject, \"__esModule\", { value: true });\nvar utils_1$5 = utils;\nfunction lowerKeys(obj, opt) {\n if (opt === void 0) {\n opt = utils_1$5.DefaultOption;\n }\n if (!utils_1$5.isValidObject(obj))\n return null;\n opt = utils_1$5.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = key.toLowerCase();\n if (opt.recursive) {\n if (utils_1$5.isValidObject(value)) {\n if (!utils_1$5.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = lowerKeys(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1$5.isArrayObject(value)) {\n value = __spreadArrays$5(value).map(function(v) {\n var ret = v;\n if (utils_1$5.isValidObject(v)) {\n if (!utils_1$5.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = lowerKeys(v, opt);\n }\n } else if (utils_1$5.isArrayObject(v)) {\n var temp = lowerKeys({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\nlowercaseKeysObject.default = lowerKeys;\nvar uppercaseKeysObject = {};\nvar __spreadArrays$4 = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(uppercaseKeysObject, \"__esModule\", { value: true });\nvar utils_1$4 = utils;\nfunction upperKeys(obj, opt) {\n if (opt === void 0) {\n opt = utils_1$4.DefaultOption;\n }\n if (!utils_1$4.isValidObject(obj))\n return null;\n opt = utils_1$4.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = key.toUpperCase();\n if (opt.recursive) {\n if (utils_1$4.isValidObject(value)) {\n if (!utils_1$4.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = upperKeys(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1$4.isArrayObject(value)) {\n value = __spreadArrays$4(value).map(function(v) {\n var ret = v;\n if (utils_1$4.isValidObject(v)) {\n if (!utils_1$4.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = upperKeys(v, opt);\n }\n } else if (utils_1$4.isArrayObject(v)) {\n var temp = upperKeys({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\nuppercaseKeysObject.default = upperKeys;\nvar camelcaseKeysObject = {};\nvar __spreadArrays$3 = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(camelcaseKeysObject, \"__esModule\", { value: true });\nvar utils_1$3 = utils;\nvar js_camelcase_1$1 = jsCamelcase;\nfunction camelKeys$1(obj, opt) {\n if (opt === void 0) {\n opt = utils_1$3.DefaultOption;\n }\n if (!utils_1$3.isValidObject(obj))\n return null;\n opt = utils_1$3.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = js_camelcase_1$1.default(key);\n if (opt.recursive) {\n if (utils_1$3.isValidObject(value)) {\n if (!utils_1$3.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = camelKeys$1(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1$3.isArrayObject(value)) {\n value = __spreadArrays$3(value).map(function(v) {\n var ret = v;\n if (utils_1$3.isValidObject(v)) {\n if (!utils_1$3.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = camelKeys$1(v, opt);\n }\n } else if (utils_1$3.isArrayObject(v)) {\n var temp = camelKeys$1({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\ncamelcaseKeysObject.default = camelKeys$1;\nvar snakecaseKeysObject = {};\nvar __spreadArrays$2 = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(snakecaseKeysObject, \"__esModule\", { value: true });\nvar utils_1$2 = utils;\nvar js_snakecase_1$1 = jsSnakecase;\nfunction snakeKeys$1(obj, opt) {\n if (opt === void 0) {\n opt = utils_1$2.DefaultOption;\n }\n if (!utils_1$2.isValidObject(obj))\n return null;\n opt = utils_1$2.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = js_snakecase_1$1.default(key);\n if (opt.recursive) {\n if (utils_1$2.isValidObject(value)) {\n if (!utils_1$2.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = snakeKeys$1(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1$2.isArrayObject(value)) {\n value = __spreadArrays$2(value).map(function(v) {\n var ret = v;\n if (utils_1$2.isValidObject(v)) {\n if (!utils_1$2.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = snakeKeys$1(v, opt);\n }\n } else if (utils_1$2.isArrayObject(v)) {\n var temp = snakeKeys$1({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\nsnakecaseKeysObject.default = snakeKeys$1;\nvar pascalcaseKeysObject = {};\nvar __spreadArrays$1 = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(pascalcaseKeysObject, \"__esModule\", { value: true });\nvar utils_1$1 = utils;\nvar js_pascalcase_1$1 = jsPascalcase;\nfunction pascalKeys(obj, opt) {\n if (opt === void 0) {\n opt = utils_1$1.DefaultOption;\n }\n if (!utils_1$1.isValidObject(obj))\n return null;\n opt = utils_1$1.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = js_pascalcase_1$1.default(key);\n if (opt.recursive) {\n if (utils_1$1.isValidObject(value)) {\n if (!utils_1$1.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = pascalKeys(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1$1.isArrayObject(value)) {\n value = __spreadArrays$1(value).map(function(v) {\n var ret = v;\n if (utils_1$1.isValidObject(v)) {\n if (!utils_1$1.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = pascalKeys(v, opt);\n }\n } else if (utils_1$1.isArrayObject(v)) {\n var temp = pascalKeys({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\npascalcaseKeysObject.default = pascalKeys;\nvar kebabcaseKeysObject = {};\nvar __spreadArrays = commonjsGlobal && commonjsGlobal.__spreadArrays || function() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(kebabcaseKeysObject, \"__esModule\", { value: true });\nvar utils_1 = utils;\nvar js_kebabcase_1$1 = jsKebabcase;\nfunction kebabKeys(obj, opt) {\n if (opt === void 0) {\n opt = utils_1.DefaultOption;\n }\n if (!utils_1.isValidObject(obj))\n return null;\n opt = utils_1.validateOptions(opt);\n var res = {};\n Object.keys(obj).forEach(function(key) {\n var value = obj[key];\n var nkey = js_kebabcase_1$1.default(key);\n if (opt.recursive) {\n if (utils_1.isValidObject(value)) {\n if (!utils_1.belongToTypes(value, opt.keepTypesOnRecursion)) {\n value = kebabKeys(value, opt);\n }\n } else if (opt.recursiveInArray && utils_1.isArrayObject(value)) {\n value = __spreadArrays(value).map(function(v) {\n var ret = v;\n if (utils_1.isValidObject(v)) {\n if (!utils_1.belongToTypes(ret, opt.keepTypesOnRecursion)) {\n ret = kebabKeys(v, opt);\n }\n } else if (utils_1.isArrayObject(v)) {\n var temp = kebabKeys({ key: v }, opt);\n ret = temp.key;\n }\n return ret;\n });\n }\n }\n res[nkey] = value;\n });\n return res;\n}\nkebabcaseKeysObject.default = kebabKeys;\nObject.defineProperty(lib, \"__esModule\", { value: true });\nlib.kebabKeys = lib.pascalKeys = lib.snakeKeys = lib.camelKeys = lib.upperKeys = lib.lowerKeys = lib.toLowerCase = lib.toUpperCase = lib.toKebabCase = lib.toHeaderCase = lib.toSentenceCase = lib.toTextCase = lib.toPathCase = lib.toDotCase = lib.toPascalCase = lib.toSnakeCase = lib.toCamelCase = void 0;\nvar js_camelcase_1 = jsCamelcase;\nlib.toCamelCase = js_camelcase_1.default;\nvar js_snakecase_1 = jsSnakecase;\nlib.toSnakeCase = js_snakecase_1.default;\nvar js_pascalcase_1 = jsPascalcase;\nlib.toPascalCase = js_pascalcase_1.default;\nvar js_dotcase_1 = jsDotcase;\nlib.toDotCase = js_dotcase_1.default;\nvar js_pathcase_1 = jsPathcase;\nlib.toPathCase = js_pathcase_1.default;\nvar js_textcase_1 = jsTextcase;\nlib.toTextCase = js_textcase_1.default;\nvar js_sentencecase_1 = jsSentencecase;\nlib.toSentenceCase = js_sentencecase_1.default;\nvar js_headercase_1 = jsHeadercase;\nlib.toHeaderCase = js_headercase_1.default;\nvar js_kebabcase_1 = jsKebabcase;\nlib.toKebabCase = js_kebabcase_1.default;\nvar lowercase_keys_object_1 = lowercaseKeysObject;\nlib.lowerKeys = lowercase_keys_object_1.default;\nvar uppercase_keys_object_1 = uppercaseKeysObject;\nlib.upperKeys = uppercase_keys_object_1.default;\nvar camelcase_keys_object_1 = camelcaseKeysObject;\nlib.camelKeys = camelcase_keys_object_1.default;\nvar snakecase_keys_object_1 = snakecaseKeysObject;\nlib.snakeKeys = snakecase_keys_object_1.default;\nvar pascalcase_keys_object_1 = pascalcaseKeysObject;\nlib.pascalKeys = pascalcase_keys_object_1.default;\nvar kebabcase_keys_object_1 = kebabcaseKeysObject;\nlib.kebabKeys = kebabcase_keys_object_1.default;\nvar toLowerCase = function(str) {\n return String(str || \"\").toLowerCase();\n};\nlib.toLowerCase = toLowerCase;\nvar toUpperCase = function(str) {\n return String(str || \"\").toUpperCase();\n};\nlib.toUpperCase = toUpperCase;\nvar jsConvert = {\n toCamelCase: js_camelcase_1.default,\n toSnakeCase: js_snakecase_1.default,\n toPascalCase: js_pascalcase_1.default,\n toDotCase: js_dotcase_1.default,\n toPathCase: js_pathcase_1.default,\n toTextCase: js_textcase_1.default,\n toSentenceCase: js_sentencecase_1.default,\n toHeaderCase: js_headercase_1.default,\n toKebabCase: js_kebabcase_1.default,\n toUpperCase,\n toLowerCase,\n lowerKeys: lowercase_keys_object_1.default,\n upperKeys: uppercase_keys_object_1.default,\n camelKeys: camelcase_keys_object_1.default,\n snakeKeys: snakecase_keys_object_1.default,\n pascalKeys: pascalcase_keys_object_1.default,\n kebabKeys: kebabcase_keys_object_1.default\n};\nlib.default = jsConvert;\nvar jsConvertCase = lib;\nconst options = {\n recursive: true,\n recursiveInArray: true,\n keepTypesOnRecursion: [Number, String, Uint8Array]\n};\nconst snakeKeys = (entity) => jsConvertCase.snakeKeys(entity, options);\nconst camelKeys = (entity) => jsConvertCase.camelKeys(entity, options);\nvar Case;\n((Case2) => {\n Case2.toSnake = snakeKeys;\n Case2.toCamel = camelKeys;\n Case2.capitalize = (str) => str[0].toUpperCase() + str.slice(1);\n})(Case || (Case = {}));\nconst x$1 = xLocation;\nconst y$1 = yLocation;\nconst SWAPPED = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n center: \"center\"\n};\nconst ROTATE_90 = {\n top: \"left\",\n right: \"top\",\n bottom: \"right\",\n left: \"bottom\",\n center: \"center\"\n};\nconst crude$1 = crudeLocation;\nconst construct$3 = (cl) => {\n if (cl instanceof String)\n return cl;\n if (!DIRECTIONS.includes(cl))\n return cl;\n else if (cl === \"x\")\n return \"left\";\n else\n return \"top\";\n};\nconst swap$1 = (cl) => SWAPPED[construct$3(cl)];\nconst rotate90 = (cl) => ROTATE_90[construct$3(cl)];\nconst direction = (cl) => {\n const l = construct$3(cl);\n if (l === \"top\" || l === \"bottom\")\n return \"y\";\n return \"x\";\n};\nconst xy$1 = z.object({ x: location$2, y: location$2 });\nconst corner = z.object({ x: xLocation, y: yLocation });\nconst TOP_LEFT = { x: \"left\", y: \"top\" };\nconst TOP_RIGHT = { x: \"right\", y: \"top\" };\nconst BOTTOM_LEFT = { x: \"left\", y: \"bottom\" };\nconst BOTTOM_RIGHT = { x: \"right\", y: \"bottom\" };\nconst CENTER = { x: \"center\", y: \"center\" };\nconst TOP_CENTER = { x: \"center\", y: \"top\" };\nconst BOTTOM_CENTER = { x: \"center\", y: \"bottom\" };\nconst RIGHT_CENTER = { x: \"right\", y: \"center\" };\nconst LEFT_CENTER = { x: \"left\", y: \"center\" };\nconst xyEquals = (a, b) => a.x === b.x && a.y === b.y;\nconst xyCouple = (a) => [a.x, a.y];\nconst isX = (a) => direction(construct$3(a)) === \"x\";\nconst isY = (a) => direction(construct$3(a)) === \"y\";\nconst xyToString = (a) => `${a.x}${Case.capitalize(a.y)}`;\nconst constructXY = (x2, y2) => {\n let one;\n let two;\n if (typeof x2 === \"object\" && \"x\" in x2) {\n one = x2.x;\n two = x2.y;\n } else {\n one = construct$3(x2);\n two = construct$3(y2 ?? x2);\n }\n if (direction(one) === direction(two) && one !== \"center\" && two !== \"center\")\n throw new Error(\n `[XYLocation] - encountered two locations with the same direction: ${one.toString()} - ${two.toString()}`\n );\n const xy2 = CENTER;\n if (one === \"center\") {\n if (direction(two) === \"x\")\n [xy2.x, xy2.y] = [two, one];\n else\n [xy2.x, xy2.y] = [one, two];\n } else if (two === \"center\") {\n if (direction(one) === \"x\")\n [xy2.x, xy2.y] = [one, two];\n else\n [xy2.x, xy2.y] = [two, one];\n } else if (direction(one) === \"x\")\n [xy2.x, xy2.y] = [one, two];\n else\n [xy2.x, xy2.y] = [two, one];\n return xy2;\n};\nconst location = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BOTTOM_CENTER,\n BOTTOM_LEFT,\n BOTTOM_RIGHT,\n CENTER,\n CENTER_LOCATIONS,\n LEFT_CENTER,\n RIGHT_CENTER,\n TOP_CENTER,\n TOP_LEFT,\n TOP_RIGHT,\n X_LOCATIONS,\n Y_LOCATIONS,\n construct: construct$3,\n constructXY,\n corner,\n crude: crude$1,\n direction,\n isX,\n isY,\n location: location$2,\n outer: outerLocation,\n rotate90,\n swap: swap$1,\n x: x$1,\n xy: xy$1,\n xyCouple,\n xyEquals,\n xyToString,\n y: y$1\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst crudeZ = z.union([\n z.number(),\n xy$2,\n numberCouple,\n dimensions$1,\n signedDimensions,\n clientXY\n]);\nconst construct$2 = (x2, y2) => {\n if (typeof x2 === \"number\")\n return { x: x2, y: y2 ?? x2 };\n if (Array.isArray(x2))\n return { x: x2[0], y: x2[1] };\n if (\"signedWidth\" in x2)\n return { x: x2.signedWidth, y: x2.signedHeight };\n if (\"clientX\" in x2)\n return { x: x2.clientX, y: x2.clientY };\n if (\"width\" in x2)\n return { x: x2.width, y: x2.height };\n return { ...x2 };\n};\nconst ZERO$2 = { x: 0, y: 0 };\nconst ONE = { x: 1, y: 1 };\nconst INFINITY = { x: Infinity, y: Infinity };\nconst NAN = { x: NaN, y: NaN };\nconst equals$2 = (a, b, threshold = 0) => {\n const a_ = construct$2(a);\n const b_ = construct$2(b);\n if (threshold === 0)\n return a_.x === b_.x && a_.y === b_.y;\n return Math.abs(a_.x - b_.x) <= threshold && Math.abs(a_.y - b_.y) <= threshold;\n};\nconst isZero$1 = (c) => equals$2(c, ZERO$2);\nconst scale$2 = (c, x2, y2 = x2) => {\n const p = construct$2(c);\n return { x: p.x * x2, y: p.y * y2 };\n};\nconst translateX = (c, x2) => {\n const p = construct$2(c);\n return { x: p.x + x2, y: p.y };\n};\nconst translateY = (c, y2) => {\n const p = construct$2(c);\n return { x: p.x, y: p.y + y2 };\n};\nconst translate = (a, b, v, ...cb) => {\n if (typeof b === \"string\" && typeof v === \"number\") {\n if (b === \"x\")\n return translateX(a, v);\n return translateY(a, v);\n }\n return [a, b, v ?? ZERO$2, ...cb].reduce((p, c) => {\n const xy2 = construct$2(c);\n return { x: p.x + xy2.x, y: p.y + xy2.y };\n }, ZERO$2);\n};\nconst set = (c, direction2, value) => {\n const xy2 = construct$2(c);\n if (direction2 === \"x\")\n return { x: value, y: xy2.y };\n return { x: xy2.x, y: value };\n};\nconst distance = (ca, cb) => {\n const a = construct$2(ca);\n const b = construct$2(cb);\n return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);\n};\nconst xDistance = (ca, cb) => {\n const a = construct$2(ca);\n const b = construct$2(cb);\n return Math.abs(a.x - b.x);\n};\nconst yDistance = (ca, cb) => {\n const a = construct$2(ca);\n const b = construct$2(cb);\n return Math.abs(a.y - b.y);\n};\nconst translation = (ca, cb) => {\n const a = construct$2(ca);\n const b = construct$2(cb);\n return { x: b.x - a.x, y: b.y - a.y };\n};\nconst isNan = (a) => {\n const xy2 = construct$2(a);\n return Number.isNaN(xy2.x) || Number.isNaN(xy2.y);\n};\nconst couple$1 = (a) => {\n const xy2 = construct$2(a);\n return [xy2.x, xy2.y];\n};\nconst css$1 = (a) => {\n const xy2 = construct$2(a);\n return { left: xy2.x, top: xy2.y };\n};\nconst xy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n INFINITY,\n NAN,\n ONE,\n ZERO: ZERO$2,\n clientXY,\n construct: construct$2,\n couple: couple$1,\n crudeZ,\n css: css$1,\n distance,\n equals: equals$2,\n isNan,\n isZero: isZero$1,\n scale: scale$2,\n set,\n translate,\n translateX,\n translateY,\n translation,\n xDistance,\n xy: xy$2,\n yDistance\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst cssPos = z.union([z.number(), z.string()]);\nz.object({\n top: cssPos,\n left: cssPos,\n width: cssPos,\n height: cssPos\n});\nz.object({\n left: z.number(),\n top: z.number(),\n right: z.number(),\n bottom: z.number()\n});\nconst box = z.object({\n one: xy$2,\n two: xy$2,\n root: corner\n});\nconst ZERO$1 = { one: ZERO$2, two: ZERO$2, root: TOP_LEFT };\nconst DECIMAL$1 = { one: ZERO$2, two: ONE, root: BOTTOM_LEFT };\nconst copy$1 = (b, root2) => ({\n one: b.one,\n two: b.two,\n root: root2 ?? b.root\n});\nconst construct$1 = (first, second, width2 = 0, height2 = 0, coordinateRoot) => {\n const b = {\n one: { ...ZERO$2 },\n two: { ...ZERO$2 },\n root: coordinateRoot ?? TOP_LEFT\n };\n if (typeof first === \"number\") {\n if (typeof second !== \"number\")\n throw new Error(\"Box constructor called with invalid arguments\");\n b.one = { x: first, y: second };\n b.two = { x: b.one.x + width2, y: b.one.y + height2 };\n return b;\n }\n if (\"one\" in first && \"two\" in first && \"root\" in first)\n return { ...first, root: coordinateRoot ?? first.root };\n if (\"getBoundingClientRect\" in first)\n first = first.getBoundingClientRect();\n if (\"left\" in first) {\n b.one = { x: first.left, y: first.top };\n b.two = { x: first.right, y: first.bottom };\n return b;\n }\n b.one = first;\n if (second == null)\n b.two = { x: b.one.x + width2, y: b.one.y + height2 };\n else if (typeof second === \"number\")\n b.two = { x: b.one.x + second, y: b.one.y + width2 };\n else if (\"width\" in second)\n b.two = {\n x: b.one.x + second.width,\n y: b.one.y + second.height\n };\n else if (\"signedWidth\" in second)\n b.two = {\n x: b.one.x + second.signedWidth,\n y: b.one.y + second.signedHeight\n };\n else\n b.two = second;\n return b;\n};\nconst contains = (b, value) => {\n const b_ = construct$1(b);\n if (\"one\" in value)\n return left(value) >= left(b_) && right(value) <= right(b_) && top(value) >= top(b_) && bottom(value) <= bottom(b_);\n return value.x >= left(b_) && value.x <= right(b_) && value.y >= top(b_) && value.y <= bottom(b_);\n};\nconst equals$1 = (a, b) => equals$2(a.one, b.one) && equals$2(a.two, b.two) && xyEquals(a.root, b.root);\nconst dims = (b) => ({\n width: width(b),\n height: height(b)\n});\nconst signedDims = (b) => ({\n signedWidth: signedWidth(b),\n signedHeight: signedHeight(b)\n});\nconst css = (b) => ({\n top: top(b),\n left: left(b),\n width: width(b),\n height: height(b)\n});\nconst dim = (b, dir, signed2 = false) => {\n const dim2 = construct$4(dir) === \"y\" ? signedHeight(b) : signedWidth(b);\n return signed2 ? dim2 : Math.abs(dim2);\n};\nconst xyLoc = (b, l) => {\n const b_ = construct$1(b);\n return {\n x: l.x === \"center\" ? center(b_).x : loc(b_, l.x),\n y: l.y === \"center\" ? center(b_).y : loc(b_, l.y)\n };\n};\nconst loc = (b, loc2) => {\n const b_ = construct$1(b);\n const f = xyCouple(b_.root).includes(loc2) ? Math.min : Math.max;\n return X_LOCATIONS.includes(loc2) ? f(b_.one.x, b_.two.x) : f(b_.one.y, b_.two.y);\n};\nconst locPoint = (b, loc_) => {\n const l = loc(b, loc_);\n if (X_LOCATIONS.includes(loc_))\n return { x: l, y: center(b).y };\n return { x: center(b).x, y: l };\n};\nconst isZero = (b) => {\n return b.one.x === b.two.x && b.one.y === b.two.y;\n};\nconst width = (b) => dim(b, \"x\");\nconst height = (b) => dim(b, \"y\");\nconst signedWidth = (b) => {\n const b_ = construct$1(b);\n return b_.two.x - b_.one.x;\n};\nconst signedHeight = (b) => {\n const b_ = construct$1(b);\n return b_.two.y - b_.one.y;\n};\nconst topLeft = (b) => xyLoc(b, TOP_LEFT);\nconst topRight = (b) => xyLoc(b, TOP_RIGHT);\nconst bottomLeft = (b) => xyLoc(b, BOTTOM_LEFT);\nconst bottomRight = (b) => xyLoc(b, BOTTOM_RIGHT);\nconst right = (b) => loc(b, \"right\");\nconst bottom = (b) => loc(b, \"bottom\");\nconst left = (b) => loc(b, \"left\");\nconst top = (b) => loc(b, \"top\");\nconst center = (b) => translate(topLeft(b), {\n x: signedWidth(b) / 2,\n y: signedHeight(b) / 2\n});\nconst x = (b) => {\n const b_ = construct$1(b);\n return b_.root.x === \"left\" ? left(b_) : right(b_);\n};\nconst y = (b) => {\n const b_ = construct$1(b);\n return b_.root.y === \"top\" ? top(b_) : bottom(b_);\n};\nconst root = (b) => ({ x: x(b), y: y(b) });\nconst xBounds = (b) => {\n const b_ = construct$1(b);\n return { lower: b_.one.x, upper: b_.two.x };\n};\nconst yBounds = (b) => {\n const b_ = construct$1(b);\n return { lower: b_.one.y, upper: b_.two.y };\n};\nconst reRoot = (b, corner2) => copy$1(b, corner2);\nconst positionSoVisible = (target_, bound_) => {\n const target2 = construct$1(target_);\n const bound = construct$1(bound_);\n if (contains(bound, target2))\n return [target2, false];\n let nextPos;\n if (right(target2) > width(target2))\n nextPos = construct$2({ x: x(target2) - width(target2), y: y(target2) });\n else\n nextPos = construct$2({ x: x(target2), y: y(target2) - height(target2) });\n return [construct$1(nextPos, dims(target2)), true];\n};\nconst positionInCenter = (target_, bound_) => {\n const target2 = construct$1(target_);\n const bound = construct$1(bound_);\n const x_ = x(bound) + (width(bound) - width(target2)) / 2;\n const y_ = y(bound) + (height(bound) - height(target2)) / 2;\n return construct$1({ x: x_, y: y_ }, dims(target2));\n};\nconst isBox = (value) => {\n if (typeof value !== \"object\" || value == null)\n return false;\n return \"one\" in value && \"two\" in value && \"root\" in value;\n};\nconst aspect = (b) => width(b) / height(b);\nconst box$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n DECIMAL: DECIMAL$1,\n ZERO: ZERO$1,\n aspect,\n bottom,\n bottomLeft,\n bottomRight,\n box,\n center,\n construct: construct$1,\n contains,\n copy: copy$1,\n css,\n dim,\n dims,\n equals: equals$1,\n height,\n isBox,\n isZero,\n left,\n loc,\n locPoint,\n positionInCenter,\n positionSoVisible,\n reRoot,\n right,\n root,\n signedDims,\n signedHeight,\n signedWidth,\n top,\n topLeft,\n topRight,\n width,\n x,\n xBounds,\n xyLoc,\n y,\n yBounds\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst signed = z.object({ signedWidth: z.number(), signedHeight: z.number() });\nconst crude = z.union([dimensions$1, signed, xy$2, numberCouple]);\nconst ZERO = { width: 0, height: 0 };\nconst DECIMAL = { width: 1, height: 1 };\nconst construct = (width2, height2) => {\n if (typeof width2 === \"number\")\n return { width: width2, height: height2 ?? width2 };\n if (Array.isArray(width2))\n return { width: width2[0], height: width2[1] };\n if (\"x\" in width2)\n return { width: width2.x, height: width2.y };\n if (\"signedWidth\" in width2)\n return { width: width2.signedWidth, height: width2.signedHeight };\n return { ...width2 };\n};\nconst equals = (ca, cb) => {\n if (cb == null)\n return false;\n const a = construct(ca);\n const b = construct(cb);\n return a.width === b.width && a.height === b.height;\n};\nconst swap = (ca) => {\n const a = construct(ca);\n return { width: a.height, height: a.width };\n};\nconst svgViewBox = (ca) => {\n const a = construct(ca);\n return `0 0 ${a.width} ${a.height}`;\n};\nconst couple = (ca) => {\n const a = construct(ca);\n return [a.width, a.height];\n};\nconst max = (crude2) => ({\n width: Math.max(...crude2.map((c) => construct(c).width)),\n height: Math.max(...crude2.map((c) => construct(c).height))\n});\nconst min = (crude2) => ({\n width: Math.min(...crude2.map((c) => construct(c).width)),\n height: Math.min(...crude2.map((c) => construct(c).height))\n});\nconst scale$1 = (ca, factor) => {\n const a = construct(ca);\n return { width: a.width * factor, height: a.height * factor };\n};\nconst dimensions = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n DECIMAL,\n ZERO,\n construct,\n couple,\n crude,\n dimensions: dimensions$1,\n equals,\n max,\n min,\n scale: scale$1,\n signed,\n svgViewBox,\n swap\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst clamp = (value, min2, max2) => {\n if (min2 != null)\n value = Math.max(value, min2);\n if (max2 != null)\n value = Math.min(value, max2);\n return value;\n};\nconst crudeXYTransform = z.object({ offset: crudeZ, scale: crudeZ });\nconst curriedTranslate = (translate2) => (currScale, type, v, reverse) => {\n if (type === \"dimension\")\n return [currScale, v];\n return [currScale, reverse ? v - translate2 : v + translate2];\n};\nconst curriedMagnify = (magnify) => (currScale, _type, v, reverse) => [currScale, reverse ? v / magnify : v * magnify];\nconst curriedScale = (bound) => (currScale, type, v) => {\n if (currScale === null)\n return [bound, v];\n const { lower: prevLower, upper: prevUpper } = currScale;\n const { lower: nextLower, upper: nextUpper } = bound;\n const prevRange = prevUpper - prevLower;\n const nextRange = nextUpper - nextLower;\n if (type === \"dimension\")\n return [bound, v * (nextRange / prevRange)];\n const nextV = (v - prevLower) * (nextRange / prevRange) + nextLower;\n return [bound, nextV];\n};\nconst curriedReBound = (bound) => (currScale, type, v) => [bound, v];\nconst curriedInvert = () => (currScale, type, v) => {\n if (currScale === null)\n throw new Error(\"cannot invert without bounds\");\n if (type === \"dimension\")\n return [currScale, v];\n const { lower, upper } = currScale;\n return [currScale, upper - (v - lower)];\n};\nconst curriedClamp = (bound) => (currScale, _, v) => {\n const { lower, upper } = bound;\n v = clamp(v, lower, upper);\n return [currScale, v];\n};\nconst _Scale = class _Scale {\n constructor() {\n __publicField(this, \"ops\", []);\n __publicField(this, \"currBounds\", null);\n __publicField(this, \"currType\", null);\n __publicField(this, \"reversed\", false);\n this.ops = [];\n }\n static translate(value) {\n return new _Scale().translate(value);\n }\n static magnify(value) {\n return new _Scale().magnify(value);\n }\n static scale(lowerOrBound, upper) {\n return new _Scale().scale(lowerOrBound, upper);\n }\n translate(value) {\n const next = this.new();\n const f = curriedTranslate(value);\n f.type = \"translate\";\n next.ops.push(f);\n return next;\n }\n magnify(value) {\n const next = this.new();\n const f = curriedMagnify(value);\n f.type = \"magnify\";\n next.ops.push(f);\n return next;\n }\n scale(lowerOrBound, upper) {\n const b = construct$5(lowerOrBound, upper);\n const next = this.new();\n const f = curriedScale(b);\n f.type = \"scale\";\n next.ops.push(f);\n return next;\n }\n clamp(lowerOrBound, upper) {\n const b = construct$5(lowerOrBound, upper);\n const next = this.new();\n const f = curriedClamp(b);\n f.type = \"clamp\";\n next.ops.push(f);\n return next;\n }\n reBound(lowerOrBound, upper) {\n const b = construct$5(lowerOrBound, upper);\n const next = this.new();\n const f = curriedReBound(b);\n f.type = \"re-bound\";\n next.ops.push(f);\n return next;\n }\n invert() {\n const f = curriedInvert();\n f.type = \"invert\";\n const next = this.new();\n next.ops.push(f);\n return next;\n }\n pos(v) {\n return this.exec(\"position\", v);\n }\n dim(v) {\n return this.exec(\"dimension\", v);\n }\n new() {\n const scale2 = new _Scale();\n scale2.ops = this.ops.slice();\n scale2.reversed = this.reversed;\n return scale2;\n }\n exec(vt, v) {\n this.currBounds = null;\n return this.ops.reduce(\n ([b, v2], op) => op(b, vt, v2, this.reversed),\n [null, v]\n )[1];\n }\n reverse() {\n const scale2 = this.new();\n scale2.ops.reverse();\n const swaps = [];\n scale2.ops.forEach((op, i) => {\n if (op.type === \"scale\" || swaps.some(([low, high]) => i >= low && i <= high))\n return;\n const nextScale = scale2.ops.findIndex((op2, j) => op2.type === \"scale\" && j > i);\n if (nextScale === -1)\n return;\n swaps.push([i, nextScale]);\n });\n swaps.forEach(([low, high]) => {\n const s = scale2.ops.slice(low, high);\n s.unshift(scale2.ops[high]);\n scale2.ops.splice(low, high - low + 1, ...s);\n });\n scale2.reversed = !scale2.reversed;\n return scale2;\n }\n};\n__publicField(_Scale, \"IDENTITY\", new _Scale());\nlet Scale = _Scale;\nconst xyScaleToTransform = (scale2) => ({\n scale: {\n x: scale2.x.dim(1),\n y: scale2.y.dim(1)\n },\n offset: {\n x: scale2.x.pos(0),\n y: scale2.y.pos(0)\n }\n});\nconst _XY = class _XY {\n constructor(x2 = new Scale(), y2 = new Scale(), root2 = null) {\n __publicField(this, \"x\");\n __publicField(this, \"y\");\n __publicField(this, \"currRoot\");\n this.x = x2;\n this.y = y2;\n this.currRoot = root2;\n }\n static translate(xy2, y2) {\n return new _XY().translate(xy2, y2);\n }\n static translateX(x2) {\n return new _XY().translateX(x2);\n }\n static translateY(y2) {\n return new _XY().translateY(y2);\n }\n static clamp(box2) {\n return new _XY().clamp(box2);\n }\n static magnify(xy2) {\n return new _XY().magnify(xy2);\n }\n static scale(box2) {\n return new _XY().scale(box2);\n }\n static reBound(box2) {\n return new _XY().reBound(box2);\n }\n translate(cp, y2) {\n const _xy = construct$2(cp, y2);\n const next = this.copy();\n next.x = this.x.translate(_xy.x);\n next.y = this.y.translate(_xy.y);\n return next;\n }\n translateX(x2) {\n const next = this.copy();\n next.x = this.x.translate(x2);\n return next;\n }\n translateY(y2) {\n const next = this.copy();\n next.y = this.y.translate(y2);\n return next;\n }\n magnify(xy2) {\n const next = this.copy();\n next.x = this.x.magnify(xy2.x);\n next.y = this.y.magnify(xy2.y);\n return next;\n }\n scale(b) {\n const next = this.copy();\n if (isBox(b)) {\n const prevRoot = this.currRoot;\n next.currRoot = b.root;\n if (prevRoot != null && !xyEquals(prevRoot, b.root)) {\n if (prevRoot.x !== b.root.x)\n next.x = next.x.invert();\n if (prevRoot.y !== b.root.y)\n next.y = next.y.invert();\n }\n next.x = next.x.scale(xBounds(b));\n next.y = next.y.scale(yBounds(b));\n return next;\n }\n next.x = next.x.scale(b.width);\n next.y = next.y.scale(b.height);\n return next;\n }\n reBound(b) {\n const next = this.copy();\n next.x = this.x.reBound(xBounds(b));\n next.y = this.y.reBound(yBounds(b));\n return next;\n }\n clamp(b) {\n const next = this.copy();\n next.x = this.x.clamp(xBounds(b));\n next.y = this.y.clamp(yBounds(b));\n return next;\n }\n copy() {\n const n = new _XY();\n n.currRoot = this.currRoot;\n n.x = this.x;\n n.y = this.y;\n return n;\n }\n reverse() {\n const next = this.copy();\n next.x = this.x.reverse();\n next.y = this.y.reverse();\n return next;\n }\n pos(xy2) {\n return { x: this.x.pos(xy2.x), y: this.y.pos(xy2.y) };\n }\n box(b) {\n return construct$1(\n this.pos(b.one),\n this.pos(b.two),\n 0,\n 0,\n this.currRoot ?? b.root\n );\n }\n};\n__publicField(_XY, \"IDENTITY\", new _XY());\nlet XY = _XY;\nconst scale = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Scale,\n XY,\n crudeXYTransform,\n xyScaleToTransform\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst spatial = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ALIGNMENTS,\n ORDERS,\n alignment,\n order\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst remainder = (value, divisor) => {\n const ts = new TimeStamp(divisor);\n if (![\n TimeSpan.DAY,\n TimeSpan.HOUR,\n TimeSpan.MINUTE,\n TimeSpan.SECOND,\n TimeSpan.MILLISECOND,\n TimeSpan.MICROSECOND,\n TimeSpan.NANOSECOND\n ].some((s) => s.equals(ts))) {\n throw new Error(\n \"Invalid argument for remainder. Must be an even TimeSpan or Timestamp\"\n );\n }\n const v = value.valueOf() % ts.valueOf();\n return value instanceof TimeStamp ? new TimeStamp(v) : new TimeSpan(v);\n};\nconst _TimeStamp = class _TimeStamp extends Number {\n constructor(value, tzInfo = \"UTC\") {\n if (value == null)\n return _TimeStamp.now();\n else if (value instanceof Date)\n super(value.getTime() * _TimeStamp.MILLISECOND.valueOf());\n else if (typeof value === \"string\")\n super(_TimeStamp.parseDateTimeString(value, tzInfo).valueOf());\n else if (Array.isArray(value))\n super(_TimeStamp.parseDate(value));\n else {\n let offset = 0;\n if (value instanceof Number)\n value = value.valueOf();\n if (tzInfo === \"local\")\n offset = _TimeStamp.utcOffset.valueOf();\n super(value.valueOf() + offset);\n }\n }\n static parseDate([year = 1970, month = 1, day = 1]) {\n const date = new Date(year, month - 1, day, 0, 0, 0, 0);\n return new _TimeStamp(date.getTime() * _TimeStamp.MILLISECOND.valueOf()).truncate(_TimeStamp.DAY).valueOf();\n }\n static parseTimeString(time, tzInfo = \"UTC\") {\n const [hours, minutes, mbeSeconds] = time.split(\":\");\n let seconds = \"00\";\n let milliseconds = \"00\";\n if (mbeSeconds != null)\n [seconds, milliseconds] = mbeSeconds.split(\".\");\n let base = _TimeStamp.hours(parseInt(hours ?? \"00\", 10)).add(_TimeStamp.minutes(parseInt(minutes ?? \"00\", 10))).add(_TimeStamp.seconds(parseInt(seconds ?? \"00\", 10))).add(_TimeStamp.milliseconds(parseInt(milliseconds ?? \"00\", 10)));\n if (tzInfo === \"local\")\n base = base.add(_TimeStamp.utcOffset);\n return base.valueOf();\n }\n static parseDateTimeString(str, tzInfo = \"UTC\") {\n if (!str.includes(\"/\") && !str.includes(\"-\"))\n return _TimeStamp.parseTimeString(str, tzInfo);\n const d = new Date(str);\n if (!str.includes(\":\"))\n d.setUTCHours(0, 0, 0, 0);\n return new _TimeStamp(\n d.getTime() * _TimeStamp.MILLISECOND.valueOf(),\n tzInfo\n ).valueOf();\n }\n fString(format = \"ISO\", tzInfo = \"UTC\") {\n switch (format) {\n case \"ISODate\":\n return this.toISOString(tzInfo).slice(0, 10);\n case \"ISOTime\":\n return this.toISOString(tzInfo).slice(11, 23);\n case \"time\":\n return this.timeString(false, tzInfo);\n case \"preciseTime\":\n return this.timeString(true, tzInfo);\n case \"date\":\n return this.dateString(tzInfo);\n case \"preciseDate\":\n return `${this.dateString(tzInfo)} ${this.timeString(true, tzInfo)}`;\n case \"dateTime\":\n return `${this.dateString(tzInfo)} ${this.timeString(false, tzInfo)}`;\n default:\n return this.toISOString(tzInfo);\n }\n }\n toISOString(tzInfo = \"UTC\") {\n if (tzInfo === \"UTC\")\n return this.date().toISOString();\n return this.sub(_TimeStamp.utcOffset).date().toISOString();\n }\n timeString(milliseconds = false, tzInfo = \"UTC\") {\n const iso = this.toISOString(tzInfo);\n return milliseconds ? iso.slice(11, 23) : iso.slice(11, 19);\n }\n dateString(tzInfo = \"UTC\") {\n const date = this.date();\n const month = date.toLocaleString(\"default\", { month: \"short\" });\n const day = date.toLocaleString(\"default\", { day: \"numeric\" });\n return `${month} ${day}`;\n }\n static get utcOffset() {\n return new TimeSpan((/* @__PURE__ */ new Date()).getTimezoneOffset() * _TimeStamp.MINUTE.valueOf());\n }\n /**\n * @returns a TimeSpan representing the amount time elapsed since\n * the other timestamp.\n * @param other - The other timestamp.\n */\n static since(other) {\n return new _TimeStamp().span(other);\n }\n /** @returns A JavaScript Date object representing the TimeStamp. */\n date() {\n return new Date(this.milliseconds());\n }\n /**\n * Checks if the TimeStamp is equal to another TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamps are equal, false otherwise.\n */\n equals(other) {\n return this.valueOf() === new _TimeStamp(other).valueOf();\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeSpan representing the duration between the two timestamps.\n * The span is guaranteed to be positive.\n */\n span(other) {\n return this.range(other).span;\n }\n /**\n * Creates a TimeRange spanning the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns A TimeRange spanning the given TimeStamp that is guaranteed to be\n * valid, regardless of the TimeStamp order.\n */\n range(other) {\n return new TimeRange(this, other).makeValid();\n }\n /**\n * Creates a TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan.\n *\n * @param other - The TimeSpan to span.\n * @returns A TimeRange starting at the TimeStamp and spanning the given\n * TimeSpan. The TimeRange is guaranteed to be valid.\n */\n spanRange(other) {\n return this.range(this.add(other)).makeValid();\n }\n /**\n * Checks if the TimeStamp represents the unix epoch.\n *\n * @returns True if the TimeStamp represents the unix epoch, false otherwise.\n */\n get isZero() {\n return this.valueOf() === 0;\n }\n /**\n * Checks if the TimeStamp is after the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after the given TimeStamp, false\n * otherwise.\n */\n after(other) {\n return this.valueOf() > new _TimeStamp(other).valueOf();\n }\n /**\n * Checks if the TimeStamp is after or equal to the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is after or equal to the given TimeStamp,\n * false otherwise.\n */\n afterEq(other) {\n return this.valueOf() >= new _TimeStamp(other).valueOf();\n }\n /**\n * Checks if the TimeStamp is before the given TimeStamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if the TimeStamp is before the given TimeStamp, false\n * otherwise.\n */\n before(other) {\n return this.valueOf() < new _TimeStamp(other).valueOf();\n }\n /**\n * Checks if TimeStamp is before or equal to the current timestamp.\n *\n * @param other - The other TimeStamp to compare to.\n * @returns True if TimeStamp is before or equal to the current timestamp,\n * false otherwise.\n */\n beforeEq(other) {\n return this.valueOf() <= new _TimeStamp(other).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeStamp.\n *\n * @param span - The TimeSpan to add.\n * @returns A new TimeStamp representing the sum of the TimeStamp and\n * TimeSpan.\n */\n add(span2) {\n return new _TimeStamp(this.valueOf() + span2.valueOf());\n }\n /**\n * Subtracts a TimeSpan from the TimeStamp.\n *\n * @param span - The TimeSpan to subtract.\n * @returns A new TimeStamp representing the difference of the TimeStamp and\n * TimeSpan.\n */\n sub(span2) {\n return new _TimeStamp(this.valueOf() - span2.valueOf());\n }\n /**\n * @returns The number of milliseconds since the unix epoch.\n */\n milliseconds() {\n return this.valueOf() / _TimeStamp.MILLISECOND.valueOf();\n }\n toString() {\n return this.date().toISOString();\n }\n /**\n * @returns A new TimeStamp that is the remainder of the TimeStamp divided by the\n * given span. This is useful in cases where you want only part of a TimeStamp's value\n * i.e. the hours, minutes, seconds, milliseconds, microseconds, and nanoseconds but\n * not the days, years, etc.\n *\n * @param divisor - The TimeSpan to divide by. Must be an even TimeSpan or TimeStamp. Even\n * means it must be a day, hour, minute, second, millisecond, or microsecond, etc.\n *\n * @example TimeStamp.now().remainder(TimeStamp.DAY) // => TimeStamp representing the current day\n */\n remainder(divisor) {\n return remainder(this, divisor);\n }\n /** @returns true if the day portion TimeStamp is today, false otherwise. */\n get isToday() {\n return this.truncate(TimeSpan.DAY).equals(_TimeStamp.now().truncate(TimeSpan.DAY));\n }\n truncate(span2) {\n return this.sub(this.remainder(span2));\n }\n /**\n * @returns A new TimeStamp representing the current time in UTC. It's important to\n * note that this TimeStamp is only accurate to the millisecond level (that's the best\n * JavaScript can do).\n */\n static now() {\n return new _TimeStamp(/* @__PURE__ */ new Date());\n }\n /** @returns a new TimeStamp n nanoseconds after the unix epoch */\n static nanoseconds(value) {\n return new _TimeStamp(value);\n }\n /** @returns a new TimeStamp n microseconds after the unix epoch */\n static microseconds(value) {\n return _TimeStamp.nanoseconds(value * 1e3);\n }\n /** @returns a new TimeStamp n milliseconds after the unix epoch */\n static milliseconds(value) {\n return _TimeStamp.microseconds(value * 1e3);\n }\n /** @returns a new TimeStamp n seconds after the unix epoch */\n static seconds(value) {\n return _TimeStamp.milliseconds(value * 1e3);\n }\n /** @returns a new TimeStamp n minutes after the unix epoch */\n static minutes(value) {\n return _TimeStamp.seconds(value * 60);\n }\n /** @returns a new TimeStamp n hours after the unix epoch */\n static hours(value) {\n return _TimeStamp.minutes(value * 60);\n }\n /** @returns a new TimeStamp n days after the unix epoch */\n static days(value) {\n return _TimeStamp.hours(value * 24);\n }\n};\n/* One nanosecond after the unix epoch */\n__publicField(_TimeStamp, \"NANOSECOND\", _TimeStamp.nanoseconds(1));\n/** One microsecond after the unix epoch */\n__publicField(_TimeStamp, \"MICROSECOND\", _TimeStamp.microseconds(1));\n/** One millisecond after the unix epoch */\n__publicField(_TimeStamp, \"MILLISECOND\", _TimeStamp.milliseconds(1));\n/** One second after the unix epoch */\n__publicField(_TimeStamp, \"SECOND\", _TimeStamp.seconds(1));\n/** One minute after the unix epoch */\n__publicField(_TimeStamp, \"MINUTE\", _TimeStamp.minutes(1));\n/** One hour after the unix epoch */\n__publicField(_TimeStamp, \"HOUR\", _TimeStamp.hours(1));\n/** One day after the unix epoch */\n__publicField(_TimeStamp, \"DAY\", _TimeStamp.days(1));\n/** The maximum possible value for a timestamp */\n__publicField(_TimeStamp, \"MAX\", new _TimeStamp(9122272036554776e3));\n/** The minimum possible value for a timestamp */\n__publicField(_TimeStamp, \"MIN\", new _TimeStamp(0));\n/** The unix epoch */\n__publicField(_TimeStamp, \"ZERO\", new _TimeStamp(0));\n/** A zod schema for validating timestamps */\n__publicField(_TimeStamp, \"z\", z.union([\n z.instanceof(Number).transform((n) => new _TimeStamp(n)),\n z.number().transform((n) => new _TimeStamp(n)),\n z.instanceof(_TimeStamp)\n]));\nlet TimeStamp = _TimeStamp;\nconst _TimeSpan = class _TimeSpan extends Number {\n constructor(value) {\n if (value instanceof Number)\n super(value.valueOf());\n else\n super(value);\n }\n remainder(divisor) {\n return remainder(this, divisor);\n }\n truncate(span2) {\n return new _TimeSpan(Math.trunc(this.valueOf() / span2.valueOf()) * span2.valueOf());\n }\n toString() {\n const totalDays = this.truncate(_TimeSpan.DAY);\n const totalHours = this.truncate(_TimeSpan.HOUR);\n const totalMinutes = this.truncate(_TimeSpan.MINUTE);\n const totalSeconds = this.truncate(_TimeSpan.SECOND);\n const totalMilliseconds = this.truncate(_TimeSpan.MILLISECOND);\n const totalMicroseconds = this.truncate(_TimeSpan.MICROSECOND);\n const totalNanoseconds = this.truncate(_TimeSpan.NANOSECOND);\n const days = totalDays;\n const hours = totalHours.sub(totalDays);\n const minutes = totalMinutes.sub(totalHours);\n const seconds = totalSeconds.sub(totalMinutes);\n const milliseconds = totalMilliseconds.sub(totalSeconds);\n const microseconds = totalMicroseconds.sub(totalMilliseconds);\n const nanoseconds = totalNanoseconds.sub(totalMicroseconds);\n let str = \"\";\n if (!days.isZero)\n str += `${days.days}d `;\n if (!hours.isZero)\n str += `${hours.hours}h `;\n if (!minutes.isZero)\n str += `${minutes.minutes}m `;\n if (!seconds.isZero)\n str += `${seconds.seconds}s `;\n if (!milliseconds.isZero)\n str += `${milliseconds.milliseconds}ms `;\n if (!microseconds.isZero)\n str += `${microseconds.microseconds}µs `;\n if (!nanoseconds.isZero)\n str += `${nanoseconds.nanoseconds}ns`;\n return str.trim();\n }\n /** @returns the decimal number of days in the timespan */\n get days() {\n return this.valueOf() / _TimeSpan.DAY.valueOf();\n }\n /** @returns the decimal number of hours in the timespan */\n get hours() {\n return this.valueOf() / _TimeSpan.HOUR.valueOf();\n }\n /** @returns the decimal number of minutes in the timespan */\n get minutes() {\n return this.valueOf() / _TimeSpan.MINUTE.valueOf();\n }\n /** @returns The number of seconds in the TimeSpan. */\n get seconds() {\n return this.valueOf() / _TimeSpan.SECOND.valueOf();\n }\n /** @returns The number of milliseconds in the TimeSpan. */\n get milliseconds() {\n return this.valueOf() / _TimeSpan.MILLISECOND.valueOf();\n }\n get microseconds() {\n return this.valueOf() / _TimeSpan.MICROSECOND.valueOf();\n }\n get nanoseconds() {\n return this.valueOf();\n }\n /**\n * Checks if the TimeSpan represents a zero duration.\n *\n * @returns True if the TimeSpan represents a zero duration, false otherwise.\n */\n get isZero() {\n return this.valueOf() === 0;\n }\n /**\n * Checks if the TimeSpan is equal to another TimeSpan.\n *\n * @returns True if the TimeSpans are equal, false otherwise.\n */\n equals(other) {\n return this.valueOf() === new _TimeSpan(other).valueOf();\n }\n /**\n * Adds a TimeSpan to the TimeSpan.\n *\n * @returns A new TimeSpan representing the sum of the two TimeSpans.\n */\n add(other) {\n return new _TimeSpan(this.valueOf() + new _TimeSpan(other).valueOf());\n }\n /**\n * Creates a TimeSpan representing the duration between the two timestamps.\n *\n * @param other\n */\n sub(other) {\n return new _TimeSpan(this.valueOf() - new _TimeSpan(other).valueOf());\n }\n /**\n * Creates a TimeSpan representing the given number of nanoseconds.\n *\n * @param value - The number of nanoseconds.\n * @returns A TimeSpan representing the given number of nanoseconds.\n */\n static nanoseconds(value = 1) {\n return new _TimeSpan(value);\n }\n /**\n * Creates a TimeSpan representing the given number of microseconds.\n *\n * @param value - The number of microseconds.\n * @returns A TimeSpan representing the given number of microseconds.\n */\n static microseconds(value = 1) {\n return _TimeSpan.nanoseconds(value * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of milliseconds.\n *\n * @param value - The number of milliseconds.\n * @returns A TimeSpan representing the given number of milliseconds.\n */\n static milliseconds(value = 1) {\n return _TimeSpan.microseconds(value * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of seconds.\n *\n * @param value - The number of seconds.\n * @returns A TimeSpan representing the given number of seconds.\n */\n static seconds(value = 1) {\n return _TimeSpan.milliseconds(value * 1e3);\n }\n /**\n * Creates a TimeSpan representing the given number of minutes.\n *\n * @param value - The number of minutes.\n * @returns A TimeSpan representing the given number of minutes.\n */\n static minutes(value) {\n return _TimeSpan.seconds(value.valueOf() * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of hours.\n *\n * @param value - The number of hours.\n * @returns A TimeSpan representing the given number of hours.\n */\n static hours(value) {\n return _TimeSpan.minutes(value * 60);\n }\n /**\n * Creates a TimeSpan representing the given number of days.\n *\n * @param value - The number of days.\n * @returns A TimeSpan representing the given number of days.\n */\n static days(value) {\n return _TimeSpan.hours(value * 24);\n }\n};\n/** A nanosecond. */\n__publicField(_TimeSpan, \"NANOSECOND\", _TimeSpan.nanoseconds(1));\n/** A microsecond. */\n__publicField(_TimeSpan, \"MICROSECOND\", _TimeSpan.microseconds(1));\n/** A millisecond. */\n__publicField(_TimeSpan, \"MILLISECOND\", _TimeSpan.milliseconds(1));\n/** A second. */\n__publicField(_TimeSpan, \"SECOND\", _TimeSpan.seconds(1));\n/** A minute. */\n__publicField(_TimeSpan, \"MINUTE\", _TimeSpan.minutes(1));\n/** Represents an hour. */\n__publicField(_TimeSpan, \"HOUR\", _TimeSpan.hours(1));\n/** Represents a day. */\n__publicField(_TimeSpan, \"DAY\", _TimeSpan.days(1));\n/** The maximum possible value for a TimeSpan. */\n__publicField(_TimeSpan, \"MAX\", new _TimeSpan(_TimeSpan.MAX_SAFE_INTEGER));\n/** The minimum possible value for a TimeSpan. */\n__publicField(_TimeSpan, \"MIN\", new _TimeSpan(-_TimeSpan.MAX_SAFE_INTEGER));\n/** The zero value for a TimeSpan. */\n__publicField(_TimeSpan, \"ZERO\", new _TimeSpan(0));\n/** A zod schema for validating and transforming timespans */\n__publicField(_TimeSpan, \"z\", z.union([\n z.instanceof(Number).transform((n) => new _TimeSpan(n)),\n z.number().transform((n) => new _TimeSpan(n)),\n z.instanceof(_TimeSpan)\n]));\nlet TimeSpan = _TimeSpan;\nconst _Rate = class _Rate extends Number {\n constructor(value) {\n if (value instanceof Number)\n super(value.valueOf());\n else\n super(value);\n }\n /** @returns a pretty string representation of the rate in the format \"X Hz\". */\n toString() {\n return `${this.valueOf()} Hz`;\n }\n /** @returns The number of seconds in the Rate. */\n equals(other) {\n return this.valueOf() === new _Rate(other).valueOf();\n }\n /**\n * Calculates the period of the Rate as a TimeSpan.\n *\n * @returns A TimeSpan representing the period of the Rate.\n */\n get period() {\n return TimeSpan.seconds(1 / this.valueOf());\n }\n /**\n * Calculates the number of samples in the given TimeSpan at this rate.\n *\n * @param duration - The duration to calculate the sample count from.\n * @returns The number of samples in the given TimeSpan at this rate.\n */\n sampleCount(duration) {\n return new TimeSpan(duration).seconds * this.valueOf();\n }\n /**\n * Calculates the number of bytes in the given TimeSpan at this rate.\n *\n * @param span - The duration to calculate the byte count from.\n * @param density - The density of the data in bytes per sample.\n * @returns The number of bytes in the given TimeSpan at this rate.\n */\n byteCount(span2, density) {\n return this.sampleCount(span2) * new Density(density).valueOf();\n }\n /**\n * Calculates a TimeSpan given the number of samples at this rate.\n *\n * @param sampleCount - The number of samples in the span.\n * @returns A TimeSpan that corresponds to the given number of samples.\n */\n span(sampleCount) {\n return TimeSpan.seconds(sampleCount / this.valueOf());\n }\n /**\n * Calculates a TimeSpan given the number of bytes at this rate.\n *\n * @param size - The number of bytes in the span.\n * @param density - The density of the data in bytes per sample.\n * @returns A TimeSpan that corresponds to the given number of bytes.\n */\n byteSpan(size, density) {\n return this.span(size.valueOf() / density.valueOf());\n }\n /**\n * Creates a Rate representing the given number of Hz.\n *\n * @param value - The number of Hz.\n * @returns A Rate representing the given number of Hz.\n */\n static hz(value) {\n return new _Rate(value);\n }\n /**\n * Creates a Rate representing the given number of kHz.\n *\n * @param value - The number of kHz.\n * @returns A Rate representing the given number of kHz.\n */\n static khz(value) {\n return _Rate.hz(value * 1e3);\n }\n};\n/** A zod schema for validating and transforming rates */\n__publicField(_Rate, \"z\", z.union([\n z.number().transform((n) => new _Rate(n)),\n z.instanceof(Number).transform((n) => new _Rate(n)),\n z.instanceof(_Rate)\n]));\nlet Rate = _Rate;\nconst _Density = class _Density extends Number {\n /**\n * Creates a Density representing the given number of bytes per value.\n *\n * @class\n * @param value - The number of bytes per value.\n * @returns A Density representing the given number of bytes per value.\n */\n constructor(value) {\n if (value instanceof Number)\n super(value.valueOf());\n else\n super(value);\n }\n length(size) {\n return size.valueOf() / this.valueOf();\n }\n size(sampleCount) {\n return new Size(sampleCount * this.valueOf());\n }\n};\n/** Unknown/Invalid Density. */\n__publicField(_Density, \"UNKNOWN\", new _Density(0));\n/** 128 bits per value. */\n__publicField(_Density, \"BIT128\", new _Density(16));\n/** 64 bits per value. */\n__publicField(_Density, \"BIT64\", new _Density(8));\n/** 32 bits per value. */\n__publicField(_Density, \"BIT32\", new _Density(4));\n/** 16 bits per value. */\n__publicField(_Density, \"BIT16\", new _Density(2));\n/** 8 bits per value. */\n__publicField(_Density, \"BIT8\", new _Density(1));\n/** A zod schema for validating and transforming densities */\n__publicField(_Density, \"z\", z.union([\n z.number().transform((n) => new _Density(n)),\n z.instanceof(Number).transform((n) => new _Density(n)),\n z.instanceof(_Density)\n]));\nlet Density = _Density;\nconst _TimeRange = class _TimeRange {\n /**\n * Creates a TimeRange from the given start and end TimeStamps.\n *\n * @param start - A TimeStamp representing the start of the range.\n * @param end - A TimeStamp representing the end of the range.\n */\n constructor(start, end) {\n /**\n * The starting TimeStamp of the TimeRange.\n *\n * Note that this value is not guaranteed to be before or equal to the ending value.\n * To ensure that this is the case, call TimeRange.make_valid().\n *\n * In most cases, operations should treat start as inclusive.\n */\n __publicField(this, \"start\");\n /**\n * The starting TimeStamp of the TimeRange.\n *\n * Note that this value is not guaranteed to be before or equal to the ending value.\n * To ensure that this is the case, call TimeRange.make_valid().\n *\n * In most cases, operations should treat end as exclusive.\n */\n __publicField(this, \"end\");\n this.start = new TimeStamp(start);\n this.end = new TimeStamp(end);\n }\n /** @returns The TimeSpan occupied by the TimeRange. */\n get span() {\n return new TimeSpan(this.end.valueOf() - this.start.valueOf());\n }\n /**\n * Checks if the timestamp is valid i.e. the start is before the end.\n *\n * @returns True if the TimeRange is valid.\n */\n get isValid() {\n return this.start.valueOf() <= this.end.valueOf();\n }\n /**\n * Makes sure the TimeRange is valid i.e. the start is before the end.\n *\n * @returns A TimeRange that is valid.\n */\n makeValid() {\n return this.isValid ? this : this.swap();\n }\n /**\n * Checks if the TimeRange has a zero span.\n *\n * @returns True if the TimeRange has a zero span.\n */\n get isZero() {\n return this.span.isZero;\n }\n /**\n * Creates a new TimeRange with the start and end swapped.\n *\n * @returns A TimeRange with the start and end swapped.\n */\n swap() {\n return new _TimeRange(this.end, this.start);\n }\n /**\n * Checks if the TimeRange is equal to the given TimeRange.\n *\n * @param other - The TimeRange to compare to.\n * @returns True if the TimeRange is equal to the given TimeRange.\n */\n equals(other) {\n return this.start.equals(other.start) && this.end.equals(other.end);\n }\n toString() {\n return `${this.start.toString()} - ${this.end.toString()}`;\n }\n toPrettyString() {\n return `${this.start.fString(\"preciseDate\")} - ${this.span.toString()}`;\n }\n overlapsWith(other) {\n other = other.makeValid();\n const rng = this.makeValid();\n if (other.start.equals(rng.start))\n return true;\n if (other.end.equals(this.start) || other.start.equals(this.end))\n return false;\n return this.contains(other.end) || this.contains(other.start) || other.contains(this.start) || other.contains(this.end);\n }\n contains(other) {\n if (other instanceof _TimeRange)\n return this.contains(other.start) && this.contains(other.end);\n return this.start.beforeEq(other) && this.end.after(other);\n }\n};\n/** The maximum possible time range. */\n__publicField(_TimeRange, \"MAX\", new _TimeRange(TimeStamp.MIN, TimeStamp.MAX));\n/** The minimum possible time range. */\n__publicField(_TimeRange, \"MIN\", new _TimeRange(TimeStamp.MAX, TimeStamp.MIN));\n/** A zero time range. */\n__publicField(_TimeRange, \"ZERO\", new _TimeRange(TimeStamp.ZERO, TimeStamp.ZERO));\n/** A zod schema for validating and transforming time ranges */\n__publicField(_TimeRange, \"z\", z.union([\n z.object({ start: TimeStamp.z, end: TimeStamp.z }).transform((v) => new _TimeRange(v.start, v.end)),\n z.instanceof(_TimeRange)\n]));\nlet TimeRange = _TimeRange;\nconst _DataType = class _DataType extends String {\n constructor(value) {\n if (value instanceof _DataType || typeof value === \"string\" || typeof value.valueOf() === \"string\") {\n super(value.valueOf());\n return;\n } else {\n const t = _DataType.ARRAY_CONSTRUCTOR_DATA_TYPES.get(value.constructor.name);\n if (t != null) {\n super(t.valueOf());\n return;\n }\n }\n super(_DataType.UNKNOWN.valueOf());\n throw new Error(`unable to find data type for ${value.toString()}`);\n }\n /**\n * @returns the TypedArray constructor for the DataType.\n */\n get Array() {\n const v = _DataType.ARRAY_CONSTRUCTORS.get(this.toString());\n if (v == null)\n throw new Error(`unable to find array constructor for ${this.valueOf()}`);\n return v;\n }\n equals(other) {\n return this.valueOf() === other.valueOf();\n }\n /** @returns a string representation of the DataType. */\n toString() {\n return this.valueOf();\n }\n get density() {\n const v = _DataType.DENSITIES.get(this.toString());\n if (v == null)\n throw new Error(`unable to find density for ${this.valueOf()}`);\n return v;\n }\n /**\n * Checks whether the given TypedArray is of the same type as the DataType.\n *\n * @param array - The TypedArray to check.\n * @returns True if the TypedArray is of the same type as the DataType.\n */\n checkArray(array) {\n return array.constructor === this.Array;\n }\n toJSON() {\n return this.toString();\n }\n get usesBigInt() {\n return _DataType.BIG_INT_TYPES.some((t) => t.equals(this));\n }\n};\n/** Represents an Unknown/Invalid DataType. */\n__publicField(_DataType, \"UNKNOWN\", new _DataType(\"unknown\"));\n/** Represents a 64-bit floating point value. */\n__publicField(_DataType, \"FLOAT64\", new _DataType(\"float64\"));\n/** Represents a 32-bit floating point value. */\n__publicField(_DataType, \"FLOAT32\", new _DataType(\"float32\"));\n/** Represents a 64-bit signed integer value. */\n__publicField(_DataType, \"INT64\", new _DataType(\"int64\"));\n/** Represents a 32-bit signed integer value. */\n__publicField(_DataType, \"INT32\", new _DataType(\"int32\"));\n/** Represents a 16-bit signed integer value. */\n__publicField(_DataType, \"INT16\", new _DataType(\"int16\"));\n/** Represents a 8-bit signed integer value. */\n__publicField(_DataType, \"INT8\", new _DataType(\"int8\"));\n/** Represents a 64-bit unsigned integer value. */\n__publicField(_DataType, \"UINT64\", new _DataType(\"uint64\"));\n/** Represents a 32-bit unsigned integer value. */\n__publicField(_DataType, \"UINT32\", new _DataType(\"uint32\"));\n/** Represents a 16-bit unsigned integer value. */\n__publicField(_DataType, \"UINT16\", new _DataType(\"uint16\"));\n/** Represents a 8-bit unsigned integer value. */\n__publicField(_DataType, \"UINT8\", new _DataType(\"uint8\"));\n/** Represents a 64-bit unix epoch. */\n__publicField(_DataType, \"TIMESTAMP\", new _DataType(\"timestamp\"));\n/** Represents a UUID data type */\n__publicField(_DataType, \"UUID\", new _DataType(\"uuid\"));\n/** Represents a string data type. Strings have an unknown density, and are separate\n * by a newline character. */\n__publicField(_DataType, \"STRING\", new _DataType(\"string\"));\n/** Represents a JSON data type. JSON has an unknown density, and is separated by a\n * newline character. */\n__publicField(_DataType, \"JSON\", new _DataType(\"json\"));\n__publicField(_DataType, \"ARRAY_CONSTRUCTORS\", /* @__PURE__ */ new Map([\n [_DataType.UINT8.toString(), Uint8Array],\n [_DataType.UINT16.toString(), Uint16Array],\n [_DataType.UINT32.toString(), Uint32Array],\n [_DataType.UINT64.toString(), BigUint64Array],\n [_DataType.FLOAT32.toString(), Float32Array],\n [_DataType.FLOAT64.toString(), Float64Array],\n [_DataType.INT8.toString(), Int8Array],\n [_DataType.INT16.toString(), Int16Array],\n [_DataType.INT32.toString(), Int32Array],\n [_DataType.INT64.toString(), BigInt64Array],\n [_DataType.TIMESTAMP.toString(), BigInt64Array],\n [_DataType.STRING.toString(), Uint8Array],\n [_DataType.JSON.toString(), Uint8Array],\n [_DataType.UUID.toString(), Uint8Array]\n]));\n__publicField(_DataType, \"ARRAY_CONSTRUCTOR_DATA_TYPES\", /* @__PURE__ */ new Map([\n [Uint8Array.name, _DataType.UINT8],\n [Uint16Array.name, _DataType.UINT16],\n [Uint32Array.name, _DataType.UINT32],\n [BigUint64Array.name, _DataType.UINT64],\n [Float32Array.name, _DataType.FLOAT32],\n [Float64Array.name, _DataType.FLOAT64],\n [Int8Array.name, _DataType.INT8],\n [Int16Array.name, _DataType.INT16],\n [Int32Array.name, _DataType.INT32],\n [BigInt64Array.name, _DataType.INT64]\n]));\n__publicField(_DataType, \"DENSITIES\", /* @__PURE__ */ new Map([\n [_DataType.UINT8.toString(), Density.BIT8],\n [_DataType.UINT16.toString(), Density.BIT16],\n [_DataType.UINT32.toString(), Density.BIT32],\n [_DataType.UINT64.toString(), Density.BIT64],\n [_DataType.FLOAT32.toString(), Density.BIT32],\n [_DataType.FLOAT64.toString(), Density.BIT64],\n [_DataType.INT8.toString(), Density.BIT8],\n [_DataType.INT16.toString(), Density.BIT16],\n [_DataType.INT32.toString(), Density.BIT32],\n [_DataType.INT64.toString(), Density.BIT64],\n [_DataType.TIMESTAMP.toString(), Density.BIT64],\n [_DataType.STRING.toString(), Density.UNKNOWN],\n [_DataType.JSON.toString(), Density.UNKNOWN],\n [_DataType.UUID.toString(), Density.BIT128]\n]));\n__publicField(_DataType, \"BIG_INT_TYPES\", [_DataType.INT64, _DataType.UINT64, _DataType.TIMESTAMP]);\n/** A zod schema for a DataType. */\n__publicField(_DataType, \"z\", z.union([\n z.string().transform((v) => new _DataType(v)),\n z.instanceof(_DataType)\n]));\nlet DataType = _DataType;\nconst _Size = class _Size extends Number {\n constructor(value) {\n super(value.valueOf());\n }\n /** @returns true if the Size is larger than the other size. */\n largerThan(other) {\n return this.valueOf() > other.valueOf();\n }\n /** @returns true if the Size is smaller than the other sisze. */\n smallerThan(other) {\n return this.valueOf() < other.valueOf();\n }\n add(other) {\n return _Size.bytes(this.valueOf() + other.valueOf());\n }\n sub(other) {\n return _Size.bytes(this.valueOf() - other.valueOf());\n }\n /**\n * Creates a Size from the given number of bytes.\n *\n * @param value - The number of bytes.\n * @returns A Size representing the given number of bytes.\n */\n static bytes(value = 1) {\n return new _Size(value);\n }\n /**\n * Creates a Size from the given number if kilobytes.\n *\n * @param value - The number of kilobytes.\n * @returns A Size representing the given number of kilobytes.\n */\n static kilobytes(value = 1) {\n return _Size.bytes(value.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of megabytes.\n *\n * @param value - The number of megabytes.\n * @returns A Size representing the given number of megabytes.\n */\n static megabytes(value = 1) {\n return _Size.kilobytes(value.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of gigabytes.\n *\n * @param value - The number of gigabytes.\n * @returns A Size representing the given number of gigabytes.\n */\n static gigabytes(value = 1) {\n return _Size.megabytes(value.valueOf() * 1e3);\n }\n /**\n * Creates a Size from the given number of terabytes.\n *\n * @param value - The number of terabytes.\n * @returns A Size representing the given number of terabytes.\n */\n static terabytes(value) {\n return _Size.gigabytes(value.valueOf() * 1e3);\n }\n isZero() {\n return this.valueOf() === 0;\n }\n};\n/** A single byte */\n__publicField(_Size, \"BYTE\", new _Size(1));\n/** A kilobyte */\n__publicField(_Size, \"KILOBYTE\", _Size.kilobytes(1));\n/** A megabyte */\n__publicField(_Size, \"MEGABYTE\", _Size.megabytes(1));\n/** A gigabyte */\n__publicField(_Size, \"GIGABYTE\", _Size.gigabytes(1));\n/** A terabyte. */\n__publicField(_Size, \"TERABYTE\", _Size.terabytes(1));\n/** The zero value for Size */\n__publicField(_Size, \"ZERO\", new _Size(0));\n/** A zod schema for a Size. */\n__publicField(_Size, \"z\", z.union([\n z.number().transform((v) => new _Size(v)),\n z.instanceof(_Size)\n]));\nlet Size = _Size;\nconst nativeTypedArray = z.union([\n z.instanceof(Uint8Array),\n z.instanceof(Uint16Array),\n z.instanceof(Uint32Array),\n z.instanceof(BigUint64Array),\n z.instanceof(Float32Array),\n z.instanceof(Float64Array),\n z.instanceof(Int8Array),\n z.instanceof(Int16Array),\n z.instanceof(Int32Array),\n z.instanceof(BigInt64Array)\n]);\nconst convertDataType = (source, target2, value, offset = 0) => {\n if (source.usesBigInt && !target2.usesBigInt)\n return Number(value) - Number(offset);\n if (!source.usesBigInt && target2.usesBigInt)\n return BigInt(value) - BigInt(offset);\n return addSamples(value, -offset);\n};\nconst validateFieldNotNull = (name, field) => {\n if (field == null) {\n throw new Error(`field ${name} is null`);\n }\n};\nconst FULL_BUFFER = -1;\nclass Series {\n constructor(data, dataType, timeRange, sampleOffset, glBufferUsage = \"static\", alignment2 = 0) {\n /** The data type of the array */\n __publicField(this, \"dataType\");\n /**\n * A sample offset that can be used to shift the values of all samples upwards or\n * downwards. Typically used to convert arrays to lower precision while preserving\n * the relative range of actual values.\n */\n __publicField(this, \"sampleOffset\");\n /**\n * Stores information about the buffer state of this array into a WebGL buffer.\n */\n __publicField(this, \"gl\");\n /** The underlying data. */\n __publicField(this, \"_data\");\n __publicField(this, \"_timeRange\");\n __publicField(this, \"alignment\", 0);\n /** A cached minimum value. */\n __publicField(this, \"_min\");\n /** A cached maximum value. */\n __publicField(this, \"_max\");\n /** The write position of the buffer. */\n __publicField(this, \"writePos\", FULL_BUFFER);\n /** Tracks the number of entities currently using this array. */\n __publicField(this, \"_refCount\", 0);\n if (dataType == null && !(data instanceof ArrayBuffer)) {\n this.dataType = new DataType(data);\n } else if (dataType != null) {\n this.dataType = new DataType(dataType);\n } else {\n throw new Error(\n \"must provide a data type when constructing a Series from a buffer\"\n );\n }\n this.alignment = alignment2;\n this.sampleOffset = sampleOffset ?? 0;\n this._data = data;\n this._timeRange = timeRange;\n this.gl = {\n control: null,\n buffer: null,\n prevBuffer: 0,\n bufferUsage: glBufferUsage\n };\n }\n static alloc(length, dataType, timeRange, sampleOffset, glBufferUsage = \"static\", alignment2 = 0) {\n if (length === 0)\n throw new Error(\"[Series] - cannot allocate an array of length 0\");\n const data = new new DataType(dataType).Array(length);\n const arr = new Series(\n data.buffer,\n dataType,\n timeRange,\n sampleOffset,\n glBufferUsage,\n alignment2\n );\n arr.writePos = 0;\n return arr;\n }\n static generateTimestamps(length, rate, start) {\n const tr = start.spanRange(rate.span(length));\n const data = new BigInt64Array(length);\n for (let i = 0; i < length; i++) {\n data[i] = BigInt(start.add(rate.span(i)).valueOf());\n }\n return new Series(data, DataType.TIMESTAMP, tr);\n }\n get refCount() {\n return this._refCount;\n }\n static fromStrings(data, timeRange) {\n const buffer = new TextEncoder().encode(data.join(\"\\n\") + \"\\n\");\n return new Series(buffer, DataType.STRING, timeRange);\n }\n static fromJSON(data, timeRange) {\n const buffer = new TextEncoder().encode(\n data.map((d) => JSON.stringify(d)).join(\"\\n\") + \"\\n\"\n );\n return new Series(buffer, DataType.JSON, timeRange);\n }\n acquire(gl) {\n this._refCount++;\n if (gl != null)\n this.updateGLBuffer(gl);\n }\n release() {\n this._refCount--;\n if (this._refCount === 0 && this.gl.control != null)\n this.maybeGarbageCollectGLBuffer(this.gl.control);\n else if (this._refCount < 0)\n throw new Error(\"cannot release an array with a negative reference count\");\n }\n write(other) {\n if (!other.dataType.equals(this.dataType))\n throw new Error(\"buffer must be of the same type as this array\");\n if (this.writePos === FULL_BUFFER)\n return 0;\n const available = this.cap - this.writePos;\n const toWrite = available < other.length ? other.slice(0, available) : other;\n this.underlyingData.set(toWrite.data, this.writePos);\n this.maybeRecomputeMinMax(toWrite);\n this.writePos += toWrite.length;\n return toWrite.length;\n }\n /** @returns the underlying buffer backing this array. */\n get buffer() {\n return this._data;\n }\n get underlyingData() {\n return new this.dataType.Array(this._data);\n }\n /** @returns a native typed array with the proper data type. */\n get data() {\n if (this.writePos === FULL_BUFFER)\n return this.underlyingData;\n return new this.dataType.Array(this._data, 0, this.writePos);\n }\n toStrings() {\n if (!this.dataType.equals(DataType.STRING))\n throw new Error(\"cannot convert non-string series to strings\");\n return new TextDecoder().decode(this.buffer).split(\"\\n\").slice(0, -1);\n }\n toUUIDs() {\n if (!this.dataType.equals(DataType.UUID))\n throw new Error(\"cannot convert non-uuid series to uuids\");\n const den = DataType.UUID.density.valueOf();\n const r = Array(this.length);\n for (let i = 0; i < this.length; i++) {\n const v = this.buffer.slice(i * den, (i + 1) * den);\n const id = Array.from(new Uint8Array(v), (b) => b.toString(16).padStart(2, \"0\")).join(\"\").replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, \"$1-$2-$3-$4-$5\");\n r[i] = id;\n }\n return r;\n }\n parseJSON(schema) {\n if (!this.dataType.equals(DataType.JSON))\n throw new Error(\"cannot convert non-string series to strings\");\n return new TextDecoder().decode(this.buffer).split(\"\\n\").slice(0, -1).map((s) => schema.parse(JSON.parse(s)));\n }\n /** @returns the time range of this array. */\n get timeRange() {\n validateFieldNotNull(\"timeRange\", this._timeRange);\n return this._timeRange;\n }\n /** @returns the capacity of the underlying buffer in bytes. */\n get byteCap() {\n return new Size(this.buffer.byteLength);\n }\n /** @returns the capacity of the underlying buffer in samples. */\n get cap() {\n return this.dataType.density.length(this.byteCap);\n }\n /** @returns the length of the underlying buffer in samples. */\n get byteLength() {\n if (this.writePos === FULL_BUFFER)\n return this.byteCap;\n return this.dataType.density.size(this.writePos);\n }\n /** @returns the number of samples in this array. */\n get length() {\n if (this.writePos === FULL_BUFFER)\n return this.data.length;\n return this.writePos;\n }\n /**\n * Creates a new array with a different data type.\n * @param target the data type to convert to.\n * @param sampleOffset an offset to apply to each sample. This can help with precision\n * issues when converting between data types.\n *\n * WARNING: This method is expensive and copies the entire underlying array. There\n * also may be untimely precision issues when converting between data types.\n */\n convert(target2, sampleOffset = 0) {\n if (this.dataType.equals(target2))\n return this;\n const data = new target2.Array(this.length);\n for (let i = 0; i < this.length; i++) {\n data[i] = convertDataType(this.dataType, target2, this.data[i], sampleOffset);\n }\n return new Series(\n data.buffer,\n target2,\n this._timeRange,\n sampleOffset,\n this.gl.bufferUsage,\n this.alignment\n );\n }\n calcRawMax() {\n if (this.length === 0)\n return -Infinity;\n if (this.dataType.equals(DataType.TIMESTAMP)) {\n this._max = this.data[this.data.length - 1];\n } else if (this.dataType.usesBigInt) {\n const d = this.data;\n this._max = d.reduce((a, b) => a > b ? a : b);\n } else {\n const d = this.data;\n this._max = d.reduce((a, b) => a > b ? a : b);\n }\n return this._max;\n }\n /** @returns the maximum value in the array */\n get max() {\n if (this.writePos === 0)\n return -Infinity;\n else if (this._max == null)\n this._max = this.calcRawMax();\n return addSamples(this._max, this.sampleOffset);\n }\n calcRawMin() {\n if (this.length === 0)\n return Infinity;\n if (this.dataType.equals(DataType.TIMESTAMP)) {\n this._min = this.data[0];\n } else if (this.dataType.usesBigInt) {\n const d = this.data;\n this._min = d.reduce((a, b) => a < b ? a : b);\n } else {\n const d = this.data;\n this._min = d.reduce((a, b) => a < b ? a : b);\n }\n return this._min;\n }\n /** @returns the minimum value in the array */\n get min() {\n if (this.writePos === 0)\n return Infinity;\n else if (this._min == null)\n this._min = this.calcRawMin();\n return addSamples(this._min, this.sampleOffset);\n }\n /** @returns the bounds of this array. */\n get bounds() {\n return construct$5(Number(this.min), Number(this.max));\n }\n maybeRecomputeMinMax(update) {\n if (this._min != null) {\n const min2 = update._min ?? update.calcRawMin();\n if (min2 < this._min)\n this._min = min2;\n }\n if (this._max != null) {\n const max2 = update._max ?? update.calcRawMax();\n if (max2 > this._max)\n this._max = max2;\n }\n }\n enrich() {\n this.max;\n this.min;\n }\n get range() {\n return addSamples(this.max, -this.min);\n }\n at(index) {\n const v = this.data[index];\n if (v == null)\n return void 0;\n return addSamples(v, this.sampleOffset);\n }\n /**\n * @returns the index of the first sample that is greater than or equal to the given value.\n * The underlying array must be sorted. If it is not, the behavior of this method is undefined.\n * @param value the value to search for.\n */\n binarySearch(value) {\n let left2 = 0;\n let right2 = this.length - 1;\n const cf = newF(value);\n while (left2 <= right2) {\n const mid = Math.floor((left2 + right2) / 2);\n const cmp = cf(this.at(mid), value);\n if (cmp === 0)\n return mid;\n if (cmp < 0)\n left2 = mid + 1;\n else\n right2 = mid - 1;\n }\n return left2;\n }\n updateGLBuffer(gl) {\n this.gl.control = gl;\n if (!this.dataType.equals(DataType.FLOAT32))\n throw new Error(\"Only FLOAT32 arrays can be used in WebGL\");\n const { buffer, bufferUsage, prevBuffer } = this.gl;\n if (buffer == null)\n this.gl.buffer = gl.createBuffer();\n if (this.writePos === prevBuffer)\n return;\n gl.bindBuffer(gl.ARRAY_BUFFER, this.gl.buffer);\n if (this.writePos !== FULL_BUFFER) {\n if (prevBuffer === 0) {\n gl.bufferData(gl.ARRAY_BUFFER, this.byteCap.valueOf(), gl.STATIC_DRAW);\n }\n const byteOffset = this.dataType.density.size(prevBuffer).valueOf();\n const slice = this.underlyingData.slice(this.gl.prevBuffer, this.writePos);\n gl.bufferSubData(gl.ARRAY_BUFFER, byteOffset, slice.buffer);\n this.gl.prevBuffer = this.writePos;\n } else {\n gl.bufferData(\n gl.ARRAY_BUFFER,\n this.buffer,\n bufferUsage === \"static\" ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW\n );\n this.gl.prevBuffer = FULL_BUFFER;\n }\n }\n get digest() {\n var _a2;\n return {\n dataType: this.dataType.toString(),\n sampleOffset: this.sampleOffset,\n alignment: this.alignment,\n timeRange: (_a2 = this._timeRange) == null ? void 0 : _a2.toString(),\n length: this.length\n };\n }\n maybeGarbageCollectGLBuffer(gl) {\n if (this.gl.buffer == null)\n return;\n gl.deleteBuffer(this.gl.buffer);\n this.gl.buffer = null;\n this.gl.prevBuffer = 0;\n }\n get glBuffer() {\n if (this.gl.buffer == null)\n throw new Error(\"gl buffer not initialized\");\n if (!(this.gl.prevBuffer === this.writePos))\n console.warn(\"buffer not updated\");\n return this.gl.buffer;\n }\n slice(start, end) {\n const d = this.data.slice(start, end);\n return new Series(\n d,\n this.dataType,\n TimeRange.ZERO,\n this.sampleOffset,\n this.gl.bufferUsage,\n this.alignment + start\n );\n }\n reAlign(alignment2) {\n return new Series(\n this.buffer,\n this.dataType,\n TimeRange.ZERO,\n this.sampleOffset,\n \"static\",\n alignment2\n );\n }\n}\nconst addSamples = (a, b) => {\n if (typeof a === \"bigint\" && typeof b === \"bigint\")\n return a + b;\n if (typeof a === \"number\" && typeof b === \"number\")\n return a + b;\n return Number(a) + Number(b);\n};\nconst unknownRecordZ = z.record(\n z.union([z.number(), z.string(), z.symbol()]),\n z.unknown()\n);\nconst getEntries = (obj) => Object.entries(obj);\nconst convertRenderV = (value) => {\n if (value === void 0 || typeof value === \"string\" || typeof value === \"number\")\n return value;\n if (value.toString === void 0)\n throw new Error(\"invalid renderer\");\n return value.toString();\n};\nconst isObject = (item) => item != null && typeof item === \"object\" && !Array.isArray(item);\nconst detect = () => {\n if (\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n typeof process !== \"undefined\" && process.versions != null && process.versions.node != null\n )\n return \"node\";\n if (typeof window === \"undefined\" || window.document === void 0)\n return \"webworker\";\n return \"browser\";\n};\nconst RUNTIME = detect();\nconst OPERATING_SYSTEMS = [\"MacOS\", \"Windows\", \"Linux\", \"Docker\"];\nconst osZ = z.enum(OPERATING_SYSTEMS);\nlet os;\nconst evalOS = () => {\n if (typeof window === \"undefined\")\n return void 0;\n const userAgent = window.navigator.userAgent.toLowerCase();\n if (userAgent.includes(\"mac\"))\n return \"MacOS\";\n else if (userAgent.includes(\"win\"))\n return \"Windows\";\n else if (userAgent.includes(\"linux\"))\n return \"Linux\";\n return void 0;\n};\nconst getOS = (props = {}) => {\n const { force, default: default_ } = props;\n if (force != null)\n return force;\n if (os != null)\n return os;\n os = evalOS();\n return os ?? default_;\n};\nconst external$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n OPERATING_SYSTEMS,\n RUNTIME,\n detect,\n getOS,\n osZ\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst copy = (obj) => JSON.parse(JSON.stringify(obj));\nconst deleteD = (target2, ...keys) => {\n keys.forEach((key) => {\n let curr = target2;\n const arr = key.split(\".\");\n arr.forEach((k, i) => {\n if (i === arr.length - 1)\n delete curr[k];\n else\n curr = curr[k];\n });\n });\n return target2;\n};\nconst merge = (base, ...objects) => {\n if (objects.length === 0)\n return base;\n const source = objects.shift();\n if (isObject(base) && isObject(source)) {\n for (const key in source) {\n try {\n if (isObject(source[key])) {\n if (!(key in base))\n Object.assign(base, { [key]: {} });\n merge(base[key], source[key]);\n } else {\n Object.assign(base, { [key]: source[key] });\n }\n } catch (e) {\n if (e instanceof TypeError) {\n throw new TypeError(`.${key}: ${e.message}`);\n }\n throw e;\n }\n }\n }\n return merge(base, ...objects);\n};\nconst equal = (a, b) => {\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray !== bIsArray)\n return false;\n if (aIsArray && bIsArray) {\n const aArr = a;\n const bArr = b;\n if (aArr.length !== bArr.length)\n return false;\n for (let i = 0; i < aArr.length; i++) {\n if (!equal(aArr[i], bArr[i]))\n return false;\n }\n return true;\n }\n if (typeof a !== \"object\" || typeof b !== \"object\")\n return a === b;\n if (\"equals\" in a)\n return a.equals(b);\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length)\n return false;\n for (const key of aKeys) {\n const aVal = a[key];\n const bVal = b[key];\n if (typeof aVal === \"object\" && typeof bVal === \"object\") {\n if (!equal(aVal, bVal))\n return false;\n } else if (aVal !== bVal)\n return false;\n }\n return true;\n};\nconst partialEqual = (base, partial) => {\n const baseKeys = Object.keys(base);\n const partialKeys = Object.keys(partial);\n if (partialKeys.length > baseKeys.length)\n return false;\n for (const key of partialKeys) {\n const baseVal = base[key];\n const partialVal = partial[key];\n if (typeof baseVal === \"object\" && typeof partialVal === \"object\") {\n if (!partialEqual(baseVal, partialVal))\n return false;\n } else if (baseVal !== partialVal)\n return false;\n }\n return true;\n};\nconst memo = (func) => {\n let prevArgs = void 0;\n let prevResult = void 0;\n const v = (...args) => {\n if (equal(prevArgs, args))\n return prevResult;\n const result = func(...args);\n prevArgs = args;\n prevResult = result;\n return result;\n };\n return v;\n};\nconst external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n copy,\n deleteD,\n equal,\n memo,\n merge,\n partialEqual\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst debounce = (func, waitFor) => {\n let timeout = null;\n if (waitFor === 0)\n return func;\n const debounced = (...args) => {\n if (timeout !== null) {\n clearTimeout(timeout);\n timeout = null;\n }\n timeout = setTimeout(() => func(...args), waitFor);\n };\n return debounced;\n};\nconst throttle = (func, waitFor) => {\n let timeout = null;\n if (waitFor === 0)\n return func;\n const throttled = (...args) => {\n if (timeout === null) {\n timeout = setTimeout(() => {\n func(...args);\n timeout = null;\n }, waitFor);\n }\n };\n return throttled;\n};\nconst unique = (values) => [...new Set(values)];\nconst types = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst joinPaths = (...paths) => paths.map(formatPath).join(\"\");\nconst formatPath = (path) => {\n if (!path.endsWith(\"/\"))\n path += \"/\";\n if (path.startsWith(\"/\"))\n path = path.slice(1);\n return path;\n};\nconst removeTrailingSlash = (path) => path.endsWith(\"/\") ? path.slice(0, -1) : path;\nconst buildQueryString = (request, prefix = \"\") => {\n if (request === null)\n return \"\";\n return \"?\" + Object.entries(request).filter(([, value]) => {\n if (value === void 0 || value === null)\n return false;\n if (Array.isArray(value))\n return value.length > 0;\n return true;\n }).map(([key, value]) => `${prefix}${key}=${value}`).join(\"&\");\n};\nlet URL$1 = (_a = class {\n /**\n * @param host - The hostname or IP address of the server.\n * @param port - The port number of the server.\n * @param protocol - The protocol to use for all requests. Defaults to \"\".\n * @param pathPrefix - A path prefix to use for all requests. Defaults to \"\".\n */\n constructor({ host, port, protocol = \"\", pathPrefix = \"\" }) {\n __publicField(this, \"protocol\");\n __publicField(this, \"host\");\n __publicField(this, \"port\");\n __publicField(this, \"path\");\n this.protocol = protocol;\n this.host = host;\n this.port = port;\n this.path = formatPath(pathPrefix);\n }\n /**\n * Replaces creates a new URL with the specified properties replaced.\n * @param props - The properties to replace.\n * @returns a new URL.\n */\n replace(props) {\n return new _a({\n host: props.host ?? this.host,\n port: props.port ?? this.port,\n protocol: props.protocol ?? this.protocol,\n pathPrefix: props.pathPrefix ?? this.path\n });\n }\n /**\n * Creates a new url with the given path appended to the current path.\n * @param path - the path to append to the URL.\n * @returns a new URL.\n */\n child(path) {\n return new _a({\n ...this,\n pathPrefix: joinPaths(this.path, path)\n });\n }\n /** @returns a string representation of the url */\n toString() {\n return removeTrailingSlash(\n `${this.protocol}://${this.host}:${this.port}/${this.path}`\n );\n }\n}, __publicField(_a, \"UNKNOWN\", new _a({ host: \"unknown\", port: 0 })), _a);\nconst toArray = (value) => Array.isArray(value) ? value : [value];\nconst binary = (arr, target2, compare2) => {\n let left2 = 0;\n let right2 = arr.length - 1;\n while (left2 <= right2) {\n const mid = Math.floor((left2 + right2) / 2);\n const cmp = compare2(arr[mid], target2);\n if (cmp === 0)\n return mid;\n if (cmp < 0)\n left2 = mid + 1;\n else\n right2 = mid - 1;\n }\n return -1;\n};\nconst Search = {\n binary\n};\nclass RoutedWorker {\n constructor(send) {\n __publicField(this, \"sender\");\n __publicField(this, \"handlers\");\n this.sender = send;\n this.handlers = /* @__PURE__ */ new Map();\n }\n handle({ data }) {\n var _a2;\n const handler = (_a2 = this.handlers.get(data.type)) == null ? void 0 : _a2.handler;\n if (handler == null)\n console.warn(`No handler for ${data.type}`);\n else\n handler(data.payload);\n }\n route(type) {\n const send = typedSend(type, this.sender);\n const t = new TypedWorker(send);\n this.handlers.set(type, t);\n return t;\n }\n}\nconst typedSend = (type, send) => (payload, transfer) => {\n return send({ type, payload }, transfer);\n};\nclass TypedWorker {\n constructor(send) {\n __publicField(this, \"_send\");\n __publicField(this, \"handler\");\n this._send = send;\n this.handler = null;\n }\n send(payload, transfer = []) {\n this._send(payload, transfer);\n }\n handle(handler) {\n this.handler = handler;\n }\n}\nconst createMockWorkers = () => {\n let a, b;\n const aSend = (value, transfer) => {\n b.handle({ data: value });\n };\n const bSend = (value, transfer) => {\n a.handle({ data: value });\n };\n a = new RoutedWorker(aSend);\n b = new RoutedWorker(bSend);\n return [a, b];\n};\nvar decoder;\ntry {\n decoder = new TextDecoder();\n} catch (error) {\n}\nvar src;\nvar srcEnd;\nvar position$1 = 0;\nvar currentUnpackr = {};\nvar currentStructures;\nvar srcString;\nvar srcStringStart = 0;\nvar srcStringEnd = 0;\nvar bundledStrings$1;\nvar referenceMap;\nvar currentExtensions = [];\nvar dataView;\nvar defaultOptions = {\n useRecords: false,\n mapsAsObjects: true\n};\nclass C1Type {\n}\nconst C1 = new C1Type();\nC1.name = \"MessagePack 0xC1\";\nvar sequentialMode = false;\nvar inlineObjectReadThreshold = 2;\nvar readStruct;\ntry {\n new Function(\"\");\n} catch (error) {\n inlineObjectReadThreshold = Infinity;\n}\nclass Unpackr {\n constructor(options2) {\n if (options2) {\n if (options2.useRecords === false && options2.mapsAsObjects === void 0)\n options2.mapsAsObjects = true;\n if (options2.sequential && options2.trusted !== false) {\n options2.trusted = true;\n if (!options2.structures && options2.useRecords != false) {\n options2.structures = [];\n if (!options2.maxSharedStructures)\n options2.maxSharedStructures = 0;\n }\n }\n if (options2.structures)\n options2.structures.sharedLength = options2.structures.length;\n else if (options2.getStructures) {\n (options2.structures = []).uninitialized = true;\n options2.structures.sharedLength = 0;\n }\n if (options2.int64AsNumber) {\n options2.int64AsType = \"number\";\n }\n }\n Object.assign(this, options2);\n }\n unpack(source, options2) {\n if (src) {\n return saveState(() => {\n clearSource();\n return this ? this.unpack(source, options2) : Unpackr.prototype.unpack.call(defaultOptions, source, options2);\n });\n }\n if (!source.buffer && source.constructor === ArrayBuffer)\n source = typeof Buffer !== \"undefined\" ? Buffer.from(source) : new Uint8Array(source);\n if (typeof options2 === \"object\") {\n srcEnd = options2.end || source.length;\n position$1 = options2.start || 0;\n } else {\n position$1 = 0;\n srcEnd = options2 > -1 ? options2 : source.length;\n }\n srcStringEnd = 0;\n srcString = null;\n bundledStrings$1 = null;\n src = source;\n try {\n dataView = source.dataView || (source.dataView = new DataView(source.buffer, source.byteOffset, source.byteLength));\n } catch (error) {\n src = null;\n if (source instanceof Uint8Array)\n throw error;\n throw new Error(\"Source must be a Uint8Array or Buffer but was a \" + (source && typeof source == \"object\" ? source.constructor.name : typeof source));\n }\n if (this instanceof Unpackr) {\n currentUnpackr = this;\n if (this.structures) {\n currentStructures = this.structures;\n return checkedRead(options2);\n } else if (!currentStructures || currentStructures.length > 0) {\n currentStructures = [];\n }\n } else {\n currentUnpackr = defaultOptions;\n if (!currentStructures || currentStructures.length > 0)\n currentStructures = [];\n }\n return checkedRead(options2);\n }\n unpackMultiple(source, forEach) {\n let values, lastPosition = 0;\n try {\n sequentialMode = true;\n let size = source.length;\n let value = this ? this.unpack(source, size) : defaultUnpackr.unpack(source, size);\n if (forEach) {\n if (forEach(value, lastPosition, position$1) === false)\n return;\n while (position$1 < size) {\n lastPosition = position$1;\n if (forEach(checkedRead(), lastPosition, position$1) === false) {\n return;\n }\n }\n } else {\n values = [value];\n while (position$1 < size) {\n lastPosition = position$1;\n values.push(checkedRead());\n }\n return values;\n }\n } catch (error) {\n error.lastPosition = lastPosition;\n error.values = values;\n throw error;\n } finally {\n sequentialMode = false;\n clearSource();\n }\n }\n _mergeStructures(loadedStructures, existingStructures) {\n loadedStructures = loadedStructures || [];\n if (Object.isFrozen(loadedStructures))\n loadedStructures = loadedStructures.map((structure) => structure.slice(0));\n for (let i = 0, l = loadedStructures.length; i < l; i++) {\n let structure = loadedStructures[i];\n if (structure) {\n structure.isShared = true;\n if (i >= 32)\n structure.highByte = i - 32 >> 5;\n }\n }\n loadedStructures.sharedLength = loadedStructures.length;\n for (let id in existingStructures || []) {\n if (id >= 0) {\n let structure = loadedStructures[id];\n let existing = existingStructures[id];\n if (existing) {\n if (structure)\n (loadedStructures.restoreStructures || (loadedStructures.restoreStructures = []))[id] = structure;\n loadedStructures[id] = existing;\n }\n }\n }\n return this.structures = loadedStructures;\n }\n decode(source, options2) {\n return this.unpack(source, options2);\n }\n}\nfunction checkedRead(options2) {\n try {\n if (!currentUnpackr.trusted && !sequentialMode) {\n let sharedLength = currentStructures.sharedLength || 0;\n if (sharedLength < currentStructures.length)\n currentStructures.length = sharedLength;\n }\n let result;\n if (currentUnpackr.randomAccessStructure && src[position$1] < 64 && src[position$1] >= 32 && readStruct) {\n result = readStruct(src, position$1, srcEnd, currentUnpackr);\n src = null;\n if (!(options2 && options2.lazy) && result)\n result = result.toJSON();\n position$1 = srcEnd;\n } else\n result = read();\n if (bundledStrings$1) {\n position$1 = bundledStrings$1.postBundlePosition;\n bundledStrings$1 = null;\n }\n if (sequentialMode)\n currentStructures.restoreStructures = null;\n if (position$1 == srcEnd) {\n if (currentStructures && currentStructures.restoreStructures)\n restoreStructures();\n currentStructures = null;\n src = null;\n if (referenceMap)\n referenceMap = null;\n } else if (position$1 > srcEnd) {\n throw new Error(\"Unexpected end of MessagePack data\");\n } else if (!sequentialMode) {\n let jsonView;\n try {\n jsonView = JSON.stringify(result, (_, value) => typeof value === \"bigint\" ? `${value}n` : value).slice(0, 100);\n } catch (error) {\n jsonView = \"(JSON view not available \" + error + \")\";\n }\n throw new Error(\"Data read, but end of buffer not reached \" + jsonView);\n }\n return result;\n } catch (error) {\n if (currentStructures && currentStructures.restoreStructures)\n restoreStructures();\n clearSource();\n if (error instanceof RangeError || error.message.startsWith(\"Unexpected end of buffer\") || position$1 > srcEnd) {\n error.incomplete = true;\n }\n throw error;\n }\n}\nfunction restoreStructures() {\n for (let id in currentStructures.restoreStructures) {\n currentStructures[id] = currentStructures.restoreStructures[id];\n }\n currentStructures.restoreStructures = null;\n}\nfunction read() {\n let token = src[position$1++];\n if (token < 160) {\n if (token < 128) {\n if (token < 64)\n return token;\n else {\n let structure = currentStructures[token & 63] || currentUnpackr.getStructures && loadStructures()[token & 63];\n if (structure) {\n if (!structure.read) {\n structure.read = createStructureReader(structure, token & 63);\n }\n return structure.read();\n } else\n return token;\n }\n } else if (token < 144) {\n token -= 128;\n if (currentUnpackr.mapsAsObjects) {\n let object = {};\n for (let i = 0; i < token; i++) {\n let key = readKey();\n if (key === \"__proto__\")\n key = \"__proto_\";\n object[key] = read();\n }\n return object;\n } else {\n let map = /* @__PURE__ */ new Map();\n for (let i = 0; i < token; i++) {\n map.set(read(), read());\n }\n return map;\n }\n } else {\n token -= 144;\n let array = new Array(token);\n for (let i = 0; i < token; i++) {\n array[i] = read();\n }\n if (currentUnpackr.freezeData)\n return Object.freeze(array);\n return array;\n }\n } else if (token < 192) {\n let length = token - 160;\n if (srcStringEnd >= position$1) {\n return srcString.slice(position$1 - srcStringStart, (position$1 += length) - srcStringStart);\n }\n if (srcStringEnd == 0 && srcEnd < 140) {\n let string = length < 16 ? shortStringInJS(length) : longStringInJS(length);\n if (string != null)\n return string;\n }\n return readFixedString(length);\n } else {\n let value;\n switch (token) {\n case 192:\n return null;\n case 193:\n if (bundledStrings$1) {\n value = read();\n if (value > 0)\n return bundledStrings$1[1].slice(bundledStrings$1.position1, bundledStrings$1.position1 += value);\n else\n return bundledStrings$1[0].slice(bundledStrings$1.position0, bundledStrings$1.position0 -= value);\n }\n return C1;\n case 194:\n return false;\n case 195:\n return true;\n case 196:\n value = src[position$1++];\n if (value === void 0)\n throw new Error(\"Unexpected end of buffer\");\n return readBin(value);\n case 197:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n return readBin(value);\n case 198:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n return readBin(value);\n case 199:\n return readExt(src[position$1++]);\n case 200:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n return readExt(value);\n case 201:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n return readExt(value);\n case 202:\n value = dataView.getFloat32(position$1);\n if (currentUnpackr.useFloat32 > 2) {\n let multiplier = mult10[(src[position$1] & 127) << 1 | src[position$1 + 1] >> 7];\n position$1 += 4;\n return (multiplier * value + (value > 0 ? 0.5 : -0.5) >> 0) / multiplier;\n }\n position$1 += 4;\n return value;\n case 203:\n value = dataView.getFloat64(position$1);\n position$1 += 8;\n return value;\n case 204:\n return src[position$1++];\n case 205:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n return value;\n case 206:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n return value;\n case 207:\n if (currentUnpackr.int64AsType === \"number\") {\n value = dataView.getUint32(position$1) * 4294967296;\n value += dataView.getUint32(position$1 + 4);\n } else if (currentUnpackr.int64AsType === \"string\") {\n value = dataView.getBigUint64(position$1).toString();\n } else if (currentUnpackr.int64AsType === \"auto\") {\n value = dataView.getBigUint64(position$1);\n if (value <= BigInt(2) << BigInt(52))\n value = Number(value);\n } else\n value = dataView.getBigUint64(position$1);\n position$1 += 8;\n return value;\n case 208:\n return dataView.getInt8(position$1++);\n case 209:\n value = dataView.getInt16(position$1);\n position$1 += 2;\n return value;\n case 210:\n value = dataView.getInt32(position$1);\n position$1 += 4;\n return value;\n case 211:\n if (currentUnpackr.int64AsType === \"number\") {\n value = dataView.getInt32(position$1) * 4294967296;\n value += dataView.getUint32(position$1 + 4);\n } else if (currentUnpackr.int64AsType === \"string\") {\n value = dataView.getBigInt64(position$1).toString();\n } else if (currentUnpackr.int64AsType === \"auto\") {\n value = dataView.getBigInt64(position$1);\n if (value >= BigInt(-2) << BigInt(52) && value <= BigInt(2) << BigInt(52))\n value = Number(value);\n } else\n value = dataView.getBigInt64(position$1);\n position$1 += 8;\n return value;\n case 212:\n value = src[position$1++];\n if (value == 114) {\n return recordDefinition(src[position$1++] & 63);\n } else {\n let extension = currentExtensions[value];\n if (extension) {\n if (extension.read) {\n position$1++;\n return extension.read(read());\n } else if (extension.noBuffer) {\n position$1++;\n return extension();\n } else\n return extension(src.subarray(position$1, ++position$1));\n } else\n throw new Error(\"Unknown extension \" + value);\n }\n case 213:\n value = src[position$1];\n if (value == 114) {\n position$1++;\n return recordDefinition(src[position$1++] & 63, src[position$1++]);\n } else\n return readExt(2);\n case 214:\n return readExt(4);\n case 215:\n return readExt(8);\n case 216:\n return readExt(16);\n case 217:\n value = src[position$1++];\n if (srcStringEnd >= position$1) {\n return srcString.slice(position$1 - srcStringStart, (position$1 += value) - srcStringStart);\n }\n return readString8(value);\n case 218:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n if (srcStringEnd >= position$1) {\n return srcString.slice(position$1 - srcStringStart, (position$1 += value) - srcStringStart);\n }\n return readString16(value);\n case 219:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n if (srcStringEnd >= position$1) {\n return srcString.slice(position$1 - srcStringStart, (position$1 += value) - srcStringStart);\n }\n return readString32(value);\n case 220:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n return readArray(value);\n case 221:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n return readArray(value);\n case 222:\n value = dataView.getUint16(position$1);\n position$1 += 2;\n return readMap(value);\n case 223:\n value = dataView.getUint32(position$1);\n position$1 += 4;\n return readMap(value);\n default:\n if (token >= 224)\n return token - 256;\n if (token === void 0) {\n let error = new Error(\"Unexpected end of MessagePack data\");\n error.incomplete = true;\n throw error;\n }\n throw new Error(\"Unknown MessagePack token \" + token);\n }\n }\n}\nconst validName = /^[a-zA-Z_$][a-zA-Z\\d_$]*$/;\nfunction createStructureReader(structure, firstId) {\n function readObject() {\n if (readObject.count++ > inlineObjectReadThreshold) {\n let readObject2 = structure.read = new Function(\"r\", \"return function(){return \" + (currentUnpackr.freezeData ? \"Object.freeze\" : \"\") + \"({\" + structure.map((key) => key === \"__proto__\" ? \"__proto_:r()\" : validName.test(key) ? key + \":r()\" : \"[\" + JSON.stringify(key) + \"]:r()\").join(\",\") + \"})}\")(read);\n if (structure.highByte === 0)\n structure.read = createSecondByteReader(firstId, structure.read);\n return readObject2();\n }\n let object = {};\n for (let i = 0, l = structure.length; i < l; i++) {\n let key = structure[i];\n if (key === \"__proto__\")\n key = \"__proto_\";\n object[key] = read();\n }\n if (currentUnpackr.freezeData)\n return Object.freeze(object);\n return object;\n }\n readObject.count = 0;\n if (structure.highByte === 0) {\n return createSecondByteReader(firstId, readObject);\n }\n return readObject;\n}\nconst createSecondByteReader = (firstId, read0) => {\n return function() {\n let highByte = src[position$1++];\n if (highByte === 0)\n return read0();\n let id = firstId < 32 ? -(firstId + (highByte << 5)) : firstId + (highByte << 5);\n let structure = currentStructures[id] || loadStructures()[id];\n if (!structure) {\n throw new Error(\"Record id is not defined for \" + id);\n }\n if (!structure.read)\n structure.read = createStructureReader(structure, firstId);\n return structure.read();\n };\n};\nfunction loadStructures() {\n let loadedStructures = saveState(() => {\n src = null;\n return currentUnpackr.getStructures();\n });\n return currentStructures = currentUnpackr._mergeStructures(loadedStructures, currentStructures);\n}\nvar readFixedString = readStringJS;\nvar readString8 = readStringJS;\nvar readString16 = readStringJS;\nvar readString32 = readStringJS;\nfunction readStringJS(length) {\n let result;\n if (length < 16) {\n if (result = shortStringInJS(length))\n return result;\n }\n if (length > 64 && decoder)\n return decoder.decode(src.subarray(position$1, position$1 += length));\n const end = position$1 + length;\n const units = [];\n result = \"\";\n while (position$1 < end) {\n const byte1 = src[position$1++];\n if ((byte1 & 128) === 0) {\n units.push(byte1);\n } else if ((byte1 & 224) === 192) {\n const byte2 = src[position$1++] & 63;\n units.push((byte1 & 31) << 6 | byte2);\n } else if ((byte1 & 240) === 224) {\n const byte2 = src[position$1++] & 63;\n const byte3 = src[position$1++] & 63;\n units.push((byte1 & 31) << 12 | byte2 << 6 | byte3);\n } else if ((byte1 & 248) === 240) {\n const byte2 = src[position$1++] & 63;\n const byte3 = src[position$1++] & 63;\n const byte4 = src[position$1++] & 63;\n let unit = (byte1 & 7) << 18 | byte2 << 12 | byte3 << 6 | byte4;\n if (unit > 65535) {\n unit -= 65536;\n units.push(unit >>> 10 & 1023 | 55296);\n unit = 56320 | unit & 1023;\n }\n units.push(unit);\n } else {\n units.push(byte1);\n }\n if (units.length >= 4096) {\n result += fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += fromCharCode.apply(String, units);\n }\n return result;\n}\nfunction readArray(length) {\n let array = new Array(length);\n for (let i = 0; i < length; i++) {\n array[i] = read();\n }\n if (currentUnpackr.freezeData)\n return Object.freeze(array);\n return array;\n}\nfunction readMap(length) {\n if (currentUnpackr.mapsAsObjects) {\n let object = {};\n for (let i = 0; i < length; i++) {\n let key = readKey();\n if (key === \"__proto__\")\n key = \"__proto_\";\n object[key] = read();\n }\n return object;\n } else {\n let map = /* @__PURE__ */ new Map();\n for (let i = 0; i < length; i++) {\n map.set(read(), read());\n }\n return map;\n }\n}\nvar fromCharCode = String.fromCharCode;\nfunction longStringInJS(length) {\n let start = position$1;\n let bytes = new Array(length);\n for (let i = 0; i < length; i++) {\n const byte = src[position$1++];\n if ((byte & 128) > 0) {\n position$1 = start;\n return;\n }\n bytes[i] = byte;\n }\n return fromCharCode.apply(String, bytes);\n}\nfunction shortStringInJS(length) {\n if (length < 4) {\n if (length < 2) {\n if (length === 0)\n return \"\";\n else {\n let a = src[position$1++];\n if ((a & 128) > 1) {\n position$1 -= 1;\n return;\n }\n return fromCharCode(a);\n }\n } else {\n let a = src[position$1++];\n let b = src[position$1++];\n if ((a & 128) > 0 || (b & 128) > 0) {\n position$1 -= 2;\n return;\n }\n if (length < 3)\n return fromCharCode(a, b);\n let c = src[position$1++];\n if ((c & 128) > 0) {\n position$1 -= 3;\n return;\n }\n return fromCharCode(a, b, c);\n }\n } else {\n let a = src[position$1++];\n let b = src[position$1++];\n let c = src[position$1++];\n let d = src[position$1++];\n if ((a & 128) > 0 || (b & 128) > 0 || (c & 128) > 0 || (d & 128) > 0) {\n position$1 -= 4;\n return;\n }\n if (length < 6) {\n if (length === 4)\n return fromCharCode(a, b, c, d);\n else {\n let e = src[position$1++];\n if ((e & 128) > 0) {\n position$1 -= 5;\n return;\n }\n return fromCharCode(a, b, c, d, e);\n }\n } else if (length < 8) {\n let e = src[position$1++];\n let f = src[position$1++];\n if ((e & 128) > 0 || (f & 128) > 0) {\n position$1 -= 6;\n return;\n }\n if (length < 7)\n return fromCharCode(a, b, c, d, e, f);\n let g = src[position$1++];\n if ((g & 128) > 0) {\n position$1 -= 7;\n return;\n }\n return fromCharCode(a, b, c, d, e, f, g);\n } else {\n let e = src[position$1++];\n let f = src[position$1++];\n let g = src[position$1++];\n let h = src[position$1++];\n if ((e & 128) > 0 || (f & 128) > 0 || (g & 128) > 0 || (h & 128) > 0) {\n position$1 -= 8;\n return;\n }\n if (length < 10) {\n if (length === 8)\n return fromCharCode(a, b, c, d, e, f, g, h);\n else {\n let i = src[position$1++];\n if ((i & 128) > 0) {\n position$1 -= 9;\n return;\n }\n return fromCharCode(a, b, c, d, e, f, g, h, i);\n }\n } else if (length < 12) {\n let i = src[position$1++];\n let j = src[position$1++];\n if ((i & 128) > 0 || (j & 128) > 0) {\n position$1 -= 10;\n return;\n }\n if (length < 11)\n return fromCharCode(a, b, c, d, e, f, g, h, i, j);\n let k = src[position$1++];\n if ((k & 128) > 0) {\n position$1 -= 11;\n return;\n }\n return fromCharCode(a, b, c, d, e, f, g, h, i, j, k);\n } else {\n let i = src[position$1++];\n let j = src[position$1++];\n let k = src[position$1++];\n let l = src[position$1++];\n if ((i & 128) > 0 || (j & 128) > 0 || (k & 128) > 0 || (l & 128) > 0) {\n position$1 -= 12;\n return;\n }\n if (length < 14) {\n if (length === 12)\n return fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l);\n else {\n let m = src[position$1++];\n if ((m & 128) > 0) {\n position$1 -= 13;\n return;\n }\n return fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m);\n }\n } else {\n let m = src[position$1++];\n let n = src[position$1++];\n if ((m & 128) > 0 || (n & 128) > 0) {\n position$1 -= 14;\n return;\n }\n if (length < 15)\n return fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n);\n let o = src[position$1++];\n if ((o & 128) > 0) {\n position$1 -= 15;\n return;\n }\n return fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);\n }\n }\n }\n }\n}\nfunction readOnlyJSString() {\n let token = src[position$1++];\n let length;\n if (token < 192) {\n length = token - 160;\n } else {\n switch (token) {\n case 217:\n length = src[position$1++];\n break;\n case 218:\n length = dataView.getUint16(position$1);\n position$1 += 2;\n break;\n case 219:\n length = dataView.getUint32(position$1);\n position$1 += 4;\n break;\n default:\n throw new Error(\"Expected string\");\n }\n }\n return readStringJS(length);\n}\nfunction readBin(length) {\n return currentUnpackr.copyBuffers ? (\n // specifically use the copying slice (not the node one)\n Uint8Array.prototype.slice.call(src, position$1, position$1 += length)\n ) : src.subarray(position$1, position$1 += length);\n}\nfunction readExt(length) {\n let type = src[position$1++];\n if (currentExtensions[type]) {\n let end;\n return currentExtensions[type](src.subarray(position$1, end = position$1 += length), (readPosition) => {\n position$1 = readPosition;\n try {\n return read();\n } finally {\n position$1 = end;\n }\n });\n } else\n throw new Error(\"Unknown extension type \" + type);\n}\nvar keyCache = new Array(4096);\nfunction readKey() {\n let length = src[position$1++];\n if (length >= 160 && length < 192) {\n length = length - 160;\n if (srcStringEnd >= position$1)\n return srcString.slice(position$1 - srcStringStart, (position$1 += length) - srcStringStart);\n else if (!(srcStringEnd == 0 && srcEnd < 180))\n return readFixedString(length);\n } else {\n position$1--;\n return read().toString();\n }\n let key = (length << 5 ^ (length > 1 ? dataView.getUint16(position$1) : length > 0 ? src[position$1] : 0)) & 4095;\n let entry = keyCache[key];\n let checkPosition = position$1;\n let end = position$1 + length - 3;\n let chunk;\n let i = 0;\n if (entry && entry.bytes == length) {\n while (checkPosition < end) {\n chunk = dataView.getUint32(checkPosition);\n if (chunk != entry[i++]) {\n checkPosition = 1879048192;\n break;\n }\n checkPosition += 4;\n }\n end += 3;\n while (checkPosition < end) {\n chunk = src[checkPosition++];\n if (chunk != entry[i++]) {\n checkPosition = 1879048192;\n break;\n }\n }\n if (checkPosition === end) {\n position$1 = checkPosition;\n return entry.string;\n }\n end -= 3;\n checkPosition = position$1;\n }\n entry = [];\n keyCache[key] = entry;\n entry.bytes = length;\n while (checkPosition < end) {\n chunk = dataView.getUint32(checkPosition);\n entry.push(chunk);\n checkPosition += 4;\n }\n end += 3;\n while (checkPosition < end) {\n chunk = src[checkPosition++];\n entry.push(chunk);\n }\n let string = length < 16 ? shortStringInJS(length) : longStringInJS(length);\n if (string != null)\n return entry.string = string;\n return entry.string = readFixedString(length);\n}\nconst recordDefinition = (id, highByte) => {\n let structure = read().map((property) => property.toString());\n let firstByte = id;\n if (highByte !== void 0) {\n id = id < 32 ? -((highByte << 5) + id) : (highByte << 5) + id;\n structure.highByte = highByte;\n }\n let existingStructure = currentStructures[id];\n if (existingStructure && (existingStructure.isShared || sequentialMode)) {\n (currentStructures.restoreStructures || (currentStructures.restoreStructures = []))[id] = existingStructure;\n }\n currentStructures[id] = structure;\n structure.read = createStructureReader(structure, firstByte);\n return structure.read();\n};\ncurrentExtensions[0] = () => {\n};\ncurrentExtensions[0].noBuffer = true;\nlet errors = { Error, TypeError, ReferenceError };\ncurrentExtensions[101] = () => {\n let data = read();\n return (errors[data[0]] || Error)(data[1]);\n};\ncurrentExtensions[105] = (data) => {\n let id = dataView.getUint32(position$1 - 4);\n if (!referenceMap)\n referenceMap = /* @__PURE__ */ new Map();\n let token = src[position$1];\n let target2;\n if (token >= 144 && token < 160 || token == 220 || token == 221)\n target2 = [];\n else\n target2 = {};\n let refEntry = { target: target2 };\n referenceMap.set(id, refEntry);\n let targetProperties = read();\n if (refEntry.used)\n return Object.assign(target2, targetProperties);\n refEntry.target = targetProperties;\n return targetProperties;\n};\ncurrentExtensions[112] = (data) => {\n let id = dataView.getUint32(position$1 - 4);\n let refEntry = referenceMap.get(id);\n refEntry.used = true;\n return refEntry.target;\n};\ncurrentExtensions[115] = () => new Set(read());\nconst typedArrays = [\"Int8\", \"Uint8\", \"Uint8Clamped\", \"Int16\", \"Uint16\", \"Int32\", \"Uint32\", \"Float32\", \"Float64\", \"BigInt64\", \"BigUint64\"].map((type) => type + \"Array\");\nlet glbl = typeof globalThis === \"object\" ? globalThis : window;\ncurrentExtensions[116] = (data) => {\n let typeCode = data[0];\n let typedArrayName = typedArrays[typeCode];\n if (!typedArrayName)\n throw new Error(\"Could not find typed array for code \" + typeCode);\n return new glbl[typedArrayName](Uint8Array.prototype.slice.call(data, 1).buffer);\n};\ncurrentExtensions[120] = () => {\n let data = read();\n return new RegExp(data[0], data[1]);\n};\nconst TEMP_BUNDLE = [];\ncurrentExtensions[98] = (data) => {\n let dataSize = (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3];\n let dataPosition = position$1;\n position$1 += dataSize - data.length;\n bundledStrings$1 = TEMP_BUNDLE;\n bundledStrings$1 = [readOnlyJSString(), readOnlyJSString()];\n bundledStrings$1.position0 = 0;\n bundledStrings$1.position1 = 0;\n bundledStrings$1.postBundlePosition = position$1;\n position$1 = dataPosition;\n return read();\n};\ncurrentExtensions[255] = (data) => {\n if (data.length == 4)\n return new Date((data[0] * 16777216 + (data[1] << 16) + (data[2] << 8) + data[3]) * 1e3);\n else if (data.length == 8)\n return new Date(\n ((data[0] << 22) + (data[1] << 14) + (data[2] << 6) + (data[3] >> 2)) / 1e6 + ((data[3] & 3) * 4294967296 + data[4] * 16777216 + (data[5] << 16) + (data[6] << 8) + data[7]) * 1e3\n );\n else if (data.length == 12)\n return new Date(\n ((data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3]) / 1e6 + ((data[4] & 128 ? -281474976710656 : 0) + data[6] * 1099511627776 + data[7] * 4294967296 + data[8] * 16777216 + (data[9] << 16) + (data[10] << 8) + data[11]) * 1e3\n );\n else\n return /* @__PURE__ */ new Date(\"invalid\");\n};\nfunction saveState(callback) {\n let savedSrcEnd = srcEnd;\n let savedPosition = position$1;\n let savedSrcStringStart = srcStringStart;\n let savedSrcStringEnd = srcStringEnd;\n let savedSrcString = srcString;\n let savedReferenceMap = referenceMap;\n let savedBundledStrings = bundledStrings$1;\n let savedSrc = new Uint8Array(src.slice(0, srcEnd));\n let savedStructures = currentStructures;\n let savedStructuresContents = currentStructures.slice(0, currentStructures.length);\n let savedPackr = currentUnpackr;\n let savedSequentialMode = sequentialMode;\n let value = callback();\n srcEnd = savedSrcEnd;\n position$1 = savedPosition;\n srcStringStart = savedSrcStringStart;\n srcStringEnd = savedSrcStringEnd;\n srcString = savedSrcString;\n referenceMap = savedReferenceMap;\n bundledStrings$1 = savedBundledStrings;\n src = savedSrc;\n sequentialMode = savedSequentialMode;\n currentStructures = savedStructures;\n currentStructures.splice(0, currentStructures.length, ...savedStructuresContents);\n currentUnpackr = savedPackr;\n dataView = new DataView(src.buffer, src.byteOffset, src.byteLength);\n return value;\n}\nfunction clearSource() {\n src = null;\n referenceMap = null;\n currentStructures = null;\n}\nfunction addExtension$1(extension) {\n if (extension.unpack)\n currentExtensions[extension.type] = extension.unpack;\n else\n currentExtensions[extension.type] = extension;\n}\nconst mult10 = new Array(147);\nfor (let i = 0; i < 256; i++) {\n mult10[i] = +(\"1e\" + Math.floor(45.15 - i * 0.30103));\n}\nvar defaultUnpackr = new Unpackr({ useRecords: false });\nconst unpack = defaultUnpackr.unpack;\ndefaultUnpackr.unpackMultiple;\ndefaultUnpackr.unpack;\nlet f32Array = new Float32Array(1);\nnew Uint8Array(f32Array.buffer, 0, 4);\nlet textEncoder;\ntry {\n textEncoder = new TextEncoder();\n} catch (error) {\n}\nlet extensions, extensionClasses;\nconst hasNodeBuffer = typeof Buffer !== \"undefined\";\nconst ByteArrayAllocate = hasNodeBuffer ? function(length) {\n return Buffer.allocUnsafeSlow(length);\n} : Uint8Array;\nconst ByteArray = hasNodeBuffer ? Buffer : Uint8Array;\nconst MAX_BUFFER_SIZE = hasNodeBuffer ? 4294967296 : 2144337920;\nlet target, keysTarget;\nlet targetView;\nlet position = 0;\nlet safeEnd;\nlet bundledStrings = null;\nlet writeStructSlots;\nconst MAX_BUNDLE_SIZE = 21760;\nconst hasNonLatin = /[\\u0080-\\uFFFF]/;\nconst RECORD_SYMBOL = Symbol(\"record-id\");\nclass Packr extends Unpackr {\n constructor(options2) {\n super(options2);\n this.offset = 0;\n let start;\n let hasSharedUpdate;\n let structures;\n let referenceMap2;\n let encodeUtf8 = ByteArray.prototype.utf8Write ? function(string, position2) {\n return target.utf8Write(string, position2, 4294967295);\n } : textEncoder && textEncoder.encodeInto ? function(string, position2) {\n return textEncoder.encodeInto(string, target.subarray(position2)).written;\n } : false;\n let packr = this;\n if (!options2)\n options2 = {};\n let isSequential = options2 && options2.sequential;\n let hasSharedStructures = options2.structures || options2.saveStructures;\n let maxSharedStructures = options2.maxSharedStructures;\n if (maxSharedStructures == null)\n maxSharedStructures = hasSharedStructures ? 32 : 0;\n if (maxSharedStructures > 8160)\n throw new Error(\"Maximum maxSharedStructure is 8160\");\n if (options2.structuredClone && options2.moreTypes == void 0) {\n this.moreTypes = true;\n }\n let maxOwnStructures = options2.maxOwnStructures;\n if (maxOwnStructures == null)\n maxOwnStructures = hasSharedStructures ? 32 : 64;\n if (!this.structures && options2.useRecords != false)\n this.structures = [];\n let useTwoByteRecords = maxSharedStructures > 32 || maxOwnStructures + maxSharedStructures > 64;\n let sharedLimitId = maxSharedStructures + 64;\n let maxStructureId = maxSharedStructures + maxOwnStructures + 64;\n if (maxStructureId > 8256) {\n throw new Error(\"Maximum maxSharedStructure + maxOwnStructure is 8192\");\n }\n let recordIdsToRemove = [];\n let transitionsCount = 0;\n let serializationsSinceTransitionRebuild = 0;\n this.pack = this.encode = function(value, encodeOptions) {\n if (!target) {\n target = new ByteArrayAllocate(8192);\n targetView = target.dataView || (target.dataView = new DataView(target.buffer, 0, 8192));\n position = 0;\n }\n safeEnd = target.length - 10;\n if (safeEnd - position < 2048) {\n target = new ByteArrayAllocate(target.length);\n targetView = target.dataView || (target.dataView = new DataView(target.buffer, 0, target.length));\n safeEnd = target.length - 10;\n position = 0;\n } else\n position = position + 7 & 2147483640;\n start = position;\n if (encodeOptions & RESERVE_START_SPACE)\n position += encodeOptions & 255;\n referenceMap2 = packr.structuredClone ? /* @__PURE__ */ new Map() : null;\n if (packr.bundleStrings && typeof value !== \"string\") {\n bundledStrings = [];\n bundledStrings.size = Infinity;\n } else\n bundledStrings = null;\n structures = packr.structures;\n if (structures) {\n if (structures.uninitialized)\n structures = packr._mergeStructures(packr.getStructures());\n let sharedLength = structures.sharedLength || 0;\n if (sharedLength > maxSharedStructures) {\n throw new Error(\"Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to \" + structures.sharedLength);\n }\n if (!structures.transitions) {\n structures.transitions = /* @__PURE__ */ Object.create(null);\n for (let i = 0; i < sharedLength; i++) {\n let keys = structures[i];\n if (!keys)\n continue;\n let nextTransition, transition = structures.transitions;\n for (let j = 0, l = keys.length; j < l; j++) {\n let key = keys[j];\n nextTransition = transition[key];\n if (!nextTransition) {\n nextTransition = transition[key] = /* @__PURE__ */ Object.create(null);\n }\n transition = nextTransition;\n }\n transition[RECORD_SYMBOL] = i + 64;\n }\n this.lastNamedStructuresLength = sharedLength;\n }\n if (!isSequential) {\n structures.nextId = sharedLength + 64;\n }\n }\n if (hasSharedUpdate)\n hasSharedUpdate = false;\n try {\n if (packr.randomAccessStructure && value && value.constructor && value.constructor === Object)\n writeStruct(value);\n else\n pack2(value);\n let lastBundle = bundledStrings;\n if (bundledStrings)\n writeBundles(start, pack2, 0);\n if (referenceMap2 && referenceMap2.idsToInsert) {\n let idsToInsert = referenceMap2.idsToInsert.sort((a, b) => a.offset > b.offset ? 1 : -1);\n let i = idsToInsert.length;\n let incrementPosition = -1;\n while (lastBundle && i > 0) {\n let insertionPoint = idsToInsert[--i].offset + start;\n if (insertionPoint < lastBundle.stringsPosition + start && incrementPosition === -1)\n incrementPosition = 0;\n if (insertionPoint > lastBundle.position + start) {\n if (incrementPosition >= 0)\n incrementPosition += 6;\n } else {\n if (incrementPosition >= 0) {\n targetView.setUint32(\n lastBundle.position + start,\n targetView.getUint32(lastBundle.position + start) + incrementPosition\n );\n incrementPosition = -1;\n }\n lastBundle = lastBundle.previous;\n i++;\n }\n }\n if (incrementPosition >= 0 && lastBundle) {\n targetView.setUint32(\n lastBundle.position + start,\n targetView.getUint32(lastBundle.position + start) + incrementPosition\n );\n }\n position += idsToInsert.length * 6;\n if (position > safeEnd)\n makeRoom(position);\n packr.offset = position;\n let serialized = insertIds(target.subarray(start, position), idsToInsert);\n referenceMap2 = null;\n return serialized;\n }\n packr.offset = position;\n if (encodeOptions & REUSE_BUFFER_MODE) {\n target.start = start;\n target.end = position;\n return target;\n }\n return target.subarray(start, position);\n } finally {\n if (structures) {\n resetStructures();\n if (hasSharedUpdate && packr.saveStructures) {\n let sharedLength = structures.sharedLength || 0;\n let returnBuffer = target.subarray(start, position);\n let newSharedData = prepareStructures(structures, packr);\n if (packr.saveStructures(newSharedData, newSharedData.isCompatible) === false) {\n return packr.pack(value, encodeOptions);\n }\n packr.lastNamedStructuresLength = sharedLength;\n return returnBuffer;\n }\n }\n if (encodeOptions & RESET_BUFFER_MODE)\n position = start;\n }\n };\n const resetStructures = () => {\n if (serializationsSinceTransitionRebuild < 10)\n serializationsSinceTransitionRebuild++;\n let sharedLength = structures.sharedLength || 0;\n if (structures.length > sharedLength && !isSequential)\n structures.length = sharedLength;\n if (transitionsCount > 1e4) {\n structures.transitions = null;\n serializationsSinceTransitionRebuild = 0;\n transitionsCount = 0;\n if (recordIdsToRemove.length > 0)\n recordIdsToRemove = [];\n } else if (recordIdsToRemove.length > 0 && !isSequential) {\n for (let i = 0, l = recordIdsToRemove.length; i < l; i++) {\n recordIdsToRemove[i][RECORD_SYMBOL] = 0;\n }\n recordIdsToRemove = [];\n }\n };\n const packArray = (value) => {\n var length = value.length;\n if (length < 16) {\n target[position++] = 144 | length;\n } else if (length < 65536) {\n target[position++] = 220;\n target[position++] = length >> 8;\n target[position++] = length & 255;\n } else {\n target[position++] = 221;\n targetView.setUint32(position, length);\n position += 4;\n }\n for (let i = 0; i < length; i++) {\n pack2(value[i]);\n }\n };\n const pack2 = (value) => {\n if (position > safeEnd)\n target = makeRoom(position);\n var type = typeof value;\n var length;\n if (type === \"string\") {\n let strLength = value.length;\n if (bundledStrings && strLength >= 4 && strLength < 4096) {\n if ((bundledStrings.size += strLength) > MAX_BUNDLE_SIZE) {\n let extStart;\n let maxBytes2 = (bundledStrings[0] ? bundledStrings[0].length * 3 + bundledStrings[1].length : 0) + 10;\n if (position + maxBytes2 > safeEnd)\n target = makeRoom(position + maxBytes2);\n let lastBundle;\n if (bundledStrings.position) {\n lastBundle = bundledStrings;\n target[position] = 200;\n position += 3;\n target[position++] = 98;\n extStart = position - start;\n position += 4;\n writeBundles(start, pack2, 0);\n targetView.setUint16(extStart + start - 3, position - start - extStart);\n } else {\n target[position++] = 214;\n target[position++] = 98;\n extStart = position - start;\n position += 4;\n }\n bundledStrings = [\"\", \"\"];\n bundledStrings.previous = lastBundle;\n bundledStrings.size = 0;\n bundledStrings.position = extStart;\n }\n let twoByte = hasNonLatin.test(value);\n bundledStrings[twoByte ? 0 : 1] += value;\n target[position++] = 193;\n pack2(twoByte ? -strLength : strLength);\n return;\n }\n let headerSize;\n if (strLength < 32) {\n headerSize = 1;\n } else if (strLength < 256) {\n headerSize = 2;\n } else if (strLength < 65536) {\n headerSize = 3;\n } else {\n headerSize = 5;\n }\n let maxBytes = strLength * 3;\n if (position + maxBytes > safeEnd)\n target = makeRoom(position + maxBytes);\n if (strLength < 64 || !encodeUtf8) {\n let i, c1, c2, strPosition = position + headerSize;\n for (i = 0; i < strLength; i++) {\n c1 = value.charCodeAt(i);\n if (c1 < 128) {\n target[strPosition++] = c1;\n } else if (c1 < 2048) {\n target[strPosition++] = c1 >> 6 | 192;\n target[strPosition++] = c1 & 63 | 128;\n } else if ((c1 & 64512) === 55296 && ((c2 = value.charCodeAt(i + 1)) & 64512) === 56320) {\n c1 = 65536 + ((c1 & 1023) << 10) + (c2 & 1023);\n i++;\n target[strPosition++] = c1 >> 18 | 240;\n target[strPosition++] = c1 >> 12 & 63 | 128;\n target[strPosition++] = c1 >> 6 & 63 | 128;\n target[strPosition++] = c1 & 63 | 128;\n } else {\n target[strPosition++] = c1 >> 12 | 224;\n target[strPosition++] = c1 >> 6 & 63 | 128;\n target[strPosition++] = c1 & 63 | 128;\n }\n }\n length = strPosition - position - headerSize;\n } else {\n length = encodeUtf8(value, position + headerSize);\n }\n if (length < 32) {\n target[position++] = 160 | length;\n } else if (length < 256) {\n if (headerSize < 2) {\n target.copyWithin(position + 2, position + 1, position + 1 + length);\n }\n target[position++] = 217;\n target[position++] = length;\n } else if (length < 65536) {\n if (headerSize < 3) {\n target.copyWithin(position + 3, position + 2, position + 2 + length);\n }\n target[position++] = 218;\n target[position++] = length >> 8;\n target[position++] = length & 255;\n } else {\n if (headerSize < 5) {\n target.copyWithin(position + 5, position + 3, position + 3 + length);\n }\n target[position++] = 219;\n targetView.setUint32(position, length);\n position += 4;\n }\n position += length;\n } else if (type === \"number\") {\n if (value >>> 0 === value) {\n if (value < 32 || value < 128 && this.useRecords === false || value < 64 && !this.randomAccessStructure) {\n target[position++] = value;\n } else if (value < 256) {\n target[position++] = 204;\n target[position++] = value;\n } else if (value < 65536) {\n target[position++] = 205;\n target[position++] = value >> 8;\n target[position++] = value & 255;\n } else {\n target[position++] = 206;\n targetView.setUint32(position, value);\n position += 4;\n }\n } else if (value >> 0 === value) {\n if (value >= -32) {\n target[position++] = 256 + value;\n } else if (value >= -128) {\n target[position++] = 208;\n target[position++] = value + 256;\n } else if (value >= -32768) {\n target[position++] = 209;\n targetView.setInt16(position, value);\n position += 2;\n } else {\n target[position++] = 210;\n targetView.setInt32(position, value);\n position += 4;\n }\n } else {\n let useFloat32;\n if ((useFloat32 = this.useFloat32) > 0 && value < 4294967296 && value >= -2147483648) {\n target[position++] = 202;\n targetView.setFloat32(position, value);\n let xShifted;\n if (useFloat32 < 4 || // this checks for rounding of numbers that were encoded in 32-bit float to nearest significant decimal digit that could be preserved\n (xShifted = value * mult10[(target[position] & 127) << 1 | target[position + 1] >> 7]) >> 0 === xShifted) {\n position += 4;\n return;\n } else\n position--;\n }\n target[position++] = 203;\n targetView.setFloat64(position, value);\n position += 8;\n }\n } else if (type === \"object\" || type === \"function\") {\n if (!value)\n target[position++] = 192;\n else {\n if (referenceMap2) {\n let referee = referenceMap2.get(value);\n if (referee) {\n if (!referee.id) {\n let idsToInsert = referenceMap2.idsToInsert || (referenceMap2.idsToInsert = []);\n referee.id = idsToInsert.push(referee);\n }\n target[position++] = 214;\n target[position++] = 112;\n targetView.setUint32(position, referee.id);\n position += 4;\n return;\n } else\n referenceMap2.set(value, { offset: position - start });\n }\n let constructor = value.constructor;\n if (constructor === Object) {\n writeObject(value, true);\n } else if (constructor === Array) {\n packArray(value);\n } else if (constructor === Map) {\n if (this.mapAsEmptyObject)\n target[position++] = 128;\n else {\n length = value.size;\n if (length < 16) {\n target[position++] = 128 | length;\n } else if (length < 65536) {\n target[position++] = 222;\n target[position++] = length >> 8;\n target[position++] = length & 255;\n } else {\n target[position++] = 223;\n targetView.setUint32(position, length);\n position += 4;\n }\n for (let [key, entryValue] of value) {\n pack2(key);\n pack2(entryValue);\n }\n }\n } else {\n for (let i = 0, l = extensions.length; i < l; i++) {\n let extensionClass = extensionClasses[i];\n if (value instanceof extensionClass) {\n let extension = extensions[i];\n if (extension.write) {\n if (extension.type) {\n target[position++] = 212;\n target[position++] = extension.type;\n target[position++] = 0;\n }\n let writeResult = extension.write.call(this, value);\n if (writeResult === value) {\n if (Array.isArray(value)) {\n packArray(value);\n } else {\n writeObject(value);\n }\n } else {\n pack2(writeResult);\n }\n return;\n }\n let currentTarget = target;\n let currentTargetView = targetView;\n let currentPosition = position;\n target = null;\n let result;\n try {\n result = extension.pack.call(this, value, (size) => {\n target = currentTarget;\n currentTarget = null;\n position += size;\n if (position > safeEnd)\n makeRoom(position);\n return {\n target,\n targetView,\n position: position - size\n };\n }, pack2);\n } finally {\n if (currentTarget) {\n target = currentTarget;\n targetView = currentTargetView;\n position = currentPosition;\n safeEnd = target.length - 10;\n }\n }\n if (result) {\n if (result.length + position > safeEnd)\n makeRoom(result.length + position);\n position = writeExtensionData(result, target, position, extension.type);\n }\n return;\n }\n }\n if (Array.isArray(value)) {\n packArray(value);\n } else {\n if (value.toJSON) {\n const json = value.toJSON();\n if (json !== value)\n return pack2(json);\n }\n if (type === \"function\")\n return pack2(this.writeFunction && this.writeFunction(value));\n writeObject(value, !value.hasOwnProperty);\n }\n }\n }\n } else if (type === \"boolean\") {\n target[position++] = value ? 195 : 194;\n } else if (type === \"bigint\") {\n if (value < BigInt(1) << BigInt(63) && value >= -(BigInt(1) << BigInt(63))) {\n target[position++] = 211;\n targetView.setBigInt64(position, value);\n } else if (value < BigInt(1) << BigInt(64) && value > 0) {\n target[position++] = 207;\n targetView.setBigUint64(position, value);\n } else {\n if (this.largeBigIntToFloat) {\n target[position++] = 203;\n targetView.setFloat64(position, Number(value));\n } else {\n throw new RangeError(value + \" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64\");\n }\n }\n position += 8;\n } else if (type === \"undefined\") {\n if (this.encodeUndefinedAsNil)\n target[position++] = 192;\n else {\n target[position++] = 212;\n target[position++] = 0;\n target[position++] = 0;\n }\n } else {\n throw new Error(\"Unknown type: \" + type);\n }\n };\n const writePlainObject = this.variableMapSize || this.coercibleKeyAsNumber ? (object) => {\n let keys = Object.keys(object);\n let length = keys.length;\n if (length < 16) {\n target[position++] = 128 | length;\n } else if (length < 65536) {\n target[position++] = 222;\n target[position++] = length >> 8;\n target[position++] = length & 255;\n } else {\n target[position++] = 223;\n targetView.setUint32(position, length);\n position += 4;\n }\n let key;\n if (this.coercibleKeyAsNumber) {\n for (let i = 0; i < length; i++) {\n key = keys[i];\n let num = Number(key);\n pack2(isNaN(num) ? key : num);\n pack2(object[key]);\n }\n } else {\n for (let i = 0; i < length; i++) {\n pack2(key = keys[i]);\n pack2(object[key]);\n }\n }\n } : (object, safePrototype) => {\n target[position++] = 222;\n let objectOffset = position - start;\n position += 2;\n let size = 0;\n for (let key in object) {\n if (safePrototype || object.hasOwnProperty(key)) {\n pack2(key);\n pack2(object[key]);\n size++;\n }\n }\n target[objectOffset++ + start] = size >> 8;\n target[objectOffset + start] = size & 255;\n };\n const writeRecord = this.useRecords === false ? writePlainObject : options2.progressiveRecords && !useTwoByteRecords ? (\n // this is about 2% faster for highly stable structures, since it only requires one for-in loop (but much more expensive when new structure needs to be written)\n (object, safePrototype) => {\n let nextTransition, transition = structures.transitions || (structures.transitions = /* @__PURE__ */ Object.create(null));\n let objectOffset = position++ - start;\n let wroteKeys;\n for (let key in object) {\n if (safePrototype || object.hasOwnProperty(key)) {\n nextTransition = transition[key];\n if (nextTransition)\n transition = nextTransition;\n else {\n let keys = Object.keys(object);\n let lastTransition = transition;\n transition = structures.transitions;\n let newTransitions = 0;\n for (let i = 0, l = keys.length; i < l; i++) {\n let key2 = keys[i];\n nextTransition = transition[key2];\n if (!nextTransition) {\n nextTransition = transition[key2] = /* @__PURE__ */ Object.create(null);\n newTransitions++;\n }\n transition = nextTransition;\n }\n if (objectOffset + start + 1 == position) {\n position--;\n newRecord(transition, keys, newTransitions);\n } else\n insertNewRecord(transition, keys, objectOffset, newTransitions);\n wroteKeys = true;\n transition = lastTransition[key];\n }\n pack2(object[key]);\n }\n }\n if (!wroteKeys) {\n let recordId = transition[RECORD_SYMBOL];\n if (recordId)\n target[objectOffset + start] = recordId;\n else\n insertNewRecord(transition, Object.keys(object), objectOffset, 0);\n }\n }\n ) : (object, safePrototype) => {\n let nextTransition, transition = structures.transitions || (structures.transitions = /* @__PURE__ */ Object.create(null));\n let newTransitions = 0;\n for (let key in object)\n if (safePrototype || object.hasOwnProperty(key)) {\n nextTransition = transition[key];\n if (!nextTransition) {\n nextTransition = transition[key] = /* @__PURE__ */ Object.create(null);\n newTransitions++;\n }\n transition = nextTransition;\n }\n let recordId = transition[RECORD_SYMBOL];\n if (recordId) {\n if (recordId >= 96 && useTwoByteRecords) {\n target[position++] = ((recordId -= 96) & 31) + 96;\n target[position++] = recordId >> 5;\n } else\n target[position++] = recordId;\n } else {\n newRecord(transition, transition.__keys__ || Object.keys(object), newTransitions);\n }\n for (let key in object)\n if (safePrototype || object.hasOwnProperty(key)) {\n pack2(object[key]);\n }\n };\n const checkUseRecords = typeof this.useRecords == \"function\" && this.useRecords;\n const writeObject = checkUseRecords ? (object, safePrototype) => {\n checkUseRecords(object) ? writeRecord(object, safePrototype) : writePlainObject(object, safePrototype);\n } : writeRecord;\n const makeRoom = (end) => {\n let newSize;\n if (end > 16777216) {\n if (end - start > MAX_BUFFER_SIZE)\n throw new Error(\"Packed buffer would be larger than maximum buffer size\");\n newSize = Math.min(\n MAX_BUFFER_SIZE,\n Math.round(Math.max((end - start) * (end > 67108864 ? 1.25 : 2), 4194304) / 4096) * 4096\n );\n } else\n newSize = (Math.max(end - start << 2, target.length - 1) >> 12) + 1 << 12;\n let newBuffer = new ByteArrayAllocate(newSize);\n targetView = newBuffer.dataView || (newBuffer.dataView = new DataView(newBuffer.buffer, 0, newSize));\n end = Math.min(end, target.length);\n if (target.copy)\n target.copy(newBuffer, 0, start, end);\n else\n newBuffer.set(target.slice(start, end));\n position -= start;\n start = 0;\n safeEnd = newBuffer.length - 10;\n return target = newBuffer;\n };\n const newRecord = (transition, keys, newTransitions) => {\n let recordId = structures.nextId;\n if (!recordId)\n recordId = 64;\n if (recordId < sharedLimitId && this.shouldShareStructure && !this.shouldShareStructure(keys)) {\n recordId = structures.nextOwnId;\n if (!(recordId < maxStructureId))\n recordId = sharedLimitId;\n structures.nextOwnId = recordId + 1;\n } else {\n if (recordId >= maxStructureId)\n recordId = sharedLimitId;\n structures.nextId = recordId + 1;\n }\n let highByte = keys.highByte = recordId >= 96 && useTwoByteRecords ? recordId - 96 >> 5 : -1;\n transition[RECORD_SYMBOL] = recordId;\n transition.__keys__ = keys;\n structures[recordId - 64] = keys;\n if (recordId < sharedLimitId) {\n keys.isShared = true;\n structures.sharedLength = recordId - 63;\n hasSharedUpdate = true;\n if (highByte >= 0) {\n target[position++] = (recordId & 31) + 96;\n target[position++] = highByte;\n } else {\n target[position++] = recordId;\n }\n } else {\n if (highByte >= 0) {\n target[position++] = 213;\n target[position++] = 114;\n target[position++] = (recordId & 31) + 96;\n target[position++] = highByte;\n } else {\n target[position++] = 212;\n target[position++] = 114;\n target[position++] = recordId;\n }\n if (newTransitions)\n transitionsCount += serializationsSinceTransitionRebuild * newTransitions;\n if (recordIdsToRemove.length >= maxOwnStructures)\n recordIdsToRemove.shift()[RECORD_SYMBOL] = 0;\n recordIdsToRemove.push(transition);\n pack2(keys);\n }\n };\n const insertNewRecord = (transition, keys, insertionOffset, newTransitions) => {\n let mainTarget = target;\n let mainPosition = position;\n let mainSafeEnd = safeEnd;\n let mainStart = start;\n target = keysTarget;\n position = 0;\n start = 0;\n if (!target)\n keysTarget = target = new ByteArrayAllocate(8192);\n safeEnd = target.length - 10;\n newRecord(transition, keys, newTransitions);\n keysTarget = target;\n let keysPosition = position;\n target = mainTarget;\n position = mainPosition;\n safeEnd = mainSafeEnd;\n start = mainStart;\n if (keysPosition > 1) {\n let newEnd = position + keysPosition - 1;\n if (newEnd > safeEnd)\n makeRoom(newEnd);\n let insertionPosition = insertionOffset + start;\n target.copyWithin(insertionPosition + keysPosition, insertionPosition + 1, position);\n target.set(keysTarget.slice(0, keysPosition), insertionPosition);\n position = newEnd;\n } else {\n target[insertionOffset + start] = keysTarget[0];\n }\n };\n const writeStruct = (object, safePrototype) => {\n let newPosition = writeStructSlots(object, target, start, position, structures, makeRoom, (value, newPosition2, notifySharedUpdate) => {\n if (notifySharedUpdate)\n return hasSharedUpdate = true;\n position = newPosition2;\n let startTarget = target;\n pack2(value);\n resetStructures();\n if (startTarget !== target) {\n return { position, targetView, target };\n }\n return position;\n }, this);\n if (newPosition === 0)\n return writeObject(object, true);\n position = newPosition;\n };\n }\n useBuffer(buffer) {\n target = buffer;\n targetView = new DataView(target.buffer, target.byteOffset, target.byteLength);\n position = 0;\n }\n clearSharedData() {\n if (this.structures)\n this.structures = [];\n if (this.typedStructs)\n this.typedStructs = [];\n }\n}\nextensionClasses = [Date, Set, Error, RegExp, ArrayBuffer, Object.getPrototypeOf(Uint8Array.prototype).constructor, C1Type];\nextensions = [{\n pack(date, allocateForWrite, pack2) {\n let seconds = date.getTime() / 1e3;\n if ((this.useTimestamp32 || date.getMilliseconds() === 0) && seconds >= 0 && seconds < 4294967296) {\n let { target: target2, targetView: targetView2, position: position2 } = allocateForWrite(6);\n target2[position2++] = 214;\n target2[position2++] = 255;\n targetView2.setUint32(position2, seconds);\n } else if (seconds > 0 && seconds < 4294967296) {\n let { target: target2, targetView: targetView2, position: position2 } = allocateForWrite(10);\n target2[position2++] = 215;\n target2[position2++] = 255;\n targetView2.setUint32(position2, date.getMilliseconds() * 4e6 + (seconds / 1e3 / 4294967296 >> 0));\n targetView2.setUint32(position2 + 4, seconds);\n } else if (isNaN(seconds)) {\n if (this.onInvalidDate) {\n allocateForWrite(0);\n return pack2(this.onInvalidDate());\n }\n let { target: target2, targetView: targetView2, position: position2 } = allocateForWrite(3);\n target2[position2++] = 212;\n target2[position2++] = 255;\n target2[position2++] = 255;\n } else {\n let { target: target2, targetView: targetView2, position: position2 } = allocateForWrite(15);\n target2[position2++] = 199;\n target2[position2++] = 12;\n target2[position2++] = 255;\n targetView2.setUint32(position2, date.getMilliseconds() * 1e6);\n targetView2.setBigInt64(position2 + 4, BigInt(Math.floor(seconds)));\n }\n }\n}, {\n pack(set2, allocateForWrite, pack2) {\n if (this.setAsEmptyObject) {\n allocateForWrite(0);\n return pack2({});\n }\n let array = Array.from(set2);\n let { target: target2, position: position2 } = allocateForWrite(this.moreTypes ? 3 : 0);\n if (this.moreTypes) {\n target2[position2++] = 212;\n target2[position2++] = 115;\n target2[position2++] = 0;\n }\n pack2(array);\n }\n}, {\n pack(error, allocateForWrite, pack2) {\n let { target: target2, position: position2 } = allocateForWrite(this.moreTypes ? 3 : 0);\n if (this.moreTypes) {\n target2[position2++] = 212;\n target2[position2++] = 101;\n target2[position2++] = 0;\n }\n pack2([error.name, error.message]);\n }\n}, {\n pack(regex, allocateForWrite, pack2) {\n let { target: target2, position: position2 } = allocateForWrite(this.moreTypes ? 3 : 0);\n if (this.moreTypes) {\n target2[position2++] = 212;\n target2[position2++] = 120;\n target2[position2++] = 0;\n }\n pack2([regex.source, regex.flags]);\n }\n}, {\n pack(arrayBuffer, allocateForWrite) {\n if (this.moreTypes)\n writeExtBuffer(arrayBuffer, 16, allocateForWrite);\n else\n writeBuffer(hasNodeBuffer ? Buffer.from(arrayBuffer) : new Uint8Array(arrayBuffer), allocateForWrite);\n }\n}, {\n pack(typedArray, allocateForWrite) {\n let constructor = typedArray.constructor;\n if (constructor !== ByteArray && this.moreTypes)\n writeExtBuffer(typedArray, typedArrays.indexOf(constructor.name), allocateForWrite);\n else\n writeBuffer(typedArray, allocateForWrite);\n }\n}, {\n pack(c1, allocateForWrite) {\n let { target: target2, position: position2 } = allocateForWrite(1);\n target2[position2] = 193;\n }\n}];\nfunction writeExtBuffer(typedArray, type, allocateForWrite, encode) {\n let length = typedArray.byteLength;\n if (length + 1 < 256) {\n var { target: target2, position: position2 } = allocateForWrite(4 + length);\n target2[position2++] = 199;\n target2[position2++] = length + 1;\n } else if (length + 1 < 65536) {\n var { target: target2, position: position2 } = allocateForWrite(5 + length);\n target2[position2++] = 200;\n target2[position2++] = length + 1 >> 8;\n target2[position2++] = length + 1 & 255;\n } else {\n var { target: target2, position: position2, targetView: targetView2 } = allocateForWrite(7 + length);\n target2[position2++] = 201;\n targetView2.setUint32(position2, length + 1);\n position2 += 4;\n }\n target2[position2++] = 116;\n target2[position2++] = type;\n target2.set(new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength), position2);\n}\nfunction writeBuffer(buffer, allocateForWrite) {\n let length = buffer.byteLength;\n var target2, position2;\n if (length < 256) {\n var { target: target2, position: position2 } = allocateForWrite(length + 2);\n target2[position2++] = 196;\n target2[position2++] = length;\n } else if (length < 65536) {\n var { target: target2, position: position2 } = allocateForWrite(length + 3);\n target2[position2++] = 197;\n target2[position2++] = length >> 8;\n target2[position2++] = length & 255;\n } else {\n var { target: target2, position: position2, targetView: targetView2 } = allocateForWrite(length + 5);\n target2[position2++] = 198;\n targetView2.setUint32(position2, length);\n position2 += 4;\n }\n target2.set(buffer, position2);\n}\nfunction writeExtensionData(result, target2, position2, type) {\n let length = result.length;\n switch (length) {\n case 1:\n target2[position2++] = 212;\n break;\n case 2:\n target2[position2++] = 213;\n break;\n case 4:\n target2[position2++] = 214;\n break;\n case 8:\n target2[position2++] = 215;\n break;\n case 16:\n target2[position2++] = 216;\n break;\n default:\n if (length < 256) {\n target2[position2++] = 199;\n target2[position2++] = length;\n } else if (length < 65536) {\n target2[position2++] = 200;\n target2[position2++] = length >> 8;\n target2[position2++] = length & 255;\n } else {\n target2[position2++] = 201;\n target2[position2++] = length >> 24;\n target2[position2++] = length >> 16 & 255;\n target2[position2++] = length >> 8 & 255;\n target2[position2++] = length & 255;\n }\n }\n target2[position2++] = type;\n target2.set(result, position2);\n position2 += length;\n return position2;\n}\nfunction insertIds(serialized, idsToInsert) {\n let nextId;\n let distanceToMove = idsToInsert.length * 6;\n let lastEnd = serialized.length - distanceToMove;\n while (nextId = idsToInsert.pop()) {\n let offset = nextId.offset;\n let id = nextId.id;\n serialized.copyWithin(offset + distanceToMove, offset, lastEnd);\n distanceToMove -= 6;\n let position2 = offset + distanceToMove;\n serialized[position2++] = 214;\n serialized[position2++] = 105;\n serialized[position2++] = id >> 24;\n serialized[position2++] = id >> 16 & 255;\n serialized[position2++] = id >> 8 & 255;\n serialized[position2++] = id & 255;\n lastEnd = offset;\n }\n return serialized;\n}\nfunction writeBundles(start, pack2, incrementPosition) {\n if (bundledStrings.length > 0) {\n targetView.setUint32(bundledStrings.position + start, position + incrementPosition - bundledStrings.position - start);\n bundledStrings.stringsPosition = position - start;\n let writeStrings = bundledStrings;\n bundledStrings = null;\n pack2(writeStrings[0]);\n pack2(writeStrings[1]);\n }\n}\nfunction addExtension(extension) {\n if (extension.Class) {\n if (!extension.pack && !extension.write)\n throw new Error(\"Extension has no pack or write function\");\n if (extension.pack && !extension.type)\n throw new Error(\"Extension has no type (numeric code to identify the extension)\");\n extensionClasses.unshift(extension.Class);\n extensions.unshift(extension);\n }\n addExtension$1(extension);\n}\nfunction prepareStructures(structures, packr) {\n structures.isCompatible = (existingStructures) => {\n let compatible = !existingStructures || (packr.lastNamedStructuresLength || 0) === existingStructures.length;\n if (!compatible)\n packr._mergeStructures(existingStructures);\n return compatible;\n };\n return structures;\n}\nlet defaultPackr = new Packr({ useRecords: false });\nconst pack = defaultPackr.pack;\ndefaultPackr.pack;\nconst REUSE_BUFFER_MODE = 512;\nconst RESET_BUFFER_MODE = 1024;\nconst RESERVE_START_SPACE = 2048;\nclass MsgpackEncoderDecoder {\n constructor() {\n __publicField(this, \"contentType\", \"application/msgpack\");\n }\n encode(payload) {\n return pack(Case.toSnake(payload));\n }\n decode(data, schema) {\n const unpacked = Case.toCamel(unpack(new Uint8Array(data)));\n return schema != null ? schema.parse(unpacked) : unpacked;\n }\n static registerCustomType(encoder2) {\n addExtension({ type: 0, ...encoder2 });\n }\n}\nclass JSONEncoderDecoder {\n constructor() {\n __publicField(this, \"contentType\", \"application/json\");\n }\n encode(payload) {\n const json = JSON.stringify(Case.toSnake(payload), (_, v) => {\n if (ArrayBuffer.isView(v))\n return Array.from(v);\n return v;\n });\n return new TextEncoder().encode(json);\n }\n decode(data, schema) {\n const unpacked = Case.toCamel(JSON.parse(new TextDecoder().decode(data)));\n return schema != null ? schema.parse(unpacked) : unpacked;\n }\n static registerCustomType() {\n }\n}\nconst ENCODERS = [\n new MsgpackEncoderDecoder(),\n new JSONEncoderDecoder()\n];\nconst ENCODER_CLASSES = [\n MsgpackEncoderDecoder,\n JSONEncoderDecoder\n];\nconst registerCustomTypeEncoder = (encoder2) => ENCODER_CLASSES.forEach((encoderClass) => {\n encoderClass.registerCustomType(encoder2);\n});\nconst encoder = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ENCODERS,\n ENCODER_CLASSES,\n JSONEncoderDecoder,\n MsgpackEncoderDecoder,\n registerCustomTypeEncoder\n}, Symbol.toStringTag, { value: \"Module\" }));\nclass Observer {\n constructor() {\n __publicField(this, \"handlers\");\n this.handlers = /* @__PURE__ */ new Map();\n }\n onChange(handler) {\n this.handlers.set(handler, null);\n return () => this.handlers.delete(handler);\n }\n notify(value) {\n this.handlers.forEach((_, handler) => handler(value));\n }\n}\nconst observe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Observer\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst Z = (value) => z.object({\n variant: z.enum([\"set\", \"delete\"]),\n key: z.string(),\n value\n});\nconst change = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Z\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n Case,\n DataType,\n Density,\n Rate,\n RoutedWorker,\n Search,\n Series,\n Size,\n TimeRange,\n TimeSpan,\n TimeStamp,\n TypedWorker,\n URL$1 as URL,\n addSamples,\n encoder as binary,\n bounds,\n box$1 as box,\n buildQueryString,\n change,\n clamp,\n compare,\n convertDataType,\n convertRenderV,\n createMockWorkers,\n debounce,\n external as deep,\n dimensions,\n direction$1 as direction,\n getEntries,\n isObject,\n isStringer,\n types as kv,\n location,\n nativeTypedArray,\n observe,\n primitiveIsZero,\n external$1 as runtime,\n scale,\n spatial,\n throttle,\n toArray,\n unique,\n unknownRecordZ,\n xy\n};\n//# sourceMappingURL=x.es.js.map\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Updates to this file should also be replicated to @opentelemetry/core too.\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - <object> (When all else fails)\n */\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport var _globalThis = typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {};\n//# sourceMappingURL=globalThis.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport var VERSION = '1.4.1';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { VERSION } from '../version';\nvar re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(ownVersion) {\n var acceptedVersions = new Set([ownVersion]);\n var rejectedVersions = new Set();\n var myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return function () { return false; };\n }\n var ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion) {\n return globalVersion === ownVersion;\n };\n }\n function _reject(v) {\n rejectedVersions.add(v);\n return false;\n }\n function _accept(v) {\n acceptedVersions.add(v);\n return true;\n }\n return function isCompatible(globalVersion) {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n var globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n var globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n if (ownVersionParsed.major === 0) {\n if (ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n }\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n return _reject(globalVersion);\n };\n}\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport var isCompatible = _makeCompatibilityCheck(VERSION);\n//# sourceMappingURL=semver.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { _globalThis } from '../platform';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\nvar major = VERSION.split('.')[0];\nvar GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\"opentelemetry.js.api.\" + major);\nvar _global = _globalThis;\nexport function registerGlobal(type, instance, diag, allowOverride) {\n var _a;\n if (allowOverride === void 0) { allowOverride = false; }\n var api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : {\n version: VERSION,\n });\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n var err = new Error(\"@opentelemetry/api: Attempted duplicate registration of API: \" + type);\n diag.error(err.stack || err.message);\n return false;\n }\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n var err = new Error(\"@opentelemetry/api: Registration of version v\" + api.version + \" for \" + type + \" does not match previously registered API v\" + VERSION);\n diag.error(err.stack || err.message);\n return false;\n }\n api[type] = instance;\n diag.debug(\"@opentelemetry/api: Registered a global for \" + type + \" v\" + VERSION + \".\");\n return true;\n}\nexport function getGlobal(type) {\n var _a, _b;\n var globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];\n}\nexport function unregisterGlobal(type, diag) {\n diag.debug(\"@opentelemetry/api: Unregistering a global for \" + type + \" v\" + VERSION + \".\");\n var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n if (api) {\n delete api[type];\n }\n}\n//# sourceMappingURL=global-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getGlobal } from '../internal/global-utils';\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nvar DiagComponentLogger = /** @class */ (function () {\n function DiagComponentLogger(props) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n DiagComponentLogger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('debug', this._namespace, args);\n };\n DiagComponentLogger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('error', this._namespace, args);\n };\n DiagComponentLogger.prototype.info = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('info', this._namespace, args);\n };\n DiagComponentLogger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('warn', this._namespace, args);\n };\n DiagComponentLogger.prototype.verbose = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return logProxy('verbose', this._namespace, args);\n };\n return DiagComponentLogger;\n}());\nexport { DiagComponentLogger };\nfunction logProxy(funcName, namespace, args) {\n var logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n args.unshift(namespace);\n return logger[funcName].apply(logger, __spreadArray([], __read(args), false));\n}\n//# sourceMappingURL=ComponentLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport var DiagLogLevel;\n(function (DiagLogLevel) {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n DiagLogLevel[DiagLogLevel[\"NONE\"] = 0] = \"NONE\";\n /** Identifies an error scenario */\n DiagLogLevel[DiagLogLevel[\"ERROR\"] = 30] = \"ERROR\";\n /** Identifies a warning scenario */\n DiagLogLevel[DiagLogLevel[\"WARN\"] = 50] = \"WARN\";\n /** General informational log message */\n DiagLogLevel[DiagLogLevel[\"INFO\"] = 60] = \"INFO\";\n /** General debug log message */\n DiagLogLevel[DiagLogLevel[\"DEBUG\"] = 70] = \"DEBUG\";\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n DiagLogLevel[DiagLogLevel[\"VERBOSE\"] = 80] = \"VERBOSE\";\n /** Used to set the logging level to include all logging */\n DiagLogLevel[DiagLogLevel[\"ALL\"] = 9999] = \"ALL\";\n})(DiagLogLevel || (DiagLogLevel = {}));\n//# sourceMappingURL=types.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DiagLogLevel } from '../types';\nexport function createLogLevelDiagLogger(maxLevel, logger) {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n }\n else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n // In case the logger is null or undefined\n logger = logger || {};\n function _filterFunc(funcName, theLevel) {\n var theFunc = logger[funcName];\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () { };\n }\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n//# sourceMappingURL=logLevelLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport { DiagLogLevel, } from '../diag/types';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nvar API_NAME = 'diag';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nvar DiagAPI = /** @class */ (function () {\n /**\n * Private internal constructor\n * @private\n */\n function DiagAPI() {\n function _logProxy(funcName) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger)\n return;\n return logger[funcName].apply(logger, __spreadArray([], __read(args), false));\n };\n }\n // Using self local variable for minification purposes as 'this' cannot be minified\n var self = this;\n // DiagAPI specific functions\n var setLogger = function (logger, optionsOrLogLevel) {\n var _a, _b, _c;\n if (optionsOrLogLevel === void 0) { optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }; }\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n var err = new Error('Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation');\n self.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);\n return false;\n }\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n var oldLogger = getGlobal('diag');\n var newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger);\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : '<failed to generate stacktrace>';\n oldLogger.warn(\"Current logger will be overwritten from \" + stack);\n newLogger.warn(\"Current logger will overwrite one already registered from \" + stack);\n }\n return registerGlobal('diag', newLogger, self, true);\n };\n self.setLogger = setLogger;\n self.disable = function () {\n unregisterGlobal(API_NAME, self);\n };\n self.createComponentLogger = function (options) {\n return new DiagComponentLogger(options);\n };\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n /** Get the singleton instance of the DiagAPI API */\n DiagAPI.instance = function () {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n return this._instance;\n };\n return DiagAPI;\n}());\nexport { DiagAPI };\n//# sourceMappingURL=diag.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BaggageImpl = /** @class */ (function () {\n function BaggageImpl(entries) {\n this._entries = entries ? new Map(entries) : new Map();\n }\n BaggageImpl.prototype.getEntry = function (key) {\n var entry = this._entries.get(key);\n if (!entry) {\n return undefined;\n }\n return Object.assign({}, entry);\n };\n BaggageImpl.prototype.getAllEntries = function () {\n return Array.from(this._entries.entries()).map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return [k, v];\n });\n };\n BaggageImpl.prototype.setEntry = function (key, entry) {\n var newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.set(key, entry);\n return newBaggage;\n };\n BaggageImpl.prototype.removeEntry = function (key) {\n var newBaggage = new BaggageImpl(this._entries);\n newBaggage._entries.delete(key);\n return newBaggage;\n };\n BaggageImpl.prototype.removeEntries = function () {\n var e_1, _a;\n var keys = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n keys[_i] = arguments[_i];\n }\n var newBaggage = new BaggageImpl(this._entries);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n newBaggage._entries.delete(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return newBaggage;\n };\n BaggageImpl.prototype.clear = function () {\n return new BaggageImpl();\n };\n return BaggageImpl;\n}());\nexport { BaggageImpl };\n//# sourceMappingURL=baggage-impl.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Symbol used to make BaggageEntryMetadata an opaque type\n */\nexport var baggageEntryMetadataSymbol = Symbol('BaggageEntryMetadata');\n//# sourceMappingURL=symbol.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DiagAPI } from '../api/diag';\nimport { BaggageImpl } from './internal/baggage-impl';\nimport { baggageEntryMetadataSymbol } from './internal/symbol';\nvar diag = DiagAPI.instance();\n/**\n * Create a new Baggage with optional entries\n *\n * @param entries An array of baggage entries the new baggage should contain\n */\nexport function createBaggage(entries) {\n if (entries === void 0) { entries = {}; }\n return new BaggageImpl(new Map(Object.entries(entries)));\n}\n/**\n * Create a serializable BaggageEntryMetadata object from a string.\n *\n * @param str string metadata. Format is currently not defined by the spec and has no special meaning.\n *\n */\nexport function baggageEntryMetadataFromString(str) {\n if (typeof str !== 'string') {\n diag.error(\"Cannot create baggage metadata from unknown type: \" + typeof str);\n str = '';\n }\n return {\n __TYPE__: baggageEntryMetadataSymbol,\n toString: function () {\n return str;\n },\n };\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\nvar BaseContext = /** @class */ (function () {\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n function BaseContext(parentContext) {\n // for minification\n var self = this;\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n self.getValue = function (key) { return self._currentContext.get(key); };\n self.setValue = function (key, value) {\n var context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n self.deleteValue = function (key) {\n var context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n return BaseContext;\n}());\n/** The root context is used as the default parent context when there is no active context */\nexport var ROOT_CONTEXT = new BaseContext();\n//# sourceMappingURL=context.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar consoleMap = [\n { n: 'error', c: 'error' },\n { n: 'warn', c: 'warn' },\n { n: 'info', c: 'info' },\n { n: 'debug', c: 'debug' },\n { n: 'verbose', c: 'trace' },\n];\n/**\n * A simple Immutable Console based diagnostic logger which will output any messages to the Console.\n * If you want to limit the amount of logging to a specific level or lower use the\n * {@link createLogLevelDiagLogger}\n */\nvar DiagConsoleLogger = /** @class */ (function () {\n function DiagConsoleLogger() {\n function _consoleFunc(funcName) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (console) {\n // Some environments only expose the console when the F12 developer console is open\n // eslint-disable-next-line no-console\n var theFunc = console[funcName];\n if (typeof theFunc !== 'function') {\n // Not all environments support all functions\n // eslint-disable-next-line no-console\n theFunc = console.log;\n }\n // One last final check\n if (typeof theFunc === 'function') {\n return theFunc.apply(console, args);\n }\n }\n };\n }\n for (var i = 0; i < consoleMap.length; i++) {\n this[consoleMap[i].n] = _consoleFunc(consoleMap[i].c);\n }\n }\n return DiagConsoleLogger;\n}());\nexport { DiagConsoleLogger };\n//# sourceMappingURL=consoleLogger.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * NoopMeter is a noop implementation of the {@link Meter} interface. It reuses\n * constant NoopMetrics for all of its methods.\n */\nvar NoopMeter = /** @class */ (function () {\n function NoopMeter() {\n }\n /**\n * @see {@link Meter.createHistogram}\n */\n NoopMeter.prototype.createHistogram = function (_name, _options) {\n return NOOP_HISTOGRAM_METRIC;\n };\n /**\n * @see {@link Meter.createCounter}\n */\n NoopMeter.prototype.createCounter = function (_name, _options) {\n return NOOP_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createUpDownCounter}\n */\n NoopMeter.prototype.createUpDownCounter = function (_name, _options) {\n return NOOP_UP_DOWN_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createObservableGauge}\n */\n NoopMeter.prototype.createObservableGauge = function (_name, _options) {\n return NOOP_OBSERVABLE_GAUGE_METRIC;\n };\n /**\n * @see {@link Meter.createObservableCounter}\n */\n NoopMeter.prototype.createObservableCounter = function (_name, _options) {\n return NOOP_OBSERVABLE_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.createObservableUpDownCounter}\n */\n NoopMeter.prototype.createObservableUpDownCounter = function (_name, _options) {\n return NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC;\n };\n /**\n * @see {@link Meter.addBatchObservableCallback}\n */\n NoopMeter.prototype.addBatchObservableCallback = function (_callback, _observables) { };\n /**\n * @see {@link Meter.removeBatchObservableCallback}\n */\n NoopMeter.prototype.removeBatchObservableCallback = function (_callback) { };\n return NoopMeter;\n}());\nexport { NoopMeter };\nvar NoopMetric = /** @class */ (function () {\n function NoopMetric() {\n }\n return NoopMetric;\n}());\nexport { NoopMetric };\nvar NoopCounterMetric = /** @class */ (function (_super) {\n __extends(NoopCounterMetric, _super);\n function NoopCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopCounterMetric.prototype.add = function (_value, _attributes) { };\n return NoopCounterMetric;\n}(NoopMetric));\nexport { NoopCounterMetric };\nvar NoopUpDownCounterMetric = /** @class */ (function (_super) {\n __extends(NoopUpDownCounterMetric, _super);\n function NoopUpDownCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopUpDownCounterMetric.prototype.add = function (_value, _attributes) { };\n return NoopUpDownCounterMetric;\n}(NoopMetric));\nexport { NoopUpDownCounterMetric };\nvar NoopHistogramMetric = /** @class */ (function (_super) {\n __extends(NoopHistogramMetric, _super);\n function NoopHistogramMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NoopHistogramMetric.prototype.record = function (_value, _attributes) { };\n return NoopHistogramMetric;\n}(NoopMetric));\nexport { NoopHistogramMetric };\nvar NoopObservableMetric = /** @class */ (function () {\n function NoopObservableMetric() {\n }\n NoopObservableMetric.prototype.addCallback = function (_callback) { };\n NoopObservableMetric.prototype.removeCallback = function (_callback) { };\n return NoopObservableMetric;\n}());\nexport { NoopObservableMetric };\nvar NoopObservableCounterMetric = /** @class */ (function (_super) {\n __extends(NoopObservableCounterMetric, _super);\n function NoopObservableCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableCounterMetric;\n}(NoopObservableMetric));\nexport { NoopObservableCounterMetric };\nvar NoopObservableGaugeMetric = /** @class */ (function (_super) {\n __extends(NoopObservableGaugeMetric, _super);\n function NoopObservableGaugeMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableGaugeMetric;\n}(NoopObservableMetric));\nexport { NoopObservableGaugeMetric };\nvar NoopObservableUpDownCounterMetric = /** @class */ (function (_super) {\n __extends(NoopObservableUpDownCounterMetric, _super);\n function NoopObservableUpDownCounterMetric() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NoopObservableUpDownCounterMetric;\n}(NoopObservableMetric));\nexport { NoopObservableUpDownCounterMetric };\nexport var NOOP_METER = new NoopMeter();\n// Synchronous instruments\nexport var NOOP_COUNTER_METRIC = new NoopCounterMetric();\nexport var NOOP_HISTOGRAM_METRIC = new NoopHistogramMetric();\nexport var NOOP_UP_DOWN_COUNTER_METRIC = new NoopUpDownCounterMetric();\n// Asynchronous instruments\nexport var NOOP_OBSERVABLE_COUNTER_METRIC = new NoopObservableCounterMetric();\nexport var NOOP_OBSERVABLE_GAUGE_METRIC = new NoopObservableGaugeMetric();\nexport var NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC = new NoopObservableUpDownCounterMetric();\n/**\n * Create a no-op Meter\n */\nexport function createNoopMeter() {\n return NOOP_METER;\n}\n//# sourceMappingURL=NoopMeter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** The Type of value. It describes how the data is reported. */\nexport var ValueType;\n(function (ValueType) {\n ValueType[ValueType[\"INT\"] = 0] = \"INT\";\n ValueType[ValueType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n})(ValueType || (ValueType = {}));\n//# sourceMappingURL=Metric.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var defaultTextMapGetter = {\n get: function (carrier, key) {\n if (carrier == null) {\n return undefined;\n }\n return carrier[key];\n },\n keys: function (carrier) {\n if (carrier == null) {\n return [];\n }\n return Object.keys(carrier);\n },\n};\nexport var defaultTextMapSetter = {\n set: function (carrier, key, value) {\n if (carrier == null) {\n return;\n }\n carrier[key] = value;\n },\n};\n//# sourceMappingURL=TextMapPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ROOT_CONTEXT } from './context';\nvar NoopContextManager = /** @class */ (function () {\n function NoopContextManager() {\n }\n NoopContextManager.prototype.active = function () {\n return ROOT_CONTEXT;\n };\n NoopContextManager.prototype.with = function (_context, fn, thisArg) {\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n return fn.call.apply(fn, __spreadArray([thisArg], __read(args), false));\n };\n NoopContextManager.prototype.bind = function (_context, target) {\n return target;\n };\n NoopContextManager.prototype.enable = function () {\n return this;\n };\n NoopContextManager.prototype.disable = function () {\n return this;\n };\n return NoopContextManager;\n}());\nexport { NoopContextManager };\n//# sourceMappingURL=NoopContextManager.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'context';\nvar NOOP_CONTEXT_MANAGER = new NoopContextManager();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nvar ContextAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function ContextAPI() {\n }\n /** Get the singleton instance of the Context API */\n ContextAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n return this._instance;\n };\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n ContextAPI.prototype.setGlobalContextManager = function (contextManager) {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n };\n /**\n * Get the currently active context\n */\n ContextAPI.prototype.active = function () {\n return this._getContextManager().active();\n };\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n ContextAPI.prototype.with = function (context, fn, thisArg) {\n var _a;\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n return (_a = this._getContextManager()).with.apply(_a, __spreadArray([context, fn, thisArg], __read(args), false));\n };\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n ContextAPI.prototype.bind = function (context, target) {\n return this._getContextManager().bind(context, target);\n };\n ContextAPI.prototype._getContextManager = function () {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n };\n /** Disable and remove the global context manager */\n ContextAPI.prototype.disable = function () {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n return ContextAPI;\n}());\nexport { ContextAPI };\n//# sourceMappingURL=context.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var TraceFlags;\n(function (TraceFlags) {\n /** Represents no flag set. */\n TraceFlags[TraceFlags[\"NONE\"] = 0] = \"NONE\";\n /** Bit to represent whether trace is sampled in trace flags. */\n TraceFlags[TraceFlags[\"SAMPLED\"] = 1] = \"SAMPLED\";\n})(TraceFlags || (TraceFlags = {}));\n//# sourceMappingURL=trace_flags.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TraceFlags } from './trace_flags';\nexport var INVALID_SPANID = '0000000000000000';\nexport var INVALID_TRACEID = '00000000000000000000000000000000';\nexport var INVALID_SPAN_CONTEXT = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n//# sourceMappingURL=invalid-span-constants.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nvar NonRecordingSpan = /** @class */ (function () {\n function NonRecordingSpan(_spanContext) {\n if (_spanContext === void 0) { _spanContext = INVALID_SPAN_CONTEXT; }\n this._spanContext = _spanContext;\n }\n // Returns a SpanContext.\n NonRecordingSpan.prototype.spanContext = function () {\n return this._spanContext;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttribute = function (_key, _value) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setAttributes = function (_attributes) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.addEvent = function (_name, _attributes) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.setStatus = function (_status) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.updateName = function (_name) {\n return this;\n };\n // By default does nothing\n NonRecordingSpan.prototype.end = function (_endTime) { };\n // isRecording always returns false for NonRecordingSpan.\n NonRecordingSpan.prototype.isRecording = function () {\n return false;\n };\n // By default does nothing\n NonRecordingSpan.prototype.recordException = function (_exception, _time) { };\n return NonRecordingSpan;\n}());\nexport { NonRecordingSpan };\n//# sourceMappingURL=NonRecordingSpan.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '../context/context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n/**\n * span key\n */\nvar SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context) {\n return context.getValue(SPAN_KEY) || undefined;\n}\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan() {\n return getSpan(ContextAPI.getInstance().active());\n}\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context, span) {\n return context.setValue(SPAN_KEY, span);\n}\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context) {\n return context.deleteValue(SPAN_KEY);\n}\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(context, spanContext) {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context) {\n var _a;\n return (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();\n}\n//# sourceMappingURL=context-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nvar VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nvar VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\nexport function isValidTraceId(traceId) {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\nexport function isValidSpanId(spanId) {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext) {\n return (isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId));\n}\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext) {\n return new NonRecordingSpan(spanContext);\n}\n//# sourceMappingURL=spancontext-utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextAPI } from '../api/context';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { isSpanContextValid } from './spancontext-utils';\nvar contextApi = ContextAPI.getInstance();\n/**\n * No-op implementations of {@link Tracer}.\n */\nvar NoopTracer = /** @class */ (function () {\n function NoopTracer() {\n }\n // startSpan starts a noop span.\n NoopTracer.prototype.startSpan = function (name, options, context) {\n if (context === void 0) { context = contextApi.active(); }\n var root = Boolean(options === null || options === void 0 ? void 0 : options.root);\n if (root) {\n return new NonRecordingSpan();\n }\n var parentFromContext = context && getSpanContext(context);\n if (isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)) {\n return new NonRecordingSpan(parentFromContext);\n }\n else {\n return new NonRecordingSpan();\n }\n };\n NoopTracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {\n var opts;\n var ctx;\n var fn;\n if (arguments.length < 2) {\n return;\n }\n else if (arguments.length === 2) {\n fn = arg2;\n }\n else if (arguments.length === 3) {\n opts = arg2;\n fn = arg3;\n }\n else {\n opts = arg2;\n ctx = arg3;\n fn = arg4;\n }\n var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();\n var span = this.startSpan(name, opts, parentContext);\n var contextWithSpanSet = setSpan(parentContext, span);\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n };\n return NoopTracer;\n}());\nexport { NoopTracer };\nfunction isSpanContext(spanContext) {\n return (typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number');\n}\n//# sourceMappingURL=NoopTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\nvar NOOP_TRACER = new NoopTracer();\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nvar ProxyTracer = /** @class */ (function () {\n function ProxyTracer(_provider, name, version, options) {\n this._provider = _provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n ProxyTracer.prototype.startSpan = function (name, options, context) {\n return this._getTracer().startSpan(name, options, context);\n };\n ProxyTracer.prototype.startActiveSpan = function (_name, _options, _context, _fn) {\n var tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n };\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n ProxyTracer.prototype._getTracer = function () {\n if (this._delegate) {\n return this._delegate;\n }\n var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);\n if (!tracer) {\n return NOOP_TRACER;\n }\n this._delegate = tracer;\n return this._delegate;\n };\n return ProxyTracer;\n}());\nexport { ProxyTracer };\n//# sourceMappingURL=ProxyTracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoopTracer } from './NoopTracer';\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nvar NoopTracerProvider = /** @class */ (function () {\n function NoopTracerProvider() {\n }\n NoopTracerProvider.prototype.getTracer = function (_name, _version, _options) {\n return new NoopTracer();\n };\n return NoopTracerProvider;\n}());\nexport { NoopTracerProvider };\n//# sourceMappingURL=NoopTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nvar NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nvar ProxyTracerProvider = /** @class */ (function () {\n function ProxyTracerProvider() {\n }\n /**\n * Get a {@link ProxyTracer}\n */\n ProxyTracerProvider.prototype.getTracer = function (name, version, options) {\n var _a;\n return ((_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options));\n };\n ProxyTracerProvider.prototype.getDelegate = function () {\n var _a;\n return (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;\n };\n /**\n * Set the delegate tracer provider\n */\n ProxyTracerProvider.prototype.setDelegate = function (delegate) {\n this._delegate = delegate;\n };\n ProxyTracerProvider.prototype.getDelegateTracer = function (name, version, options) {\n var _a;\n return (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);\n };\n return ProxyTracerProvider;\n}());\nexport { ProxyTracerProvider };\n//# sourceMappingURL=ProxyTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @deprecated use the one declared in @opentelemetry/sdk-trace-base instead.\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport var SamplingDecision;\n(function (SamplingDecision) {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n SamplingDecision[SamplingDecision[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD\"] = 1] = \"RECORD\";\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n})(SamplingDecision || (SamplingDecision = {}));\n//# sourceMappingURL=SamplingResult.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var SpanKind;\n(function (SpanKind) {\n /** Default value. Indicates that the span is used internally. */\n SpanKind[SpanKind[\"INTERNAL\"] = 0] = \"INTERNAL\";\n /**\n * Indicates that the span covers server-side handling of an RPC or other\n * remote request.\n */\n SpanKind[SpanKind[\"SERVER\"] = 1] = \"SERVER\";\n /**\n * Indicates that the span covers the client-side wrapper around an RPC or\n * other remote request.\n */\n SpanKind[SpanKind[\"CLIENT\"] = 2] = \"CLIENT\";\n /**\n * Indicates that the span describes producer sending a message to a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"PRODUCER\"] = 3] = \"PRODUCER\";\n /**\n * Indicates that the span describes consumer receiving a message from a\n * broker. Unlike client and server, there is no direct critical path latency\n * relationship between producer and consumer spans.\n */\n SpanKind[SpanKind[\"CONSUMER\"] = 4] = \"CONSUMER\";\n})(SpanKind || (SpanKind = {}));\n//# sourceMappingURL=span_kind.js.map","/**\n * An enumeration of status codes.\n */\nexport var SpanStatusCode;\n(function (SpanStatusCode) {\n /**\n * The default status.\n */\n SpanStatusCode[SpanStatusCode[\"UNSET\"] = 0] = \"UNSET\";\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n SpanStatusCode[SpanStatusCode[\"OK\"] = 1] = \"OK\";\n /**\n * The operation contains an error.\n */\n SpanStatusCode[SpanStatusCode[\"ERROR\"] = 2] = \"ERROR\";\n})(SpanStatusCode || (SpanStatusCode = {}));\n//# sourceMappingURL=status.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nvar VALID_KEY = \"[a-z]\" + VALID_KEY_CHAR_RANGE + \"{0,255}\";\nvar VALID_VENDOR_KEY = \"[a-z0-9]\" + VALID_KEY_CHAR_RANGE + \"{0,240}@[a-z]\" + VALID_KEY_CHAR_RANGE + \"{0,13}\";\nvar VALID_KEY_REGEX = new RegExp(\"^(?:\" + VALID_KEY + \"|\" + VALID_VENDOR_KEY + \")$\");\nvar VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nvar INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key) {\n return VALID_KEY_REGEX.test(key);\n}\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value) {\n return (VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value));\n}\n//# sourceMappingURL=tracestate-validators.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { validateKey, validateValue } from './tracestate-validators';\nvar MAX_TRACE_STATE_ITEMS = 32;\nvar MAX_TRACE_STATE_LEN = 512;\nvar LIST_MEMBERS_SEPARATOR = ',';\nvar LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nvar TraceStateImpl = /** @class */ (function () {\n function TraceStateImpl(rawTraceState) {\n this._internalState = new Map();\n if (rawTraceState)\n this._parse(rawTraceState);\n }\n TraceStateImpl.prototype.set = function (key, value) {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n var traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n };\n TraceStateImpl.prototype.unset = function (key) {\n var traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n };\n TraceStateImpl.prototype.get = function (key) {\n return this._internalState.get(key);\n };\n TraceStateImpl.prototype.serialize = function () {\n var _this = this;\n return this._keys()\n .reduce(function (agg, key) {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + _this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n };\n TraceStateImpl.prototype._parse = function (rawTraceState) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN)\n return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce(function (agg, part) {\n var listMember = part.trim(); // Optional Whitespace (OWS) handling\n var i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n var key = listMember.slice(0, i);\n var value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n }\n else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS));\n }\n };\n TraceStateImpl.prototype._keys = function () {\n return Array.from(this._internalState.keys()).reverse();\n };\n TraceStateImpl.prototype._clone = function () {\n var traceState = new TraceStateImpl();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n };\n return TraceStateImpl;\n}());\nexport { TraceStateImpl };\n//# sourceMappingURL=tracestate-impl.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TraceStateImpl } from './tracestate-impl';\nexport function createTraceState(rawTraceState) {\n return new TraceStateImpl(rawTraceState);\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport var context = ContextAPI.getInstance();\n//# sourceMappingURL=context-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n */\nexport var diag = DiagAPI.instance();\n//# sourceMappingURL=diag-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_METER } from './NoopMeter';\n/**\n * An implementation of the {@link MeterProvider} which returns an impotent Meter\n * for all calls to `getMeter`\n */\nvar NoopMeterProvider = /** @class */ (function () {\n function NoopMeterProvider() {\n }\n NoopMeterProvider.prototype.getMeter = function (_name, _version, _options) {\n return NOOP_METER;\n };\n return NoopMeterProvider;\n}());\nexport { NoopMeterProvider };\nexport var NOOP_METER_PROVIDER = new NoopMeterProvider();\n//# sourceMappingURL=NoopMeterProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NOOP_METER_PROVIDER } from '../metrics/NoopMeterProvider';\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'metrics';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Metrics API\n */\nvar MetricsAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function MetricsAPI() {\n }\n /** Get the singleton instance of the Metrics API */\n MetricsAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new MetricsAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global meter provider.\n * Returns true if the meter provider was successfully registered, else false.\n */\n MetricsAPI.prototype.setGlobalMeterProvider = function (provider) {\n return registerGlobal(API_NAME, provider, DiagAPI.instance());\n };\n /**\n * Returns the global meter provider.\n */\n MetricsAPI.prototype.getMeterProvider = function () {\n return getGlobal(API_NAME) || NOOP_METER_PROVIDER;\n };\n /**\n * Returns a meter from the global meter provider.\n */\n MetricsAPI.prototype.getMeter = function (name, version, options) {\n return this.getMeterProvider().getMeter(name, version, options);\n };\n /** Remove the global meter provider */\n MetricsAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n return MetricsAPI;\n}());\nexport { MetricsAPI };\n//# sourceMappingURL=metrics.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { MetricsAPI } from './api/metrics';\n/** Entrypoint for metrics API */\nexport var metrics = MetricsAPI.getInstance();\n//# sourceMappingURL=metrics-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * No-op implementations of {@link TextMapPropagator}.\n */\nvar NoopTextMapPropagator = /** @class */ (function () {\n function NoopTextMapPropagator() {\n }\n /** Noop inject function does nothing */\n NoopTextMapPropagator.prototype.inject = function (_context, _carrier) { };\n /** Noop extract function does nothing and returns the input context */\n NoopTextMapPropagator.prototype.extract = function (context, _carrier) {\n return context;\n };\n NoopTextMapPropagator.prototype.fields = function () {\n return [];\n };\n return NoopTextMapPropagator;\n}());\nexport { NoopTextMapPropagator };\n//# sourceMappingURL=NoopTextMapPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextAPI } from '../api/context';\nimport { createContextKey } from '../context/context';\n/**\n * Baggage key\n */\nvar BAGGAGE_KEY = createContextKey('OpenTelemetry Baggage Key');\n/**\n * Retrieve the current baggage from the given context\n *\n * @param {Context} Context that manage all context values\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getBaggage(context) {\n return context.getValue(BAGGAGE_KEY) || undefined;\n}\n/**\n * Retrieve the current baggage from the active/current context\n *\n * @returns {Baggage} Extracted baggage from the context\n */\nexport function getActiveBaggage() {\n return getBaggage(ContextAPI.getInstance().active());\n}\n/**\n * Store a baggage in the given context\n *\n * @param {Context} Context that manage all context values\n * @param {Baggage} baggage that will be set in the actual context\n */\nexport function setBaggage(context, baggage) {\n return context.setValue(BAGGAGE_KEY, baggage);\n}\n/**\n * Delete the baggage stored in the given context\n *\n * @param {Context} Context that manage all context values\n */\nexport function deleteBaggage(context) {\n return context.deleteValue(BAGGAGE_KEY);\n}\n//# sourceMappingURL=context-helpers.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport { defaultTextMapGetter, defaultTextMapSetter, } from '../propagation/TextMapPropagator';\nimport { getBaggage, getActiveBaggage, setBaggage, deleteBaggage, } from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'propagation';\nvar NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n */\nvar PropagationAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function PropagationAPI() {\n this.createBaggage = createBaggage;\n this.getBaggage = getBaggage;\n this.getActiveBaggage = getActiveBaggage;\n this.setBaggage = setBaggage;\n this.deleteBaggage = deleteBaggage;\n }\n /** Get the singleton instance of the Propagator API */\n PropagationAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new PropagationAPI();\n }\n return this._instance;\n };\n /**\n * Set the current propagator.\n *\n * @returns true if the propagator was successfully registered, else false\n */\n PropagationAPI.prototype.setGlobalPropagator = function (propagator) {\n return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n };\n /**\n * Inject context into a carrier to be propagated inter-process\n *\n * @param context Context carrying tracing data to inject\n * @param carrier carrier to inject context into\n * @param setter Function used to set values on the carrier\n */\n PropagationAPI.prototype.inject = function (context, carrier, setter) {\n if (setter === void 0) { setter = defaultTextMapSetter; }\n return this._getGlobalPropagator().inject(context, carrier, setter);\n };\n /**\n * Extract context from a carrier\n *\n * @param context Context which the newly created context will inherit from\n * @param carrier Carrier to extract context from\n * @param getter Function used to extract keys from a carrier\n */\n PropagationAPI.prototype.extract = function (context, carrier, getter) {\n if (getter === void 0) { getter = defaultTextMapGetter; }\n return this._getGlobalPropagator().extract(context, carrier, getter);\n };\n /**\n * Return a list of all fields which may be used by the propagator.\n */\n PropagationAPI.prototype.fields = function () {\n return this._getGlobalPropagator().fields();\n };\n /** Remove the global propagator */\n PropagationAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n };\n PropagationAPI.prototype._getGlobalPropagator = function () {\n return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n };\n return PropagationAPI;\n}());\nexport { PropagationAPI };\n//# sourceMappingURL=propagation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { PropagationAPI } from './api/propagation';\n/** Entrypoint for propagation API */\nexport var propagation = PropagationAPI.getInstance();\n//# sourceMappingURL=propagation-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobal, registerGlobal, unregisterGlobal, } from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport { isSpanContextValid, wrapSpanContext, } from '../trace/spancontext-utils';\nimport { deleteSpan, getActiveSpan, getSpan, getSpanContext, setSpan, setSpanContext, } from '../trace/context-utils';\nimport { DiagAPI } from './diag';\nvar API_NAME = 'trace';\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nvar TraceAPI = /** @class */ (function () {\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n function TraceAPI() {\n this._proxyTracerProvider = new ProxyTracerProvider();\n this.wrapSpanContext = wrapSpanContext;\n this.isSpanContextValid = isSpanContextValid;\n this.deleteSpan = deleteSpan;\n this.getSpan = getSpan;\n this.getActiveSpan = getActiveSpan;\n this.getSpanContext = getSpanContext;\n this.setSpan = setSpan;\n this.setSpanContext = setSpanContext;\n }\n /** Get the singleton instance of the Trace API */\n TraceAPI.getInstance = function () {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n return this._instance;\n };\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n TraceAPI.prototype.setGlobalTracerProvider = function (provider) {\n var success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance());\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n };\n /**\n * Returns the global tracer provider.\n */\n TraceAPI.prototype.getTracerProvider = function () {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n };\n /**\n * Returns a tracer from the global tracer provider.\n */\n TraceAPI.prototype.getTracer = function (name, version) {\n return this.getTracerProvider().getTracer(name, version);\n };\n /** Remove the global tracer provider */\n TraceAPI.prototype.disable = function () {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n };\n return TraceAPI;\n}());\nexport { TraceAPI };\n//# sourceMappingURL=trace.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport var trace = TraceAPI.getInstance();\n//# sourceMappingURL=trace-api.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { baggageEntryMetadataFromString } from './baggage/utils';\n// Context APIs\nexport { createContextKey, ROOT_CONTEXT } from './context/context';\n// Diag APIs\nexport { DiagConsoleLogger } from './diag/consoleLogger';\nexport { DiagLogLevel, } from './diag/types';\n// Metrics APIs\nexport { createNoopMeter } from './metrics/NoopMeter';\nexport { ValueType, } from './metrics/Metric';\n// Propagation APIs\nexport { defaultTextMapGetter, defaultTextMapSetter, } from './propagation/TextMapPropagator';\nexport { ProxyTracer } from './trace/ProxyTracer';\nexport { ProxyTracerProvider } from './trace/ProxyTracerProvider';\nexport { SamplingDecision } from './trace/SamplingResult';\nexport { SpanKind } from './trace/span_kind';\nexport { SpanStatusCode } from './trace/status';\nexport { TraceFlags } from './trace/trace_flags';\nexport { createTraceState } from './trace/internal/utils';\nexport { isSpanContextValid, isValidTraceId, isValidSpanId, } from './trace/spancontext-utils';\nexport { INVALID_SPANID, INVALID_TRACEID, INVALID_SPAN_CONTEXT, } from './trace/invalid-span-constants';\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { context } from './context-api';\nimport { diag } from './diag-api';\nimport { metrics } from './metrics-api';\nimport { propagation } from './propagation-api';\nimport { trace } from './trace-api';\n// Named export.\nexport { context, diag, metrics, propagation, trace };\n// Default export.\nexport default {\n context: context,\n diag: diag,\n metrics: metrics,\n propagation: propagation,\n trace: trace,\n};\n//# sourceMappingURL=index.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContextKey } from '@opentelemetry/api';\nvar SUPPRESS_TRACING_KEY = createContextKey('OpenTelemetry SDK Context Key SUPPRESS_TRACING');\nexport function suppressTracing(context) {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\nexport function unsuppressTracing(context) {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\nexport function isTracingSuppressed(context) {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\n//# sourceMappingURL=suppress-tracing.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexport var BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexport var BAGGAGE_ITEMS_SEPARATOR = ',';\n// Name of the http header used to propagate the baggage\nexport var BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexport var BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexport var BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexport var BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n//# sourceMappingURL=constants.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { baggageEntryMetadataFromString, } from '@opentelemetry/api';\nimport { BAGGAGE_ITEMS_SEPARATOR, BAGGAGE_PROPERTIES_SEPARATOR, BAGGAGE_KEY_PAIR_SEPARATOR, BAGGAGE_MAX_TOTAL_LENGTH, } from './constants';\nexport function serializeKeyPairs(keyPairs) {\n return keyPairs.reduce(function (hValue, current) {\n var value = \"\" + hValue + (hValue !== '' ? BAGGAGE_ITEMS_SEPARATOR : '') + current;\n return value.length > BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\nexport function getKeyPairs(baggage) {\n return baggage.getAllEntries().map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n var entry = encodeURIComponent(key) + \"=\" + encodeURIComponent(value.value);\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n return entry;\n });\n}\nexport function parsePairKeyValue(entry) {\n var valueProps = entry.split(BAGGAGE_PROPERTIES_SEPARATOR);\n if (valueProps.length <= 0)\n return;\n var keyPairPart = valueProps.shift();\n if (!keyPairPart)\n return;\n var keyPair = keyPairPart.split(BAGGAGE_KEY_PAIR_SEPARATOR);\n if (keyPair.length !== 2)\n return;\n var key = decodeURIComponent(keyPair[0].trim());\n var value = decodeURIComponent(keyPair[1].trim());\n var metadata;\n if (valueProps.length > 0) {\n metadata = baggageEntryMetadataFromString(valueProps.join(BAGGAGE_PROPERTIES_SEPARATOR));\n }\n return { key: key, value: value, metadata: metadata };\n}\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nexport function parseKeyPairsIntoRecord(value) {\n if (typeof value !== 'string' || value.length === 0)\n return {};\n return value\n .split(BAGGAGE_ITEMS_SEPARATOR)\n .map(function (entry) {\n return parsePairKeyValue(entry);\n })\n .filter(function (keyPair) { return keyPair !== undefined && keyPair.value.length > 0; })\n .reduce(function (headers, keyPair) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n headers[keyPair.key] = keyPair.value;\n return headers;\n }, {});\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { propagation, } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '../../trace/suppress-tracing';\nimport { BAGGAGE_HEADER, BAGGAGE_ITEMS_SEPARATOR, BAGGAGE_MAX_NAME_VALUE_PAIRS, BAGGAGE_MAX_PER_NAME_VALUE_PAIRS, } from '../constants';\nimport { getKeyPairs, parsePairKeyValue, serializeKeyPairs } from '../utils';\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nvar W3CBaggagePropagator = /** @class */ (function () {\n function W3CBaggagePropagator() {\n }\n W3CBaggagePropagator.prototype.inject = function (context, carrier, setter) {\n var baggage = propagation.getBaggage(context);\n if (!baggage || isTracingSuppressed(context))\n return;\n var keyPairs = getKeyPairs(baggage)\n .filter(function (pair) {\n return pair.length <= BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, BAGGAGE_MAX_NAME_VALUE_PAIRS);\n var headerValue = serializeKeyPairs(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, BAGGAGE_HEADER, headerValue);\n }\n };\n W3CBaggagePropagator.prototype.extract = function (context, carrier, getter) {\n var headerValue = getter.get(carrier, BAGGAGE_HEADER);\n var baggageString = Array.isArray(headerValue)\n ? headerValue.join(BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString)\n return context;\n var baggage = {};\n if (baggageString.length === 0) {\n return context;\n }\n var pairs = baggageString.split(BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(function (entry) {\n var keyPair = parsePairKeyValue(entry);\n if (keyPair) {\n var baggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return propagation.setBaggage(context, propagation.createBaggage(baggage));\n };\n W3CBaggagePropagator.prototype.fields = function () {\n return [BAGGAGE_HEADER];\n };\n return W3CBaggagePropagator;\n}());\nexport { W3CBaggagePropagator };\n//# sourceMappingURL=W3CBaggagePropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { diag } from '@opentelemetry/api';\nexport function sanitizeAttributes(attributes) {\n var e_1, _a;\n var out = {};\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n try {\n for (var _b = __values(Object.entries(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], val = _d[1];\n if (!isAttributeKey(key)) {\n diag.warn(\"Invalid attribute key: \" + key);\n continue;\n }\n if (!isAttributeValue(val)) {\n diag.warn(\"Invalid attribute value set for key: \" + key);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n }\n else {\n out[key] = val;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return out;\n}\nexport function isAttributeKey(key) {\n return typeof key === 'string' && key.length > 0;\n}\nexport function isAttributeValue(val) {\n if (val == null) {\n return true;\n }\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n return isValidPrimitiveAttributeValue(val);\n}\nfunction isHomogeneousAttributeValueArray(arr) {\n var e_2, _a;\n var type;\n try {\n for (var arr_1 = __values(arr), arr_1_1 = arr_1.next(); !arr_1_1.done; arr_1_1 = arr_1.next()) {\n var element = arr_1_1.value;\n // null/undefined elements are allowed\n if (element == null)\n continue;\n if (!type) {\n if (isValidPrimitiveAttributeValue(element)) {\n type = typeof element;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n if (typeof element === type) {\n continue;\n }\n return false;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n}\nfunction isValidPrimitiveAttributeValue(val) {\n switch (typeof val) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n return false;\n}\n//# sourceMappingURL=attributes.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\n/**\n * Returns a function that logs an error using the provided logger, or a\n * console logger if one was not provided.\n */\nexport function loggingErrorHandler() {\n return function (ex) {\n diag.error(stringifyException(ex));\n };\n}\n/**\n * Converts an exception into a string representation\n * @param {Exception} ex\n */\nfunction stringifyException(ex) {\n if (typeof ex === 'string') {\n return ex;\n }\n else {\n return JSON.stringify(flattenException(ex));\n }\n}\n/**\n * Flattens an exception into key-value pairs by traversing the prototype chain\n * and coercing values to strings. Duplicate properties will not be overwritten;\n * the first insert wins.\n */\nfunction flattenException(ex) {\n var result = {};\n var current = ex;\n while (current !== null) {\n Object.getOwnPropertyNames(current).forEach(function (propertyName) {\n if (result[propertyName])\n return;\n var value = current[propertyName];\n if (value) {\n result[propertyName] = String(value);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n return result;\n}\n//# sourceMappingURL=logging-error-handler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { loggingErrorHandler } from './logging-error-handler';\n/** The global error handler delegate */\nvar delegateHandler = loggingErrorHandler();\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nexport function setGlobalErrorHandler(handler) {\n delegateHandler = handler;\n}\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nexport function globalErrorHandler(ex) {\n try {\n delegateHandler(ex);\n }\n catch (_a) { } // eslint-disable-line no-empty\n}\n//# sourceMappingURL=global-error-handler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var TracesSamplerValues;\n(function (TracesSamplerValues) {\n TracesSamplerValues[\"AlwaysOff\"] = \"always_off\";\n TracesSamplerValues[\"AlwaysOn\"] = \"always_on\";\n TracesSamplerValues[\"ParentBasedAlwaysOff\"] = \"parentbased_always_off\";\n TracesSamplerValues[\"ParentBasedAlwaysOn\"] = \"parentbased_always_on\";\n TracesSamplerValues[\"ParentBasedTraceIdRatio\"] = \"parentbased_traceidratio\";\n TracesSamplerValues[\"TraceIdRatio\"] = \"traceidratio\";\n})(TracesSamplerValues || (TracesSamplerValues = {}));\n//# sourceMappingURL=sampling.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Updates to this file should also be replicated to @opentelemetry/api too.\n/**\n * - globalThis (New standard)\n * - self (Will return the current window instance for supported browsers)\n * - window (fallback for older browser implementations)\n * - global (NodeJS implementation)\n * - <object> (When all else fails)\n */\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins, no-undef\nexport var _globalThis = typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {};\n//# sourceMappingURL=globalThis.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DiagLogLevel } from '@opentelemetry/api';\nimport { TracesSamplerValues } from './sampling';\nimport { _globalThis } from '../platform/browser/globalThis';\nvar DEFAULT_LIST_SEPARATOR = ',';\n/**\n * Environment interface to define all names\n */\nvar ENVIRONMENT_BOOLEAN_KEYS = ['OTEL_SDK_DISABLED'];\nfunction isEnvVarABoolean(key) {\n return (ENVIRONMENT_BOOLEAN_KEYS.indexOf(key) > -1);\n}\nvar ENVIRONMENT_NUMBERS_KEYS = [\n 'OTEL_BSP_EXPORT_TIMEOUT',\n 'OTEL_BSP_MAX_EXPORT_BATCH_SIZE',\n 'OTEL_BSP_MAX_QUEUE_SIZE',\n 'OTEL_BSP_SCHEDULE_DELAY',\n 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT',\n 'OTEL_ATTRIBUTE_COUNT_LIMIT',\n 'OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT',\n 'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT',\n 'OTEL_SPAN_EVENT_COUNT_LIMIT',\n 'OTEL_SPAN_LINK_COUNT_LIMIT',\n 'OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT',\n 'OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT',\n 'OTEL_EXPORTER_OTLP_TIMEOUT',\n 'OTEL_EXPORTER_OTLP_TRACES_TIMEOUT',\n 'OTEL_EXPORTER_OTLP_METRICS_TIMEOUT',\n 'OTEL_EXPORTER_JAEGER_AGENT_PORT',\n];\nfunction isEnvVarANumber(key) {\n return (ENVIRONMENT_NUMBERS_KEYS.indexOf(key) > -1);\n}\nvar ENVIRONMENT_LISTS_KEYS = [\n 'OTEL_NO_PATCH_MODULES',\n 'OTEL_PROPAGATORS',\n];\nfunction isEnvVarAList(key) {\n return ENVIRONMENT_LISTS_KEYS.indexOf(key) > -1;\n}\nexport var DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;\nexport var DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;\nexport var DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT = 128;\nexport var DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT = 128;\n/**\n * Default environment variables\n */\nexport var DEFAULT_ENVIRONMENT = {\n OTEL_SDK_DISABLED: false,\n CONTAINER_NAME: '',\n ECS_CONTAINER_METADATA_URI_V4: '',\n ECS_CONTAINER_METADATA_URI: '',\n HOSTNAME: '',\n KUBERNETES_SERVICE_HOST: '',\n NAMESPACE: '',\n OTEL_BSP_EXPORT_TIMEOUT: 30000,\n OTEL_BSP_MAX_EXPORT_BATCH_SIZE: 512,\n OTEL_BSP_MAX_QUEUE_SIZE: 2048,\n OTEL_BSP_SCHEDULE_DELAY: 5000,\n OTEL_EXPORTER_JAEGER_AGENT_HOST: '',\n OTEL_EXPORTER_JAEGER_AGENT_PORT: 6832,\n OTEL_EXPORTER_JAEGER_ENDPOINT: '',\n OTEL_EXPORTER_JAEGER_PASSWORD: '',\n OTEL_EXPORTER_JAEGER_USER: '',\n OTEL_EXPORTER_OTLP_ENDPOINT: '',\n OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: '',\n OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',\n OTEL_EXPORTER_OTLP_HEADERS: '',\n OTEL_EXPORTER_OTLP_TRACES_HEADERS: '',\n OTEL_EXPORTER_OTLP_METRICS_HEADERS: '',\n OTEL_EXPORTER_OTLP_TIMEOUT: 10000,\n OTEL_EXPORTER_OTLP_TRACES_TIMEOUT: 10000,\n OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: 10000,\n OTEL_EXPORTER_ZIPKIN_ENDPOINT: 'http://localhost:9411/api/v2/spans',\n OTEL_LOG_LEVEL: DiagLogLevel.INFO,\n OTEL_NO_PATCH_MODULES: [],\n OTEL_PROPAGATORS: ['tracecontext', 'baggage'],\n OTEL_RESOURCE_ATTRIBUTES: '',\n OTEL_SERVICE_NAME: '',\n OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT: DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_ATTRIBUTE_COUNT_LIMIT: DEFAULT_ATTRIBUTE_COUNT_LIMIT,\n OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT: DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: DEFAULT_ATTRIBUTE_COUNT_LIMIT,\n OTEL_SPAN_EVENT_COUNT_LIMIT: 128,\n OTEL_SPAN_LINK_COUNT_LIMIT: 128,\n OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT: DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT: DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n OTEL_TRACES_EXPORTER: '',\n OTEL_TRACES_SAMPLER: TracesSamplerValues.ParentBasedAlwaysOn,\n OTEL_TRACES_SAMPLER_ARG: '',\n OTEL_EXPORTER_OTLP_INSECURE: '',\n OTEL_EXPORTER_OTLP_TRACES_INSECURE: '',\n OTEL_EXPORTER_OTLP_METRICS_INSECURE: '',\n OTEL_EXPORTER_OTLP_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_COMPRESSION: '',\n OTEL_EXPORTER_OTLP_TRACES_COMPRESSION: '',\n OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: '',\n OTEL_EXPORTER_OTLP_CLIENT_KEY: '',\n OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY: '',\n OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY: '',\n OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE: '',\n OTEL_EXPORTER_OTLP_PROTOCOL: 'http/protobuf',\n OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: 'http/protobuf',\n OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: 'http/protobuf',\n OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'cumulative',\n};\n/**\n * @param key\n * @param environment\n * @param values\n */\nfunction parseBoolean(key, environment, values) {\n if (typeof values[key] === 'undefined') {\n return;\n }\n var value = String(values[key]);\n // support case-insensitive \"true\"\n environment[key] = value.toLowerCase() === 'true';\n}\n/**\n * Parses a variable as number with number validation\n * @param name\n * @param environment\n * @param values\n * @param min\n * @param max\n */\nfunction parseNumber(name, environment, values, min, max) {\n if (min === void 0) { min = -Infinity; }\n if (max === void 0) { max = Infinity; }\n if (typeof values[name] !== 'undefined') {\n var value = Number(values[name]);\n if (!isNaN(value)) {\n if (value < min) {\n environment[name] = min;\n }\n else if (value > max) {\n environment[name] = max;\n }\n else {\n environment[name] = value;\n }\n }\n }\n}\n/**\n * Parses list-like strings from input into output.\n * @param name\n * @param environment\n * @param values\n * @param separator\n */\nfunction parseStringList(name, output, input, separator) {\n if (separator === void 0) { separator = DEFAULT_LIST_SEPARATOR; }\n var givenValue = input[name];\n if (typeof givenValue === 'string') {\n output[name] = givenValue.split(separator).map(function (v) { return v.trim(); });\n }\n}\n// The support string -> DiagLogLevel mappings\nvar logLevelMap = {\n ALL: DiagLogLevel.ALL,\n VERBOSE: DiagLogLevel.VERBOSE,\n DEBUG: DiagLogLevel.DEBUG,\n INFO: DiagLogLevel.INFO,\n WARN: DiagLogLevel.WARN,\n ERROR: DiagLogLevel.ERROR,\n NONE: DiagLogLevel.NONE,\n};\n/**\n * Environmentally sets log level if valid log level string is provided\n * @param key\n * @param environment\n * @param values\n */\nfunction setLogLevelFromEnv(key, environment, values) {\n var value = values[key];\n if (typeof value === 'string') {\n var theLevel = logLevelMap[value.toUpperCase()];\n if (theLevel != null) {\n environment[key] = theLevel;\n }\n }\n}\n/**\n * Parses environment values\n * @param values\n */\nexport function parseEnvironment(values) {\n var environment = {};\n for (var env in DEFAULT_ENVIRONMENT) {\n var key = env;\n switch (key) {\n case 'OTEL_LOG_LEVEL':\n setLogLevelFromEnv(key, environment, values);\n break;\n default:\n if (isEnvVarABoolean(key)) {\n parseBoolean(key, environment, values);\n }\n else if (isEnvVarANumber(key)) {\n parseNumber(key, environment, values);\n }\n else if (isEnvVarAList(key)) {\n parseStringList(key, environment, values);\n }\n else {\n var value = values[key];\n if (typeof value !== 'undefined' && value !== null) {\n environment[key] = String(value);\n }\n }\n }\n }\n return environment;\n}\n/**\n * Get environment in node or browser without\n * populating default values.\n */\nexport function getEnvWithoutDefaults() {\n return typeof process !== 'undefined' && process && process.env\n ? parseEnvironment(process.env)\n : parseEnvironment(_globalThis);\n}\n//# sourceMappingURL=environment.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DEFAULT_ENVIRONMENT, parseEnvironment, } from '../../utils/environment';\nimport { _globalThis } from './globalThis';\n/**\n * Gets the environment variables\n */\nexport function getEnv() {\n var globalEnv = parseEnvironment(_globalThis);\n return Object.assign({}, DEFAULT_ENVIRONMENT, globalEnv);\n}\n//# sourceMappingURL=environment.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function hexToBase64(hexStr) {\n var hexStrLen = hexStr.length;\n var hexAsciiCharsStr = '';\n for (var i = 0; i < hexStrLen; i += 2) {\n var hexPair = hexStr.substring(i, i + 2);\n var hexVal = parseInt(hexPair, 16);\n hexAsciiCharsStr += String.fromCharCode(hexVal);\n }\n return btoa(hexAsciiCharsStr);\n}\n//# sourceMappingURL=hex-to-base64.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var otperformance = performance;\n//# sourceMappingURL=performance.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// this is autogenerated file, see scripts/version-update.js\nexport var VERSION = '1.11.0';\n//# sourceMappingURL=version.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\nexport var SemanticAttributes = {\n /**\n * The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).\n *\n * Note: This may be different from `faas.id` if an alias is involved.\n */\n AWS_LAMBDA_INVOKED_ARN: 'aws.lambda.invoked_arn',\n /**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n */\n DB_SYSTEM: 'db.system',\n /**\n * The connection string used to connect to the database. It is recommended to remove embedded credentials.\n */\n DB_CONNECTION_STRING: 'db.connection_string',\n /**\n * Username for accessing the database.\n */\n DB_USER: 'db.user',\n /**\n * The fully-qualified class name of the [Java Database Connectivity (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver used to connect.\n */\n DB_JDBC_DRIVER_CLASSNAME: 'db.jdbc.driver_classname',\n /**\n * If no [tech-specific attribute](#call-level-attributes-for-specific-technologies) is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).\n *\n * Note: In some SQL databases, the database name to be used is called &#34;schema name&#34;.\n */\n DB_NAME: 'db.name',\n /**\n * The database statement being executed.\n *\n * Note: The value may be sanitized to exclude sensitive information.\n */\n DB_STATEMENT: 'db.statement',\n /**\n * The name of the operation being executed, e.g. the [MongoDB command name](https://docs.mongodb.com/manual/reference/command/#database-operations) such as `findAndModify`, or the SQL keyword.\n *\n * Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.\n */\n DB_OPERATION: 'db.operation',\n /**\n * The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) connecting to. This name is used to determine the port of a named instance.\n *\n * Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard).\n */\n DB_MSSQL_INSTANCE_NAME: 'db.mssql.instance_name',\n /**\n * The name of the keyspace being accessed. To be used instead of the generic `db.name` attribute.\n */\n DB_CASSANDRA_KEYSPACE: 'db.cassandra.keyspace',\n /**\n * The fetch size used for paging, i.e. how many rows will be returned at once.\n */\n DB_CASSANDRA_PAGE_SIZE: 'db.cassandra.page_size',\n /**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n */\n DB_CASSANDRA_CONSISTENCY_LEVEL: 'db.cassandra.consistency_level',\n /**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n */\n DB_CASSANDRA_TABLE: 'db.cassandra.table',\n /**\n * Whether or not the query is idempotent.\n */\n DB_CASSANDRA_IDEMPOTENCE: 'db.cassandra.idempotence',\n /**\n * The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.\n */\n DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: 'db.cassandra.speculative_execution_count',\n /**\n * The ID of the coordinating node for a query.\n */\n DB_CASSANDRA_COORDINATOR_ID: 'db.cassandra.coordinator.id',\n /**\n * The data center of the coordinating node for a query.\n */\n DB_CASSANDRA_COORDINATOR_DC: 'db.cassandra.coordinator.dc',\n /**\n * The [HBase namespace](https://hbase.apache.org/book.html#_namespace) being accessed. To be used instead of the generic `db.name` attribute.\n */\n DB_HBASE_NAMESPACE: 'db.hbase.namespace',\n /**\n * The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select), provided as an integer. To be used instead of the generic `db.name` attribute.\n */\n DB_REDIS_DATABASE_INDEX: 'db.redis.database_index',\n /**\n * The collection being accessed within the database stated in `db.name`.\n */\n DB_MONGODB_COLLECTION: 'db.mongodb.collection',\n /**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n */\n DB_SQL_TABLE: 'db.sql.table',\n /**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n */\n EXCEPTION_TYPE: 'exception.type',\n /**\n * The exception message.\n */\n EXCEPTION_MESSAGE: 'exception.message',\n /**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n */\n EXCEPTION_STACKTRACE: 'exception.stacktrace',\n /**\n * SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\n *\n * Note: An exception is considered to have escaped (or left) the scope of a span,\n if that span is ended while the exception is still logically &#34;in flight&#34;.\n This may be actually &#34;in flight&#34; in some languages (e.g. if the exception\n is passed to a Context manager&#39;s `__exit__` method in Python) but will\n usually be caught at the point of recording the exception in most languages.\n \n It is usually not possible to determine at the point where an exception is thrown\n whether it will escape the scope of a span.\n However, it is trivial to know that an exception\n will escape, if one checks for an active exception just before ending the span,\n as done in the [example above](#exception-end-example).\n \n It follows that an exception may still escape the scope of the span\n even if the `exception.escaped` attribute was not set or set to false,\n since the event might have been recorded at a time where it was not\n clear whether the exception will escape.\n */\n EXCEPTION_ESCAPED: 'exception.escaped',\n /**\n * Type of the trigger on which the function is executed.\n */\n FAAS_TRIGGER: 'faas.trigger',\n /**\n * The execution ID of the current function execution.\n */\n FAAS_EXECUTION: 'faas.execution',\n /**\n * The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.\n */\n FAAS_DOCUMENT_COLLECTION: 'faas.document.collection',\n /**\n * Describes the type of the operation that was performed on the data.\n */\n FAAS_DOCUMENT_OPERATION: 'faas.document.operation',\n /**\n * A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n */\n FAAS_DOCUMENT_TIME: 'faas.document.time',\n /**\n * The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.\n */\n FAAS_DOCUMENT_NAME: 'faas.document.name',\n /**\n * A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n */\n FAAS_TIME: 'faas.time',\n /**\n * A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n */\n FAAS_CRON: 'faas.cron',\n /**\n * A boolean that is true if the serverless function is executed for the first time (aka cold-start).\n */\n FAAS_COLDSTART: 'faas.coldstart',\n /**\n * The name of the invoked function.\n *\n * Note: SHOULD be equal to the `faas.name` resource attribute of the invoked function.\n */\n FAAS_INVOKED_NAME: 'faas.invoked_name',\n /**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n */\n FAAS_INVOKED_PROVIDER: 'faas.invoked_provider',\n /**\n * The cloud region of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked function.\n */\n FAAS_INVOKED_REGION: 'faas.invoked_region',\n /**\n * Transport protocol used. See note below.\n */\n NET_TRANSPORT: 'net.transport',\n /**\n * Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6).\n */\n NET_PEER_IP: 'net.peer.ip',\n /**\n * Remote port number.\n */\n NET_PEER_PORT: 'net.peer.port',\n /**\n * Remote hostname or similar, see note below.\n */\n NET_PEER_NAME: 'net.peer.name',\n /**\n * Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.\n */\n NET_HOST_IP: 'net.host.ip',\n /**\n * Like `net.peer.port` but for the host port.\n */\n NET_HOST_PORT: 'net.host.port',\n /**\n * Local hostname or similar, see note below.\n */\n NET_HOST_NAME: 'net.host.name',\n /**\n * The internet connection type currently being used by the host.\n */\n NET_HOST_CONNECTION_TYPE: 'net.host.connection.type',\n /**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n */\n NET_HOST_CONNECTION_SUBTYPE: 'net.host.connection.subtype',\n /**\n * The name of the mobile carrier.\n */\n NET_HOST_CARRIER_NAME: 'net.host.carrier.name',\n /**\n * The mobile carrier country code.\n */\n NET_HOST_CARRIER_MCC: 'net.host.carrier.mcc',\n /**\n * The mobile carrier network code.\n */\n NET_HOST_CARRIER_MNC: 'net.host.carrier.mnc',\n /**\n * The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.\n */\n NET_HOST_CARRIER_ICC: 'net.host.carrier.icc',\n /**\n * The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.\n */\n PEER_SERVICE: 'peer.service',\n /**\n * Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system.\n */\n ENDUSER_ID: 'enduser.id',\n /**\n * Actual/assumed role the client is making the request under extracted from token or application security context.\n */\n ENDUSER_ROLE: 'enduser.role',\n /**\n * Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n */\n ENDUSER_SCOPE: 'enduser.scope',\n /**\n * Current &#34;managed&#34; thread ID (as opposed to OS thread ID).\n */\n THREAD_ID: 'thread.id',\n /**\n * Current thread name.\n */\n THREAD_NAME: 'thread.name',\n /**\n * The method or function name, or equivalent (usually rightmost part of the code unit&#39;s name).\n */\n CODE_FUNCTION: 'code.function',\n /**\n * The &#34;namespace&#34; within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.\n */\n CODE_NAMESPACE: 'code.namespace',\n /**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\n */\n CODE_FILEPATH: 'code.filepath',\n /**\n * The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.\n */\n CODE_LINENO: 'code.lineno',\n /**\n * HTTP request method.\n */\n HTTP_METHOD: 'http.method',\n /**\n * Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.\n *\n * Note: `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute&#39;s value should be `https://www.example.com/`.\n */\n HTTP_URL: 'http.url',\n /**\n * The full request target as passed in a HTTP request line or equivalent.\n */\n HTTP_TARGET: 'http.target',\n /**\n * The value of the [HTTP host header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header should also be reported, see note.\n *\n * Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set.\n */\n HTTP_HOST: 'http.host',\n /**\n * The URI scheme identifying the used protocol.\n */\n HTTP_SCHEME: 'http.scheme',\n /**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n */\n HTTP_STATUS_CODE: 'http.status_code',\n /**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n */\n HTTP_FLAVOR: 'http.flavor',\n /**\n * Value of the [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the client.\n */\n HTTP_USER_AGENT: 'http.user_agent',\n /**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n */\n HTTP_REQUEST_CONTENT_LENGTH: 'http.request_content_length',\n /**\n * The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.\n */\n HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED: 'http.request_content_length_uncompressed',\n /**\n * The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n */\n HTTP_RESPONSE_CONTENT_LENGTH: 'http.response_content_length',\n /**\n * The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.\n */\n HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED: 'http.response_content_length_uncompressed',\n /**\n * The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( `net.host.name` should be used instead).\n *\n * Note: `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.\n */\n HTTP_SERVER_NAME: 'http.server_name',\n /**\n * The matched route (path template).\n */\n HTTP_ROUTE: 'http.route',\n /**\n * The IP address of the original client behind all proxies, if known (e.g. from [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n *\n * Note: This is not necessarily the same as `net.peer.ip`, which would\n identify the network-level peer, which may be a proxy.\n \n This attribute should be set when a source of information different\n from the one used for `net.peer.ip`, is available even if that other\n source just confirms the same value as `net.peer.ip`.\n Rationale: For `net.peer.ip`, one typically does not know if it\n comes from a proxy, reverse proxy, or the actual client. Setting\n `http.client_ip` when it&#39;s the same as `net.peer.ip` means that\n one is at least somewhat confident that the address is not that of\n the closest proxy.\n */\n HTTP_CLIENT_IP: 'http.client_ip',\n /**\n * The keys in the `RequestItems` object field.\n */\n AWS_DYNAMODB_TABLE_NAMES: 'aws.dynamodb.table_names',\n /**\n * The JSON-serialized value of each item in the `ConsumedCapacity` response field.\n */\n AWS_DYNAMODB_CONSUMED_CAPACITY: 'aws.dynamodb.consumed_capacity',\n /**\n * The JSON-serialized value of the `ItemCollectionMetrics` response field.\n */\n AWS_DYNAMODB_ITEM_COLLECTION_METRICS: 'aws.dynamodb.item_collection_metrics',\n /**\n * The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\n */\n AWS_DYNAMODB_PROVISIONED_READ_CAPACITY: 'aws.dynamodb.provisioned_read_capacity',\n /**\n * The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n */\n AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY: 'aws.dynamodb.provisioned_write_capacity',\n /**\n * The value of the `ConsistentRead` request parameter.\n */\n AWS_DYNAMODB_CONSISTENT_READ: 'aws.dynamodb.consistent_read',\n /**\n * The value of the `ProjectionExpression` request parameter.\n */\n AWS_DYNAMODB_PROJECTION: 'aws.dynamodb.projection',\n /**\n * The value of the `Limit` request parameter.\n */\n AWS_DYNAMODB_LIMIT: 'aws.dynamodb.limit',\n /**\n * The value of the `AttributesToGet` request parameter.\n */\n AWS_DYNAMODB_ATTRIBUTES_TO_GET: 'aws.dynamodb.attributes_to_get',\n /**\n * The value of the `IndexName` request parameter.\n */\n AWS_DYNAMODB_INDEX_NAME: 'aws.dynamodb.index_name',\n /**\n * The value of the `Select` request parameter.\n */\n AWS_DYNAMODB_SELECT: 'aws.dynamodb.select',\n /**\n * The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\n */\n AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES: 'aws.dynamodb.global_secondary_indexes',\n /**\n * The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\n */\n AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES: 'aws.dynamodb.local_secondary_indexes',\n /**\n * The value of the `ExclusiveStartTableName` request parameter.\n */\n AWS_DYNAMODB_EXCLUSIVE_START_TABLE: 'aws.dynamodb.exclusive_start_table',\n /**\n * The the number of items in the `TableNames` response parameter.\n */\n AWS_DYNAMODB_TABLE_COUNT: 'aws.dynamodb.table_count',\n /**\n * The value of the `ScanIndexForward` request parameter.\n */\n AWS_DYNAMODB_SCAN_FORWARD: 'aws.dynamodb.scan_forward',\n /**\n * The value of the `Segment` request parameter.\n */\n AWS_DYNAMODB_SEGMENT: 'aws.dynamodb.segment',\n /**\n * The value of the `TotalSegments` request parameter.\n */\n AWS_DYNAMODB_TOTAL_SEGMENTS: 'aws.dynamodb.total_segments',\n /**\n * The value of the `Count` response parameter.\n */\n AWS_DYNAMODB_COUNT: 'aws.dynamodb.count',\n /**\n * The value of the `ScannedCount` response parameter.\n */\n AWS_DYNAMODB_SCANNED_COUNT: 'aws.dynamodb.scanned_count',\n /**\n * The JSON-serialized value of each item in the `AttributeDefinitions` request field.\n */\n AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS: 'aws.dynamodb.attribute_definitions',\n /**\n * The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field.\n */\n AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES: 'aws.dynamodb.global_secondary_index_updates',\n /**\n * A string identifying the messaging system.\n */\n MESSAGING_SYSTEM: 'messaging.system',\n /**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n */\n MESSAGING_DESTINATION: 'messaging.destination',\n /**\n * The kind of message destination.\n */\n MESSAGING_DESTINATION_KIND: 'messaging.destination_kind',\n /**\n * A boolean that is true if the message destination is temporary.\n */\n MESSAGING_TEMP_DESTINATION: 'messaging.temp_destination',\n /**\n * The name of the transport protocol.\n */\n MESSAGING_PROTOCOL: 'messaging.protocol',\n /**\n * The version of the transport protocol.\n */\n MESSAGING_PROTOCOL_VERSION: 'messaging.protocol_version',\n /**\n * Connection string.\n */\n MESSAGING_URL: 'messaging.url',\n /**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n */\n MESSAGING_MESSAGE_ID: 'messaging.message_id',\n /**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called &#34;Correlation ID&#34;.\n */\n MESSAGING_CONVERSATION_ID: 'messaging.conversation_id',\n /**\n * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.\n */\n MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES: 'messaging.message_payload_size_bytes',\n /**\n * The compressed size of the message payload in bytes.\n */\n MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES: 'messaging.message_payload_compressed_size_bytes',\n /**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is &#34;send&#34;, this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n */\n MESSAGING_OPERATION: 'messaging.operation',\n /**\n * The identifier for the consumer receiving a message. For Kafka, set it to `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are present, or only `messaging.kafka.consumer_group`. For brokers, such as RabbitMQ and Artemis, set it to the `client_id` of the client consuming the message.\n */\n MESSAGING_CONSUMER_ID: 'messaging.consumer_id',\n /**\n * RabbitMQ message routing key.\n */\n MESSAGING_RABBITMQ_ROUTING_KEY: 'messaging.rabbitmq.routing_key',\n /**\n * Message keys in Kafka are used for grouping alike messages to ensure they&#39;re processed on the same partition. They differ from `messaging.message_id` in that they&#39;re not unique. If the key is `null`, the attribute MUST NOT be set.\n *\n * Note: If the key type is not string, it&#39;s string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don&#39;t include its value.\n */\n MESSAGING_KAFKA_MESSAGE_KEY: 'messaging.kafka.message_key',\n /**\n * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.\n */\n MESSAGING_KAFKA_CONSUMER_GROUP: 'messaging.kafka.consumer_group',\n /**\n * Client Id for the Consumer or Producer that is handling the message.\n */\n MESSAGING_KAFKA_CLIENT_ID: 'messaging.kafka.client_id',\n /**\n * Partition the message is sent to.\n */\n MESSAGING_KAFKA_PARTITION: 'messaging.kafka.partition',\n /**\n * A boolean that is true if the message is a tombstone.\n */\n MESSAGING_KAFKA_TOMBSTONE: 'messaging.kafka.tombstone',\n /**\n * A string identifying the remoting system.\n */\n RPC_SYSTEM: 'rpc.system',\n /**\n * The full (logical) name of the service being called, including its package name, if applicable.\n *\n * Note: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).\n */\n RPC_SERVICE: 'rpc.service',\n /**\n * The name of the (logical) method being called, must be equal to the $method part in the span name.\n *\n * Note: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).\n */\n RPC_METHOD: 'rpc.method',\n /**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n */\n RPC_GRPC_STATUS_CODE: 'rpc.grpc.status_code',\n /**\n * Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.\n */\n RPC_JSONRPC_VERSION: 'rpc.jsonrpc.version',\n /**\n * `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.\n */\n RPC_JSONRPC_REQUEST_ID: 'rpc.jsonrpc.request_id',\n /**\n * `error.code` property of response if it is an error response.\n */\n RPC_JSONRPC_ERROR_CODE: 'rpc.jsonrpc.error_code',\n /**\n * `error.message` property of response if it is an error response.\n */\n RPC_JSONRPC_ERROR_MESSAGE: 'rpc.jsonrpc.error_message',\n /**\n * Whether this is a received or sent message.\n */\n MESSAGE_TYPE: 'message.type',\n /**\n * MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.\n *\n * Note: This way we guarantee that the values will be consistent between different implementations.\n */\n MESSAGE_ID: 'message.id',\n /**\n * Compressed size of the message in bytes.\n */\n MESSAGE_COMPRESSED_SIZE: 'message.compressed_size',\n /**\n * Uncompressed size of the message in bytes.\n */\n MESSAGE_UNCOMPRESSED_SIZE: 'message.uncompressed_size',\n};\nexport var DbSystemValues = {\n /** Some other SQL database. Fallback only. See notes. */\n OTHER_SQL: 'other_sql',\n /** Microsoft SQL Server. */\n MSSQL: 'mssql',\n /** MySQL. */\n MYSQL: 'mysql',\n /** Oracle Database. */\n ORACLE: 'oracle',\n /** IBM Db2. */\n DB2: 'db2',\n /** PostgreSQL. */\n POSTGRESQL: 'postgresql',\n /** Amazon Redshift. */\n REDSHIFT: 'redshift',\n /** Apache Hive. */\n HIVE: 'hive',\n /** Cloudscape. */\n CLOUDSCAPE: 'cloudscape',\n /** HyperSQL DataBase. */\n HSQLDB: 'hsqldb',\n /** Progress Database. */\n PROGRESS: 'progress',\n /** SAP MaxDB. */\n MAXDB: 'maxdb',\n /** SAP HANA. */\n HANADB: 'hanadb',\n /** Ingres. */\n INGRES: 'ingres',\n /** FirstSQL. */\n FIRSTSQL: 'firstsql',\n /** EnterpriseDB. */\n EDB: 'edb',\n /** InterSystems Caché. */\n CACHE: 'cache',\n /** Adabas (Adaptable Database System). */\n ADABAS: 'adabas',\n /** Firebird. */\n FIREBIRD: 'firebird',\n /** Apache Derby. */\n DERBY: 'derby',\n /** FileMaker. */\n FILEMAKER: 'filemaker',\n /** Informix. */\n INFORMIX: 'informix',\n /** InstantDB. */\n INSTANTDB: 'instantdb',\n /** InterBase. */\n INTERBASE: 'interbase',\n /** MariaDB. */\n MARIADB: 'mariadb',\n /** Netezza. */\n NETEZZA: 'netezza',\n /** Pervasive PSQL. */\n PERVASIVE: 'pervasive',\n /** PointBase. */\n POINTBASE: 'pointbase',\n /** SQLite. */\n SQLITE: 'sqlite',\n /** Sybase. */\n SYBASE: 'sybase',\n /** Teradata. */\n TERADATA: 'teradata',\n /** Vertica. */\n VERTICA: 'vertica',\n /** H2. */\n H2: 'h2',\n /** ColdFusion IMQ. */\n COLDFUSION: 'coldfusion',\n /** Apache Cassandra. */\n CASSANDRA: 'cassandra',\n /** Apache HBase. */\n HBASE: 'hbase',\n /** MongoDB. */\n MONGODB: 'mongodb',\n /** Redis. */\n REDIS: 'redis',\n /** Couchbase. */\n COUCHBASE: 'couchbase',\n /** CouchDB. */\n COUCHDB: 'couchdb',\n /** Microsoft Azure Cosmos DB. */\n COSMOSDB: 'cosmosdb',\n /** Amazon DynamoDB. */\n DYNAMODB: 'dynamodb',\n /** Neo4j. */\n NEO4J: 'neo4j',\n /** Apache Geode. */\n GEODE: 'geode',\n /** Elasticsearch. */\n ELASTICSEARCH: 'elasticsearch',\n /** Memcached. */\n MEMCACHED: 'memcached',\n /** CockroachDB. */\n COCKROACHDB: 'cockroachdb',\n};\nexport var DbCassandraConsistencyLevelValues = {\n /** all. */\n ALL: 'all',\n /** each_quorum. */\n EACH_QUORUM: 'each_quorum',\n /** quorum. */\n QUORUM: 'quorum',\n /** local_quorum. */\n LOCAL_QUORUM: 'local_quorum',\n /** one. */\n ONE: 'one',\n /** two. */\n TWO: 'two',\n /** three. */\n THREE: 'three',\n /** local_one. */\n LOCAL_ONE: 'local_one',\n /** any. */\n ANY: 'any',\n /** serial. */\n SERIAL: 'serial',\n /** local_serial. */\n LOCAL_SERIAL: 'local_serial',\n};\nexport var FaasTriggerValues = {\n /** A response to some data source operation such as a database or filesystem read/write. */\n DATASOURCE: 'datasource',\n /** To provide an answer to an inbound HTTP request. */\n HTTP: 'http',\n /** A function is set to be executed when messages are sent to a messaging system. */\n PUBSUB: 'pubsub',\n /** A function is scheduled to be executed regularly. */\n TIMER: 'timer',\n /** If none of the others apply. */\n OTHER: 'other',\n};\nexport var FaasDocumentOperationValues = {\n /** When a new object is created. */\n INSERT: 'insert',\n /** When an object is modified. */\n EDIT: 'edit',\n /** When an object is deleted. */\n DELETE: 'delete',\n};\nexport var FaasInvokedProviderValues = {\n /** Alibaba Cloud. */\n ALIBABA_CLOUD: 'alibaba_cloud',\n /** Amazon Web Services. */\n AWS: 'aws',\n /** Microsoft Azure. */\n AZURE: 'azure',\n /** Google Cloud Platform. */\n GCP: 'gcp',\n};\nexport var NetTransportValues = {\n /** ip_tcp. */\n IP_TCP: 'ip_tcp',\n /** ip_udp. */\n IP_UDP: 'ip_udp',\n /** Another IP-based protocol. */\n IP: 'ip',\n /** Unix Domain socket. See below. */\n UNIX: 'unix',\n /** Named or anonymous pipe. See note below. */\n PIPE: 'pipe',\n /** In-process communication. */\n INPROC: 'inproc',\n /** Something else (non IP-based). */\n OTHER: 'other',\n};\nexport var NetHostConnectionTypeValues = {\n /** wifi. */\n WIFI: 'wifi',\n /** wired. */\n WIRED: 'wired',\n /** cell. */\n CELL: 'cell',\n /** unavailable. */\n UNAVAILABLE: 'unavailable',\n /** unknown. */\n UNKNOWN: 'unknown',\n};\nexport var NetHostConnectionSubtypeValues = {\n /** GPRS. */\n GPRS: 'gprs',\n /** EDGE. */\n EDGE: 'edge',\n /** UMTS. */\n UMTS: 'umts',\n /** CDMA. */\n CDMA: 'cdma',\n /** EVDO Rel. 0. */\n EVDO_0: 'evdo_0',\n /** EVDO Rev. A. */\n EVDO_A: 'evdo_a',\n /** CDMA2000 1XRTT. */\n CDMA2000_1XRTT: 'cdma2000_1xrtt',\n /** HSDPA. */\n HSDPA: 'hsdpa',\n /** HSUPA. */\n HSUPA: 'hsupa',\n /** HSPA. */\n HSPA: 'hspa',\n /** IDEN. */\n IDEN: 'iden',\n /** EVDO Rev. B. */\n EVDO_B: 'evdo_b',\n /** LTE. */\n LTE: 'lte',\n /** EHRPD. */\n EHRPD: 'ehrpd',\n /** HSPAP. */\n HSPAP: 'hspap',\n /** GSM. */\n GSM: 'gsm',\n /** TD-SCDMA. */\n TD_SCDMA: 'td_scdma',\n /** IWLAN. */\n IWLAN: 'iwlan',\n /** 5G NR (New Radio). */\n NR: 'nr',\n /** 5G NRNSA (New Radio Non-Standalone). */\n NRNSA: 'nrnsa',\n /** LTE CA. */\n LTE_CA: 'lte_ca',\n};\nexport var HttpFlavorValues = {\n /** HTTP 1.0. */\n HTTP_1_0: '1.0',\n /** HTTP 1.1. */\n HTTP_1_1: '1.1',\n /** HTTP 2. */\n HTTP_2_0: '2.0',\n /** SPDY protocol. */\n SPDY: 'SPDY',\n /** QUIC protocol. */\n QUIC: 'QUIC',\n};\nexport var MessagingDestinationKindValues = {\n /** A message sent to a queue. */\n QUEUE: 'queue',\n /** A message sent to a topic. */\n TOPIC: 'topic',\n};\nexport var MessagingOperationValues = {\n /** receive. */\n RECEIVE: 'receive',\n /** process. */\n PROCESS: 'process',\n};\nexport var RpcGrpcStatusCodeValues = {\n /** OK. */\n OK: 0,\n /** CANCELLED. */\n CANCELLED: 1,\n /** UNKNOWN. */\n UNKNOWN: 2,\n /** INVALID_ARGUMENT. */\n INVALID_ARGUMENT: 3,\n /** DEADLINE_EXCEEDED. */\n DEADLINE_EXCEEDED: 4,\n /** NOT_FOUND. */\n NOT_FOUND: 5,\n /** ALREADY_EXISTS. */\n ALREADY_EXISTS: 6,\n /** PERMISSION_DENIED. */\n PERMISSION_DENIED: 7,\n /** RESOURCE_EXHAUSTED. */\n RESOURCE_EXHAUSTED: 8,\n /** FAILED_PRECONDITION. */\n FAILED_PRECONDITION: 9,\n /** ABORTED. */\n ABORTED: 10,\n /** OUT_OF_RANGE. */\n OUT_OF_RANGE: 11,\n /** UNIMPLEMENTED. */\n UNIMPLEMENTED: 12,\n /** INTERNAL. */\n INTERNAL: 13,\n /** UNAVAILABLE. */\n UNAVAILABLE: 14,\n /** DATA_LOSS. */\n DATA_LOSS: 15,\n /** UNAUTHENTICATED. */\n UNAUTHENTICATED: 16,\n};\nexport var MessageTypeValues = {\n /** sent. */\n SENT: 'SENT',\n /** received. */\n RECEIVED: 'RECEIVED',\n};\n//# sourceMappingURL=SemanticAttributes.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\nexport var SemanticResourceAttributes = {\n /**\n * Name of the cloud provider.\n */\n CLOUD_PROVIDER: 'cloud.provider',\n /**\n * The cloud account ID the resource is assigned to.\n */\n CLOUD_ACCOUNT_ID: 'cloud.account.id',\n /**\n * The geographical region the resource is running. Refer to your provider&#39;s docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/), or [Google Cloud regions](https://cloud.google.com/about/locations).\n */\n CLOUD_REGION: 'cloud.region',\n /**\n * Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.\n *\n * Note: Availability zones are called &#34;zones&#34; on Alibaba Cloud and Google Cloud.\n */\n CLOUD_AVAILABILITY_ZONE: 'cloud.availability_zone',\n /**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n */\n CLOUD_PLATFORM: 'cloud.platform',\n /**\n * The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n */\n AWS_ECS_CONTAINER_ARN: 'aws.ecs.container.arn',\n /**\n * The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n */\n AWS_ECS_CLUSTER_ARN: 'aws.ecs.cluster.arn',\n /**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n */\n AWS_ECS_LAUNCHTYPE: 'aws.ecs.launchtype',\n /**\n * The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n */\n AWS_ECS_TASK_ARN: 'aws.ecs.task.arn',\n /**\n * The task definition family this task definition is a member of.\n */\n AWS_ECS_TASK_FAMILY: 'aws.ecs.task.family',\n /**\n * The revision for this task definition.\n */\n AWS_ECS_TASK_REVISION: 'aws.ecs.task.revision',\n /**\n * The ARN of an EKS cluster.\n */\n AWS_EKS_CLUSTER_ARN: 'aws.eks.cluster.arn',\n /**\n * The name(s) of the AWS log group(s) an application is writing to.\n *\n * Note: Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group.\n */\n AWS_LOG_GROUP_NAMES: 'aws.log.group.names',\n /**\n * The Amazon Resource Name(s) (ARN) of the AWS log group(s).\n *\n * Note: See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n */\n AWS_LOG_GROUP_ARNS: 'aws.log.group.arns',\n /**\n * The name(s) of the AWS log stream(s) an application is writing to.\n */\n AWS_LOG_STREAM_NAMES: 'aws.log.stream.names',\n /**\n * The ARN(s) of the AWS log stream(s).\n *\n * Note: See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.\n */\n AWS_LOG_STREAM_ARNS: 'aws.log.stream.arns',\n /**\n * Container name.\n */\n CONTAINER_NAME: 'container.name',\n /**\n * Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/reference/run/#container-identification). The UUID might be abbreviated.\n */\n CONTAINER_ID: 'container.id',\n /**\n * The container runtime managing this container.\n */\n CONTAINER_RUNTIME: 'container.runtime',\n /**\n * Name of the image the container was built on.\n */\n CONTAINER_IMAGE_NAME: 'container.image.name',\n /**\n * Container image tag.\n */\n CONTAINER_IMAGE_TAG: 'container.image.tag',\n /**\n * Name of the [deployment environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka deployment tier).\n */\n DEPLOYMENT_ENVIRONMENT: 'deployment.environment',\n /**\n * A unique identifier representing the device.\n *\n * Note: The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.\n */\n DEVICE_ID: 'device.id',\n /**\n * The model identifier for the device.\n *\n * Note: It&#39;s recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device.\n */\n DEVICE_MODEL_IDENTIFIER: 'device.model.identifier',\n /**\n * The marketing name for the device model.\n *\n * Note: It&#39;s recommended this value represents a human readable version of the device model rather than a machine readable alternative.\n */\n DEVICE_MODEL_NAME: 'device.model.name',\n /**\n * The name of the single function that this runtime instance executes.\n *\n * Note: This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes).\n */\n FAAS_NAME: 'faas.name',\n /**\n * The unique ID of the single function that this runtime instance executes.\n *\n * Note: Depending on the cloud provider, use:\n \n * **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\n Take care not to use the &#34;invoked ARN&#34; directly but replace any\n [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple\n different aliases.\n * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)\n * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id).\n \n On some providers, it may not be possible to determine the full ID at startup,\n which is why this field cannot be made required. For example, on AWS the account ID\n part of the ARN is not available without calling another AWS API\n which may be deemed too slow for a short-running lambda function.\n As an alternative, consider setting `faas.id` as a span attribute instead.\n */\n FAAS_ID: 'faas.id',\n /**\n * The immutable version of the function being executed.\n *\n * Note: Depending on the cloud provider and platform, use:\n \n * **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n (an integer represented as a decimal string).\n * **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions)\n (i.e., the function name plus the revision suffix).\n * **Google Cloud Functions:** The value of the\n [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n * **Azure Functions:** Not applicable. Do not set this attribute.\n */\n FAAS_VERSION: 'faas.version',\n /**\n * The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.\n *\n * Note: * **AWS Lambda:** Use the (full) log stream name.\n */\n FAAS_INSTANCE: 'faas.instance',\n /**\n * The amount of memory available to the serverless function in MiB.\n *\n * Note: It&#39;s recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information.\n */\n FAAS_MAX_MEMORY: 'faas.max_memory',\n /**\n * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.\n */\n HOST_ID: 'host.id',\n /**\n * Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.\n */\n HOST_NAME: 'host.name',\n /**\n * Type of host. For Cloud, this must be the machine type.\n */\n HOST_TYPE: 'host.type',\n /**\n * The CPU architecture the host system is running on.\n */\n HOST_ARCH: 'host.arch',\n /**\n * Name of the VM image or OS install the host was instantiated from.\n */\n HOST_IMAGE_NAME: 'host.image.name',\n /**\n * VM image ID. For Cloud, this value is from the provider.\n */\n HOST_IMAGE_ID: 'host.image.id',\n /**\n * The version string of the VM image as defined in [Version SpanAttributes](README.md#version-attributes).\n */\n HOST_IMAGE_VERSION: 'host.image.version',\n /**\n * The name of the cluster.\n */\n K8S_CLUSTER_NAME: 'k8s.cluster.name',\n /**\n * The name of the Node.\n */\n K8S_NODE_NAME: 'k8s.node.name',\n /**\n * The UID of the Node.\n */\n K8S_NODE_UID: 'k8s.node.uid',\n /**\n * The name of the namespace that the pod is running in.\n */\n K8S_NAMESPACE_NAME: 'k8s.namespace.name',\n /**\n * The UID of the Pod.\n */\n K8S_POD_UID: 'k8s.pod.uid',\n /**\n * The name of the Pod.\n */\n K8S_POD_NAME: 'k8s.pod.name',\n /**\n * The name of the Container in a Pod template.\n */\n K8S_CONTAINER_NAME: 'k8s.container.name',\n /**\n * The UID of the ReplicaSet.\n */\n K8S_REPLICASET_UID: 'k8s.replicaset.uid',\n /**\n * The name of the ReplicaSet.\n */\n K8S_REPLICASET_NAME: 'k8s.replicaset.name',\n /**\n * The UID of the Deployment.\n */\n K8S_DEPLOYMENT_UID: 'k8s.deployment.uid',\n /**\n * The name of the Deployment.\n */\n K8S_DEPLOYMENT_NAME: 'k8s.deployment.name',\n /**\n * The UID of the StatefulSet.\n */\n K8S_STATEFULSET_UID: 'k8s.statefulset.uid',\n /**\n * The name of the StatefulSet.\n */\n K8S_STATEFULSET_NAME: 'k8s.statefulset.name',\n /**\n * The UID of the DaemonSet.\n */\n K8S_DAEMONSET_UID: 'k8s.daemonset.uid',\n /**\n * The name of the DaemonSet.\n */\n K8S_DAEMONSET_NAME: 'k8s.daemonset.name',\n /**\n * The UID of the Job.\n */\n K8S_JOB_UID: 'k8s.job.uid',\n /**\n * The name of the Job.\n */\n K8S_JOB_NAME: 'k8s.job.name',\n /**\n * The UID of the CronJob.\n */\n K8S_CRONJOB_UID: 'k8s.cronjob.uid',\n /**\n * The name of the CronJob.\n */\n K8S_CRONJOB_NAME: 'k8s.cronjob.name',\n /**\n * The operating system type.\n */\n OS_TYPE: 'os.type',\n /**\n * Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.\n */\n OS_DESCRIPTION: 'os.description',\n /**\n * Human readable operating system name.\n */\n OS_NAME: 'os.name',\n /**\n * The version string of the operating system as defined in [Version SpanAttributes](../../resource/semantic_conventions/README.md#version-attributes).\n */\n OS_VERSION: 'os.version',\n /**\n * Process identifier (PID).\n */\n PROCESS_PID: 'process.pid',\n /**\n * The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.\n */\n PROCESS_EXECUTABLE_NAME: 'process.executable.name',\n /**\n * The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.\n */\n PROCESS_EXECUTABLE_PATH: 'process.executable.path',\n /**\n * The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.\n */\n PROCESS_COMMAND: 'process.command',\n /**\n * The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.\n */\n PROCESS_COMMAND_LINE: 'process.command_line',\n /**\n * All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.\n */\n PROCESS_COMMAND_ARGS: 'process.command_args',\n /**\n * The username of the user that owns the process.\n */\n PROCESS_OWNER: 'process.owner',\n /**\n * The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.\n */\n PROCESS_RUNTIME_NAME: 'process.runtime.name',\n /**\n * The version of the runtime of this process, as returned by the runtime without modification.\n */\n PROCESS_RUNTIME_VERSION: 'process.runtime.version',\n /**\n * An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.\n */\n PROCESS_RUNTIME_DESCRIPTION: 'process.runtime.description',\n /**\n * Logical name of the service.\n *\n * Note: MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`.\n */\n SERVICE_NAME: 'service.name',\n /**\n * A namespace for `service.name`.\n *\n * Note: A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n */\n SERVICE_NAMESPACE: 'service.namespace',\n /**\n * The string ID of the service instance.\n *\n * Note: MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).\n */\n SERVICE_INSTANCE_ID: 'service.instance.id',\n /**\n * The version string of the service API or implementation.\n */\n SERVICE_VERSION: 'service.version',\n /**\n * The name of the telemetry SDK as defined above.\n */\n TELEMETRY_SDK_NAME: 'telemetry.sdk.name',\n /**\n * The language of the telemetry SDK.\n */\n TELEMETRY_SDK_LANGUAGE: 'telemetry.sdk.language',\n /**\n * The version string of the telemetry SDK.\n */\n TELEMETRY_SDK_VERSION: 'telemetry.sdk.version',\n /**\n * The version string of the auto instrumentation agent, if used.\n */\n TELEMETRY_AUTO_VERSION: 'telemetry.auto.version',\n /**\n * The name of the web engine.\n */\n WEBENGINE_NAME: 'webengine.name',\n /**\n * The version of the web engine.\n */\n WEBENGINE_VERSION: 'webengine.version',\n /**\n * Additional description of the web engine (e.g. detailed version and edition information).\n */\n WEBENGINE_DESCRIPTION: 'webengine.description',\n};\nexport var CloudProviderValues = {\n /** Alibaba Cloud. */\n ALIBABA_CLOUD: 'alibaba_cloud',\n /** Amazon Web Services. */\n AWS: 'aws',\n /** Microsoft Azure. */\n AZURE: 'azure',\n /** Google Cloud Platform. */\n GCP: 'gcp',\n};\nexport var CloudPlatformValues = {\n /** Alibaba Cloud Elastic Compute Service. */\n ALIBABA_CLOUD_ECS: 'alibaba_cloud_ecs',\n /** Alibaba Cloud Function Compute. */\n ALIBABA_CLOUD_FC: 'alibaba_cloud_fc',\n /** AWS Elastic Compute Cloud. */\n AWS_EC2: 'aws_ec2',\n /** AWS Elastic Container Service. */\n AWS_ECS: 'aws_ecs',\n /** AWS Elastic Kubernetes Service. */\n AWS_EKS: 'aws_eks',\n /** AWS Lambda. */\n AWS_LAMBDA: 'aws_lambda',\n /** AWS Elastic Beanstalk. */\n AWS_ELASTIC_BEANSTALK: 'aws_elastic_beanstalk',\n /** Azure Virtual Machines. */\n AZURE_VM: 'azure_vm',\n /** Azure Container Instances. */\n AZURE_CONTAINER_INSTANCES: 'azure_container_instances',\n /** Azure Kubernetes Service. */\n AZURE_AKS: 'azure_aks',\n /** Azure Functions. */\n AZURE_FUNCTIONS: 'azure_functions',\n /** Azure App Service. */\n AZURE_APP_SERVICE: 'azure_app_service',\n /** Google Cloud Compute Engine (GCE). */\n GCP_COMPUTE_ENGINE: 'gcp_compute_engine',\n /** Google Cloud Run. */\n GCP_CLOUD_RUN: 'gcp_cloud_run',\n /** Google Cloud Kubernetes Engine (GKE). */\n GCP_KUBERNETES_ENGINE: 'gcp_kubernetes_engine',\n /** Google Cloud Functions (GCF). */\n GCP_CLOUD_FUNCTIONS: 'gcp_cloud_functions',\n /** Google Cloud App Engine (GAE). */\n GCP_APP_ENGINE: 'gcp_app_engine',\n};\nexport var AwsEcsLaunchtypeValues = {\n /** ec2. */\n EC2: 'ec2',\n /** fargate. */\n FARGATE: 'fargate',\n};\nexport var HostArchValues = {\n /** AMD64. */\n AMD64: 'amd64',\n /** ARM32. */\n ARM32: 'arm32',\n /** ARM64. */\n ARM64: 'arm64',\n /** Itanium. */\n IA64: 'ia64',\n /** 32-bit PowerPC. */\n PPC32: 'ppc32',\n /** 64-bit PowerPC. */\n PPC64: 'ppc64',\n /** 32-bit x86. */\n X86: 'x86',\n};\nexport var OsTypeValues = {\n /** Microsoft Windows. */\n WINDOWS: 'windows',\n /** Linux. */\n LINUX: 'linux',\n /** Apple Darwin. */\n DARWIN: 'darwin',\n /** FreeBSD. */\n FREEBSD: 'freebsd',\n /** NetBSD. */\n NETBSD: 'netbsd',\n /** OpenBSD. */\n OPENBSD: 'openbsd',\n /** DragonFly BSD. */\n DRAGONFLYBSD: 'dragonflybsd',\n /** HP-UX (Hewlett Packard Unix). */\n HPUX: 'hpux',\n /** AIX (Advanced Interactive eXecutive). */\n AIX: 'aix',\n /** Oracle Solaris. */\n SOLARIS: 'solaris',\n /** IBM z/OS. */\n Z_OS: 'z_os',\n};\nexport var TelemetrySdkLanguageValues = {\n /** cpp. */\n CPP: 'cpp',\n /** dotnet. */\n DOTNET: 'dotnet',\n /** erlang. */\n ERLANG: 'erlang',\n /** go. */\n GO: 'go',\n /** java. */\n JAVA: 'java',\n /** nodejs. */\n NODEJS: 'nodejs',\n /** php. */\n PHP: 'php',\n /** python. */\n PYTHON: 'python',\n /** ruby. */\n RUBY: 'ruby',\n /** webjs. */\n WEBJS: 'webjs',\n};\n//# sourceMappingURL=SemanticResourceAttributes.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nimport { VERSION } from '../../version';\nimport { TelemetrySdkLanguageValues, SemanticResourceAttributes, } from '@opentelemetry/semantic-conventions';\n/** Constants describing the SDK in use */\nexport var SDK_INFO = (_a = {},\n _a[SemanticResourceAttributes.TELEMETRY_SDK_NAME] = 'opentelemetry',\n _a[SemanticResourceAttributes.PROCESS_RUNTIME_NAME] = 'browser',\n _a[SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE] = TelemetrySdkLanguageValues.WEBJS,\n _a[SemanticResourceAttributes.TELEMETRY_SDK_VERSION] = VERSION,\n _a);\n//# sourceMappingURL=sdk-info.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function unrefTimer(_timer) { }\n//# sourceMappingURL=timer-util.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { otperformance as performance } from '../platform';\nvar NANOSECOND_DIGITS = 9;\nvar NANOSECOND_DIGITS_IN_MILLIS = 6;\nvar MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);\nvar SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);\n/**\n * Converts a number of milliseconds from epoch to HrTime([seconds, remainder in nanoseconds]).\n * @param epochMillis\n */\nexport function millisToHrTime(epochMillis) {\n var epochSeconds = epochMillis / 1000;\n // Decimals only.\n var seconds = Math.trunc(epochSeconds);\n // Round sub-nanosecond accuracy to nanosecond.\n var nanos = Math.round((epochMillis % 1000) * MILLISECONDS_TO_NANOSECONDS);\n return [seconds, nanos];\n}\nexport function getTimeOrigin() {\n var timeOrigin = performance.timeOrigin;\n if (typeof timeOrigin !== 'number') {\n var perf = performance;\n timeOrigin = perf.timing && perf.timing.fetchStart;\n }\n return timeOrigin;\n}\n/**\n * Returns an hrtime calculated via performance component.\n * @param performanceNow\n */\nexport function hrTime(performanceNow) {\n var timeOrigin = millisToHrTime(getTimeOrigin());\n var now = millisToHrTime(typeof performanceNow === 'number' ? performanceNow : performance.now());\n return addHrTimes(timeOrigin, now);\n}\n/**\n *\n * Converts a TimeInput to an HrTime, defaults to _hrtime().\n * @param time\n */\nexport function timeInputToHrTime(time) {\n // process.hrtime\n if (isTimeInputHrTime(time)) {\n return time;\n }\n else if (typeof time === 'number') {\n // Must be a performance.now() if it's smaller than process start time.\n if (time < getTimeOrigin()) {\n return hrTime(time);\n }\n else {\n // epoch milliseconds or performance.timeOrigin\n return millisToHrTime(time);\n }\n }\n else if (time instanceof Date) {\n return millisToHrTime(time.getTime());\n }\n else {\n throw TypeError('Invalid input type');\n }\n}\n/**\n * Returns a duration of two hrTime.\n * @param startTime\n * @param endTime\n */\nexport function hrTimeDuration(startTime, endTime) {\n var seconds = endTime[0] - startTime[0];\n var nanos = endTime[1] - startTime[1];\n // overflow\n if (nanos < 0) {\n seconds -= 1;\n // negate\n nanos += SECOND_TO_NANOSECONDS;\n }\n return [seconds, nanos];\n}\n/**\n * Convert hrTime to timestamp, for example \"2019-05-14T17:00:00.000123456Z\"\n * @param time\n */\nexport function hrTimeToTimeStamp(time) {\n var precision = NANOSECOND_DIGITS;\n var tmp = \"\" + '0'.repeat(precision) + time[1] + \"Z\";\n var nanoString = tmp.substr(tmp.length - precision - 1);\n var date = new Date(time[0] * 1000).toISOString();\n return date.replace('000Z', nanoString);\n}\n/**\n * Convert hrTime to nanoseconds.\n * @param time\n */\nexport function hrTimeToNanoseconds(time) {\n return time[0] * SECOND_TO_NANOSECONDS + time[1];\n}\n/**\n * Convert hrTime to milliseconds.\n * @param time\n */\nexport function hrTimeToMilliseconds(time) {\n return Math.round(time[0] * 1e3 + time[1] / 1e6);\n}\n/**\n * Convert hrTime to microseconds.\n * @param time\n */\nexport function hrTimeToMicroseconds(time) {\n return Math.round(time[0] * 1e6 + time[1] / 1e3);\n}\n/**\n * check if time is HrTime\n * @param value\n */\nexport function isTimeInputHrTime(value) {\n return (Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number');\n}\n/**\n * check if input value is a correct types.TimeInput\n * @param value\n */\nexport function isTimeInput(value) {\n return (isTimeInputHrTime(value) ||\n typeof value === 'number' ||\n value instanceof Date);\n}\n/**\n * Given 2 HrTime formatted times, return their sum as an HrTime.\n */\nexport function addHrTimes(time1, time2) {\n var out = [time1[0] + time2[0], time1[1] + time2[1]];\n // Nanoseconds\n if (out[1] >= SECOND_TO_NANOSECONDS) {\n out[1] -= SECOND_TO_NANOSECONDS;\n out[0] += 1;\n }\n return out;\n}\n//# sourceMappingURL=time.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var ExportResultCode;\n(function (ExportResultCode) {\n ExportResultCode[ExportResultCode[\"SUCCESS\"] = 0] = \"SUCCESS\";\n ExportResultCode[ExportResultCode[\"FAILED\"] = 1] = \"FAILED\";\n})(ExportResultCode || (ExportResultCode = {}));\n//# sourceMappingURL=ExportResult.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { diag, } from '@opentelemetry/api';\n/** Combines multiple propagators into a single propagator. */\nvar CompositePropagator = /** @class */ (function () {\n /**\n * Construct a composite propagator from a list of propagators.\n *\n * @param [config] Configuration object for composite propagator\n */\n function CompositePropagator(config) {\n if (config === void 0) { config = {}; }\n var _a;\n this._propagators = (_a = config.propagators) !== null && _a !== void 0 ? _a : [];\n this._fields = Array.from(new Set(this._propagators\n // older propagators may not have fields function, null check to be sure\n .map(function (p) { return (typeof p.fields === 'function' ? p.fields() : []); })\n .reduce(function (x, y) { return x.concat(y); }, [])));\n }\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same carrier key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to inject\n * @param carrier Carrier into which context will be injected\n */\n CompositePropagator.prototype.inject = function (context, carrier, setter) {\n var e_1, _a;\n try {\n for (var _b = __values(this._propagators), _c = _b.next(); !_c.done; _c = _b.next()) {\n var propagator = _c.value;\n try {\n propagator.inject(context, carrier, setter);\n }\n catch (err) {\n diag.warn(\"Failed to inject with \" + propagator.constructor.name + \". Err: \" + err.message);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same context key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to add values to\n * @param carrier Carrier from which to extract context\n */\n CompositePropagator.prototype.extract = function (context, carrier, getter) {\n return this._propagators.reduce(function (ctx, propagator) {\n try {\n return propagator.extract(ctx, carrier, getter);\n }\n catch (err) {\n diag.warn(\"Failed to inject with \" + propagator.constructor.name + \". Err: \" + err.message);\n }\n return ctx;\n }, context);\n };\n CompositePropagator.prototype.fields = function () {\n // return a new array so our fields cannot be modified\n return this._fields.slice();\n };\n return CompositePropagator;\n}());\nexport { CompositePropagator };\n//# sourceMappingURL=composite.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nvar VALID_KEY = \"[a-z]\" + VALID_KEY_CHAR_RANGE + \"{0,255}\";\nvar VALID_VENDOR_KEY = \"[a-z0-9]\" + VALID_KEY_CHAR_RANGE + \"{0,240}@[a-z]\" + VALID_KEY_CHAR_RANGE + \"{0,13}\";\nvar VALID_KEY_REGEX = new RegExp(\"^(?:\" + VALID_KEY + \"|\" + VALID_VENDOR_KEY + \")$\");\nvar VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nvar INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key) {\n return VALID_KEY_REGEX.test(key);\n}\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value) {\n return (VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value));\n}\n//# sourceMappingURL=validators.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { validateKey, validateValue } from '../internal/validators';\nvar MAX_TRACE_STATE_ITEMS = 32;\nvar MAX_TRACE_STATE_LEN = 512;\nvar LIST_MEMBERS_SEPARATOR = ',';\nvar LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nvar TraceState = /** @class */ (function () {\n function TraceState(rawTraceState) {\n this._internalState = new Map();\n if (rawTraceState)\n this._parse(rawTraceState);\n }\n TraceState.prototype.set = function (key, value) {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n var traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n };\n TraceState.prototype.unset = function (key) {\n var traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n };\n TraceState.prototype.get = function (key) {\n return this._internalState.get(key);\n };\n TraceState.prototype.serialize = function () {\n var _this = this;\n return this._keys()\n .reduce(function (agg, key) {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + _this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n };\n TraceState.prototype._parse = function (rawTraceState) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN)\n return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce(function (agg, part) {\n var listMember = part.trim(); // Optional Whitespace (OWS) handling\n var i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n var key = listMember.slice(0, i);\n var value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n }\n else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS));\n }\n };\n TraceState.prototype._keys = function () {\n return Array.from(this._internalState.keys()).reverse();\n };\n TraceState.prototype._clone = function () {\n var traceState = new TraceState();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n };\n return TraceState;\n}());\nexport { TraceState };\n//# sourceMappingURL=TraceState.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isSpanContextValid, trace, TraceFlags, } from '@opentelemetry/api';\nimport { isTracingSuppressed } from './suppress-tracing';\nimport { TraceState } from './TraceState';\nexport var TRACE_PARENT_HEADER = 'traceparent';\nexport var TRACE_STATE_HEADER = 'tracestate';\nvar VERSION = '00';\nvar VERSION_PART = '(?!ff)[\\\\da-f]{2}';\nvar TRACE_ID_PART = '(?![0]{32})[\\\\da-f]{32}';\nvar PARENT_ID_PART = '(?![0]{16})[\\\\da-f]{16}';\nvar FLAGS_PART = '[\\\\da-f]{2}';\nvar TRACE_PARENT_REGEX = new RegExp(\"^\\\\s?(\" + VERSION_PART + \")-(\" + TRACE_ID_PART + \")-(\" + PARENT_ID_PART + \")-(\" + FLAGS_PART + \")(-.*)?\\\\s?$\");\n/**\n * Parses information from the [traceparent] span tag and converts it into {@link SpanContext}\n * @param traceParent - A meta property that comes from server.\n * It should be dynamically generated server side to have the server's request trace Id,\n * a parent span Id that was set on the server's request span,\n * and the trace flags to indicate the server's sampling decision\n * (01 = sampled, 00 = not sampled).\n * for example: '{version}-{traceId}-{spanId}-{sampleDecision}'\n * For more information see {@link https://www.w3.org/TR/trace-context/}\n */\nexport function parseTraceParent(traceParent) {\n var match = TRACE_PARENT_REGEX.exec(traceParent);\n if (!match)\n return null;\n // According to the specification the implementation should be compatible\n // with future versions. If there are more parts, we only reject it if it's using version 00\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\n if (match[1] === '00' && match[5])\n return null;\n return {\n traceId: match[2],\n spanId: match[3],\n traceFlags: parseInt(match[4], 16),\n };\n}\n/**\n * Propagates {@link SpanContext} through Trace Context format propagation.\n *\n * Based on the Trace Context specification:\n * https://www.w3.org/TR/trace-context/\n */\nvar W3CTraceContextPropagator = /** @class */ (function () {\n function W3CTraceContextPropagator() {\n }\n W3CTraceContextPropagator.prototype.inject = function (context, carrier, setter) {\n var spanContext = trace.getSpanContext(context);\n if (!spanContext ||\n isTracingSuppressed(context) ||\n !isSpanContextValid(spanContext))\n return;\n var traceParent = VERSION + \"-\" + spanContext.traceId + \"-\" + spanContext.spanId + \"-0\" + Number(spanContext.traceFlags || TraceFlags.NONE).toString(16);\n setter.set(carrier, TRACE_PARENT_HEADER, traceParent);\n if (spanContext.traceState) {\n setter.set(carrier, TRACE_STATE_HEADER, spanContext.traceState.serialize());\n }\n };\n W3CTraceContextPropagator.prototype.extract = function (context, carrier, getter) {\n var traceParentHeader = getter.get(carrier, TRACE_PARENT_HEADER);\n if (!traceParentHeader)\n return context;\n var traceParent = Array.isArray(traceParentHeader)\n ? traceParentHeader[0]\n : traceParentHeader;\n if (typeof traceParent !== 'string')\n return context;\n var spanContext = parseTraceParent(traceParent);\n if (!spanContext)\n return context;\n spanContext.isRemote = true;\n var traceStateHeader = getter.get(carrier, TRACE_STATE_HEADER);\n if (traceStateHeader) {\n // If more than one `tracestate` header is found, we merge them into a\n // single header.\n var state = Array.isArray(traceStateHeader)\n ? traceStateHeader.join(',')\n : traceStateHeader;\n spanContext.traceState = new TraceState(typeof state === 'string' ? state : undefined);\n }\n return trace.setSpanContext(context, spanContext);\n };\n W3CTraceContextPropagator.prototype.fields = function () {\n return [TRACE_PARENT_HEADER, TRACE_STATE_HEADER];\n };\n return W3CTraceContextPropagator;\n}());\nexport { W3CTraceContextPropagator };\n//# sourceMappingURL=W3CTraceContextPropagator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\nvar objectTag = '[object Object]';\nvar nullTag = '[object Null]';\nvar undefinedTag = '[object Undefined]';\nvar funcProto = Function.prototype;\nvar funcToString = funcProto.toString;\nvar objectCtorString = funcToString.call(Object);\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nvar nativeObjectToString = objectProto.toString;\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nexport function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString);\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n var unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n }\n catch (e) {\n // silence\n }\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n }\n else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n//# sourceMappingURL=lodash.merge.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlainObject } from './lodash.merge';\nvar MAX_LEVEL = 20;\n/**\n * Merges objects together\n * @param args - objects / values to be merged\n */\nexport function merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args.shift();\n var objects = new WeakMap();\n while (args.length > 0) {\n result = mergeTwoObjects(result, args.shift(), 0, objects);\n }\n return result;\n}\nfunction takeValue(value) {\n if (isArray(value)) {\n return value.slice();\n }\n return value;\n}\n/**\n * Merges two objects\n * @param one - first object\n * @param two - second object\n * @param level - current deep level\n * @param objects - objects holder that has been already referenced - to prevent\n * cyclic dependency\n */\nfunction mergeTwoObjects(one, two, level, objects) {\n if (level === void 0) { level = 0; }\n var result;\n if (level > MAX_LEVEL) {\n return undefined;\n }\n level++;\n if (isPrimitive(one) || isPrimitive(two) || isFunction(two)) {\n result = takeValue(two);\n }\n else if (isArray(one)) {\n result = one.slice();\n if (isArray(two)) {\n for (var i = 0, j = two.length; i < j; i++) {\n result.push(takeValue(two[i]));\n }\n }\n else if (isObject(two)) {\n var keys = Object.keys(two);\n for (var i = 0, j = keys.length; i < j; i++) {\n var key = keys[i];\n result[key] = takeValue(two[key]);\n }\n }\n }\n else if (isObject(one)) {\n if (isObject(two)) {\n if (!shouldMerge(one, two)) {\n return two;\n }\n result = Object.assign({}, one);\n var keys = Object.keys(two);\n for (var i = 0, j = keys.length; i < j; i++) {\n var key = keys[i];\n var twoValue = two[key];\n if (isPrimitive(twoValue)) {\n if (typeof twoValue === 'undefined') {\n delete result[key];\n }\n else {\n // result[key] = takeValue(twoValue);\n result[key] = twoValue;\n }\n }\n else {\n var obj1 = result[key];\n var obj2 = twoValue;\n if (wasObjectReferenced(one, key, objects) ||\n wasObjectReferenced(two, key, objects)) {\n delete result[key];\n }\n else {\n if (isObject(obj1) && isObject(obj2)) {\n var arr1 = objects.get(obj1) || [];\n var arr2 = objects.get(obj2) || [];\n arr1.push({ obj: one, key: key });\n arr2.push({ obj: two, key: key });\n objects.set(obj1, arr1);\n objects.set(obj2, arr2);\n }\n result[key] = mergeTwoObjects(result[key], twoValue, level, objects);\n }\n }\n }\n }\n else {\n result = two;\n }\n }\n return result;\n}\n/**\n * Function to check if object has been already reference\n * @param obj\n * @param key\n * @param objects\n */\nfunction wasObjectReferenced(obj, key, objects) {\n var arr = objects.get(obj[key]) || [];\n for (var i = 0, j = arr.length; i < j; i++) {\n var info = arr[i];\n if (info.key === key && info.obj === obj) {\n return true;\n }\n }\n return false;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isObject(value) {\n return (!isPrimitive(value) &&\n !isArray(value) &&\n !isFunction(value) &&\n typeof value === 'object');\n}\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n value instanceof Date ||\n value instanceof RegExp ||\n value === null);\n}\nfunction shouldMerge(one, two) {\n if (!isPlainObject(one) || !isPlainObject(two)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=merge.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function urlMatches(url, urlToMatch) {\n if (typeof urlToMatch === 'string') {\n return url === urlToMatch;\n }\n else {\n return !!url.match(urlToMatch);\n }\n}\n/**\n * Check if {@param url} should be ignored when comparing against {@param ignoredUrls}\n * @param url\n * @param ignoredUrls\n */\nexport function isUrlIgnored(url, ignoredUrls) {\n var e_1, _a;\n if (!ignoredUrls) {\n return false;\n }\n try {\n for (var ignoredUrls_1 = __values(ignoredUrls), ignoredUrls_1_1 = ignoredUrls_1.next(); !ignoredUrls_1_1.done; ignoredUrls_1_1 = ignoredUrls_1.next()) {\n var ignoreUrl = ignoredUrls_1_1.value;\n if (urlMatches(url, ignoreUrl)) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ignoredUrls_1_1 && !ignoredUrls_1_1.done && (_a = ignoredUrls_1.return)) _a.call(ignoredUrls_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=url.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n this._promise = new Promise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n }\n Object.defineProperty(Deferred.prototype, \"promise\", {\n get: function () {\n return this._promise;\n },\n enumerable: false,\n configurable: true\n });\n Deferred.prototype.resolve = function (val) {\n this._resolve(val);\n };\n Deferred.prototype.reject = function (err) {\n this._reject(err);\n };\n return Deferred;\n}());\nexport { Deferred };\n//# sourceMappingURL=promise.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { Deferred } from './promise';\n/**\n * Bind the callback and only invoke the callback once regardless how many times `BindOnceFuture.call` is invoked.\n */\nvar BindOnceFuture = /** @class */ (function () {\n function BindOnceFuture(_callback, _that) {\n this._callback = _callback;\n this._that = _that;\n this._isCalled = false;\n this._deferred = new Deferred();\n }\n Object.defineProperty(BindOnceFuture.prototype, \"isCalled\", {\n get: function () {\n return this._isCalled;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BindOnceFuture.prototype, \"promise\", {\n get: function () {\n return this._deferred.promise;\n },\n enumerable: false,\n configurable: true\n });\n BindOnceFuture.prototype.call = function () {\n var _a;\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._isCalled) {\n this._isCalled = true;\n try {\n Promise.resolve((_a = this._callback).call.apply(_a, __spreadArray([this._that], __read(args), false))).then(function (val) { return _this._deferred.resolve(val); }, function (err) { return _this._deferred.reject(err); });\n }\n catch (err) {\n this._deferred.reject(err);\n }\n }\n return this._deferred.promise;\n };\n return BindOnceFuture;\n}());\nexport { BindOnceFuture };\n//# sourceMappingURL=callback.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context } from '@opentelemetry/api';\nimport { suppressTracing } from '../trace/suppress-tracing';\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppresion of Traces.\n */\nexport function _export(exporter, arg) {\n return new Promise(function (resolve) {\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), function () {\n exporter.export(arg, function (result) {\n resolve(result);\n });\n });\n });\n}\n//# sourceMappingURL=exporter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './baggage/propagation/W3CBaggagePropagator';\nexport * from './common/anchored-clock';\nexport * from './common/attributes';\nexport * from './common/global-error-handler';\nexport * from './common/logging-error-handler';\nexport * from './common/time';\nexport * from './common/types';\nexport * from './ExportResult';\nexport * from './version';\nimport * as baggageUtils_1 from './baggage/utils';\nexport { baggageUtils_1 as baggageUtils };\nexport * from './platform';\nexport * from './propagation/composite';\nexport * from './trace/W3CTraceContextPropagator';\nexport * from './trace/IdGenerator';\nexport * from './trace/rpc-metadata';\nexport * from './trace/sampler/AlwaysOffSampler';\nexport * from './trace/sampler/AlwaysOnSampler';\nexport * from './trace/sampler/ParentBasedSampler';\nexport * from './trace/sampler/TraceIdRatioBasedSampler';\nexport * from './trace/suppress-tracing';\nexport * from './trace/TraceState';\nexport * from './utils/environment';\nexport * from './utils/merge';\nexport * from './utils/sampling';\nexport * from './utils/url';\nexport * from './utils/wrap';\nexport * from './utils/callback';\nexport * from './version';\nimport { _export } from './internal/exporter';\nexport var internal = {\n _export: _export,\n};\n//# sourceMappingURL=index.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Event name definitions\nexport var ExceptionEventName = 'exception';\n//# sourceMappingURL=enums.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { diag, SpanStatusCode, } from '@opentelemetry/api';\nimport { addHrTimes, millisToHrTime, getTimeOrigin, hrTime, hrTimeDuration, isAttributeValue, isTimeInput, isTimeInputHrTime, otperformance, sanitizeAttributes, } from '@opentelemetry/core';\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\nimport { ExceptionEventName } from './enums';\n/**\n * This class represents a span.\n */\nvar Span = /** @class */ (function () {\n /**\n * Constructs a new Span instance.\n *\n * @deprecated calling Span constructor directly is not supported. Please use tracer.startSpan.\n * */\n function Span(parentTracer, context, spanName, spanContext, kind, parentSpanId, links, startTime, _deprecatedClock // keeping this argument even though it is unused to ensure backwards compatibility\n ) {\n if (links === void 0) { links = []; }\n this.attributes = {};\n this.links = [];\n this.events = [];\n this._droppedAttributesCount = 0;\n this._droppedEventsCount = 0;\n this._droppedLinksCount = 0;\n this.status = {\n code: SpanStatusCode.UNSET,\n };\n this.endTime = [0, 0];\n this._ended = false;\n this._duration = [-1, -1];\n this.name = spanName;\n this._spanContext = spanContext;\n this.parentSpanId = parentSpanId;\n this.kind = kind;\n this.links = links;\n var now = Date.now();\n this._performanceStartTime = otperformance.now();\n this._performanceOffset =\n now - (this._performanceStartTime + getTimeOrigin());\n this._startTimeProvided = startTime != null;\n this.startTime = this._getTime(startTime !== null && startTime !== void 0 ? startTime : now);\n this.resource = parentTracer.resource;\n this.instrumentationLibrary = parentTracer.instrumentationLibrary;\n this._spanLimits = parentTracer.getSpanLimits();\n this._spanProcessor = parentTracer.getActiveSpanProcessor();\n this._spanProcessor.onStart(this, context);\n this._attributeValueLengthLimit =\n this._spanLimits.attributeValueLengthLimit || 0;\n }\n Span.prototype.spanContext = function () {\n return this._spanContext;\n };\n Span.prototype.setAttribute = function (key, value) {\n if (value == null || this._isSpanEnded())\n return this;\n if (key.length === 0) {\n diag.warn(\"Invalid attribute key: \" + key);\n return this;\n }\n if (!isAttributeValue(value)) {\n diag.warn(\"Invalid attribute value set for key: \" + key);\n return this;\n }\n if (Object.keys(this.attributes).length >=\n this._spanLimits.attributeCountLimit &&\n !Object.prototype.hasOwnProperty.call(this.attributes, key)) {\n this._droppedAttributesCount++;\n return this;\n }\n this.attributes[key] = this._truncateToSize(value);\n return this;\n };\n Span.prototype.setAttributes = function (attributes) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n this.setAttribute(k, v);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n /**\n *\n * @param name Span Name\n * @param [attributesOrStartTime] Span attributes or start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [timeStamp] Specified time stamp for the event\n */\n Span.prototype.addEvent = function (name, attributesOrStartTime, timeStamp) {\n if (this._isSpanEnded())\n return this;\n if (this._spanLimits.eventCountLimit === 0) {\n diag.warn('No events allowed.');\n this._droppedEventsCount++;\n return this;\n }\n if (this.events.length >= this._spanLimits.eventCountLimit) {\n diag.warn('Dropping extra events.');\n this.events.shift();\n this._droppedEventsCount++;\n }\n if (isTimeInput(attributesOrStartTime)) {\n if (!isTimeInput(timeStamp)) {\n timeStamp = attributesOrStartTime;\n }\n attributesOrStartTime = undefined;\n }\n var attributes = sanitizeAttributes(attributesOrStartTime);\n this.events.push({\n name: name,\n attributes: attributes,\n time: this._getTime(timeStamp),\n droppedAttributesCount: 0,\n });\n return this;\n };\n Span.prototype.setStatus = function (status) {\n if (this._isSpanEnded())\n return this;\n this.status = status;\n return this;\n };\n Span.prototype.updateName = function (name) {\n if (this._isSpanEnded())\n return this;\n this.name = name;\n return this;\n };\n Span.prototype.end = function (endTime) {\n if (this._isSpanEnded()) {\n diag.error('You can only call end() on a span once.');\n return;\n }\n this._ended = true;\n this.endTime = this._getTime(endTime);\n this._duration = hrTimeDuration(this.startTime, this.endTime);\n if (this._duration[0] < 0) {\n diag.warn('Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.', this.startTime, this.endTime);\n this.endTime = this.startTime.slice();\n this._duration = [0, 0];\n }\n this._spanProcessor.onEnd(this);\n };\n Span.prototype._getTime = function (inp) {\n if (typeof inp === 'number' && inp < otperformance.now()) {\n // must be a performance timestamp\n // apply correction and convert to hrtime\n return hrTime(inp + this._performanceOffset);\n }\n if (typeof inp === 'number') {\n return millisToHrTime(inp);\n }\n if (inp instanceof Date) {\n return millisToHrTime(inp.getTime());\n }\n if (isTimeInputHrTime(inp)) {\n return inp;\n }\n if (this._startTimeProvided) {\n // if user provided a time for the start manually\n // we can't use duration to calculate event/end times\n return millisToHrTime(Date.now());\n }\n var msDuration = otperformance.now() - this._performanceStartTime;\n return addHrTimes(this.startTime, millisToHrTime(msDuration));\n };\n Span.prototype.isRecording = function () {\n return this._ended === false;\n };\n Span.prototype.recordException = function (exception, time) {\n var attributes = {};\n if (typeof exception === 'string') {\n attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception;\n }\n else if (exception) {\n if (exception.code) {\n attributes[SemanticAttributes.EXCEPTION_TYPE] =\n exception.code.toString();\n }\n else if (exception.name) {\n attributes[SemanticAttributes.EXCEPTION_TYPE] = exception.name;\n }\n if (exception.message) {\n attributes[SemanticAttributes.EXCEPTION_MESSAGE] = exception.message;\n }\n if (exception.stack) {\n attributes[SemanticAttributes.EXCEPTION_STACKTRACE] = exception.stack;\n }\n }\n // these are minimum requirements from spec\n if (attributes[SemanticAttributes.EXCEPTION_TYPE] ||\n attributes[SemanticAttributes.EXCEPTION_MESSAGE]) {\n this.addEvent(ExceptionEventName, attributes, time);\n }\n else {\n diag.warn(\"Failed to record an exception \" + exception);\n }\n };\n Object.defineProperty(Span.prototype, \"duration\", {\n get: function () {\n return this._duration;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Span.prototype, \"ended\", {\n get: function () {\n return this._ended;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Span.prototype, \"droppedAttributesCount\", {\n get: function () {\n return this._droppedAttributesCount;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Span.prototype, \"droppedEventsCount\", {\n get: function () {\n return this._droppedEventsCount;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Span.prototype, \"droppedLinksCount\", {\n get: function () {\n return this._droppedLinksCount;\n },\n enumerable: false,\n configurable: true\n });\n Span.prototype._isSpanEnded = function () {\n if (this._ended) {\n diag.warn(\"Can not execute the operation on ended Span {traceId: \" + this._spanContext.traceId + \", spanId: \" + this._spanContext.spanId + \"}\");\n }\n return this._ended;\n };\n // Utility function to truncate given value within size\n // for value type of string, will truncate to given limit\n // for type of non-string, will return same value\n Span.prototype._truncateToLimitUtil = function (value, limit) {\n if (value.length <= limit) {\n return value;\n }\n return value.substr(0, limit);\n };\n /**\n * If the given attribute value is of type string and has more characters than given {@code attributeValueLengthLimit} then\n * return string with trucated to {@code attributeValueLengthLimit} characters\n *\n * If the given attribute value is array of strings then\n * return new array of strings with each element truncated to {@code attributeValueLengthLimit} characters\n *\n * Otherwise return same Attribute {@code value}\n *\n * @param value Attribute value\n * @returns truncated attribute value if required, otherwise same value\n */\n Span.prototype._truncateToSize = function (value) {\n var _this = this;\n var limit = this._attributeValueLengthLimit;\n // Check limit\n if (limit <= 0) {\n // Negative values are invalid, so do not truncate\n diag.warn(\"Attribute value limit must be positive, got \" + limit);\n return value;\n }\n // String\n if (typeof value === 'string') {\n return this._truncateToLimitUtil(value, limit);\n }\n // Array of strings\n if (Array.isArray(value)) {\n return value.map(function (val) {\n return typeof val === 'string' ? _this._truncateToLimitUtil(val, limit) : val;\n });\n }\n // Other types, no need to apply value length limit\n return value;\n };\n return Span;\n}());\nexport { Span };\n//# sourceMappingURL=Span.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport var SamplingDecision;\n(function (SamplingDecision) {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n SamplingDecision[SamplingDecision[\"NOT_RECORD\"] = 0] = \"NOT_RECORD\";\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD\"] = 1] = \"RECORD\";\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n SamplingDecision[SamplingDecision[\"RECORD_AND_SAMPLED\"] = 2] = \"RECORD_AND_SAMPLED\";\n})(SamplingDecision || (SamplingDecision = {}));\n//# sourceMappingURL=Sampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples no traces. */\nvar AlwaysOffSampler = /** @class */ (function () {\n function AlwaysOffSampler() {\n }\n AlwaysOffSampler.prototype.shouldSample = function () {\n return {\n decision: SamplingDecision.NOT_RECORD,\n };\n };\n AlwaysOffSampler.prototype.toString = function () {\n return 'AlwaysOffSampler';\n };\n return AlwaysOffSampler;\n}());\nexport { AlwaysOffSampler };\n//# sourceMappingURL=AlwaysOffSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples all traces. */\nvar AlwaysOnSampler = /** @class */ (function () {\n function AlwaysOnSampler() {\n }\n AlwaysOnSampler.prototype.shouldSample = function () {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n };\n };\n AlwaysOnSampler.prototype.toString = function () {\n return 'AlwaysOnSampler';\n };\n return AlwaysOnSampler;\n}());\nexport { AlwaysOnSampler };\n//# sourceMappingURL=AlwaysOnSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isSpanContextValid, TraceFlags, trace, } from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './AlwaysOffSampler';\nimport { AlwaysOnSampler } from './AlwaysOnSampler';\n/**\n * A composite sampler that either respects the parent span's sampling decision\n * or delegates to `delegateSampler` for root spans.\n */\nvar ParentBasedSampler = /** @class */ (function () {\n function ParentBasedSampler(config) {\n var _a, _b, _c, _d;\n this._root = config.root;\n if (!this._root) {\n globalErrorHandler(new Error('ParentBasedSampler must have a root sampler configured'));\n this._root = new AlwaysOnSampler();\n }\n this._remoteParentSampled =\n (_a = config.remoteParentSampled) !== null && _a !== void 0 ? _a : new AlwaysOnSampler();\n this._remoteParentNotSampled =\n (_b = config.remoteParentNotSampled) !== null && _b !== void 0 ? _b : new AlwaysOffSampler();\n this._localParentSampled =\n (_c = config.localParentSampled) !== null && _c !== void 0 ? _c : new AlwaysOnSampler();\n this._localParentNotSampled =\n (_d = config.localParentNotSampled) !== null && _d !== void 0 ? _d : new AlwaysOffSampler();\n }\n ParentBasedSampler.prototype.shouldSample = function (context, traceId, spanName, spanKind, attributes, links) {\n var parentContext = trace.getSpanContext(context);\n if (!parentContext || !isSpanContextValid(parentContext)) {\n return this._root.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n if (parentContext.isRemote) {\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._remoteParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n return this._remoteParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._localParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n }\n return this._localParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);\n };\n ParentBasedSampler.prototype.toString = function () {\n return \"ParentBased{root=\" + this._root.toString() + \", remoteParentSampled=\" + this._remoteParentSampled.toString() + \", remoteParentNotSampled=\" + this._remoteParentNotSampled.toString() + \", localParentSampled=\" + this._localParentSampled.toString() + \", localParentNotSampled=\" + this._localParentNotSampled.toString() + \"}\";\n };\n return ParentBasedSampler;\n}());\nexport { ParentBasedSampler };\n//# sourceMappingURL=ParentBasedSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isValidTraceId } from '@opentelemetry/api';\nimport { SamplingDecision } from '../Sampler';\n/** Sampler that samples a given fraction of traces based of trace id deterministically. */\nvar TraceIdRatioBasedSampler = /** @class */ (function () {\n function TraceIdRatioBasedSampler(_ratio) {\n if (_ratio === void 0) { _ratio = 0; }\n this._ratio = _ratio;\n this._ratio = this._normalize(_ratio);\n this._upperBound = Math.floor(this._ratio * 0xffffffff);\n }\n TraceIdRatioBasedSampler.prototype.shouldSample = function (context, traceId) {\n return {\n decision: isValidTraceId(traceId) && this._accumulate(traceId) < this._upperBound\n ? SamplingDecision.RECORD_AND_SAMPLED\n : SamplingDecision.NOT_RECORD,\n };\n };\n TraceIdRatioBasedSampler.prototype.toString = function () {\n return \"TraceIdRatioBased{\" + this._ratio + \"}\";\n };\n TraceIdRatioBasedSampler.prototype._normalize = function (ratio) {\n if (typeof ratio !== 'number' || isNaN(ratio))\n return 0;\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio;\n };\n TraceIdRatioBasedSampler.prototype._accumulate = function (traceId) {\n var accumulation = 0;\n for (var i = 0; i < traceId.length / 8; i++) {\n var pos = i * 8;\n var part = parseInt(traceId.slice(pos, pos + 8), 16);\n accumulation = (accumulation ^ part) >>> 0;\n }\n return accumulation;\n };\n return TraceIdRatioBasedSampler;\n}());\nexport { TraceIdRatioBasedSampler };\n//# sourceMappingURL=TraceIdRatioBasedSampler.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { getEnv, TracesSamplerValues } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nimport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nimport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nimport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\nvar env = getEnv();\nvar FALLBACK_OTEL_TRACES_SAMPLER = TracesSamplerValues.AlwaysOn;\nvar DEFAULT_RATIO = 1;\n/**\n * Load default configuration. For fields with primitive values, any user-provided\n * value will override the corresponding default value. For fields with\n * non-primitive values (like `spanLimits`), the user-provided value will be\n * used to extend the default value.\n */\n// object needs to be wrapped in this function and called when needed otherwise\n// envs are parsed before tests are ran - causes tests using these envs to fail\nexport function loadDefaultConfig() {\n return {\n sampler: buildSamplerFromEnv(env),\n forceFlushTimeoutMillis: 30000,\n generalLimits: {\n attributeValueLengthLimit: getEnv().OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n attributeCountLimit: getEnv().OTEL_ATTRIBUTE_COUNT_LIMIT,\n },\n spanLimits: {\n attributeValueLengthLimit: getEnv().OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT,\n attributeCountLimit: getEnv().OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,\n linkCountLimit: getEnv().OTEL_SPAN_LINK_COUNT_LIMIT,\n eventCountLimit: getEnv().OTEL_SPAN_EVENT_COUNT_LIMIT,\n attributePerEventCountLimit: getEnv().OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,\n attributePerLinkCountLimit: getEnv().OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,\n },\n };\n}\n/**\n * Based on environment, builds a sampler, complies with specification.\n * @param environment optional, by default uses getEnv(), but allows passing a value to reuse parsed environment\n */\nexport function buildSamplerFromEnv(environment) {\n if (environment === void 0) { environment = getEnv(); }\n switch (environment.OTEL_TRACES_SAMPLER) {\n case TracesSamplerValues.AlwaysOn:\n return new AlwaysOnSampler();\n case TracesSamplerValues.AlwaysOff:\n return new AlwaysOffSampler();\n case TracesSamplerValues.ParentBasedAlwaysOn:\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n case TracesSamplerValues.ParentBasedAlwaysOff:\n return new ParentBasedSampler({\n root: new AlwaysOffSampler(),\n });\n case TracesSamplerValues.TraceIdRatio:\n return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(environment));\n case TracesSamplerValues.ParentBasedTraceIdRatio:\n return new ParentBasedSampler({\n root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv(environment)),\n });\n default:\n diag.error(\"OTEL_TRACES_SAMPLER value \\\"\" + environment.OTEL_TRACES_SAMPLER + \" invalid, defaulting to \" + FALLBACK_OTEL_TRACES_SAMPLER + \"\\\".\");\n return new AlwaysOnSampler();\n }\n}\nfunction getSamplerProbabilityFromEnv(environment) {\n if (environment.OTEL_TRACES_SAMPLER_ARG === undefined ||\n environment.OTEL_TRACES_SAMPLER_ARG === '') {\n diag.error(\"OTEL_TRACES_SAMPLER_ARG is blank, defaulting to \" + DEFAULT_RATIO + \".\");\n return DEFAULT_RATIO;\n }\n var probability = Number(environment.OTEL_TRACES_SAMPLER_ARG);\n if (isNaN(probability)) {\n diag.error(\"OTEL_TRACES_SAMPLER_ARG=\" + environment.OTEL_TRACES_SAMPLER_ARG + \" was given, but it is invalid, defaulting to \" + DEFAULT_RATIO + \".\");\n return DEFAULT_RATIO;\n }\n if (probability < 0 || probability > 1) {\n diag.error(\"OTEL_TRACES_SAMPLER_ARG=\" + environment.OTEL_TRACES_SAMPLER_ARG + \" was given, but it is out of range ([0..1]), defaulting to \" + DEFAULT_RATIO + \".\");\n return DEFAULT_RATIO;\n }\n return probability;\n}\n//# sourceMappingURL=config.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { buildSamplerFromEnv, loadDefaultConfig } from './config';\nimport { DEFAULT_ATTRIBUTE_COUNT_LIMIT, DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT, getEnvWithoutDefaults, } from '@opentelemetry/core';\n/**\n * Function to merge Default configuration (as specified in './config') with\n * user provided configurations.\n */\nexport function mergeConfig(userConfig) {\n var perInstanceDefaults = {\n sampler: buildSamplerFromEnv(),\n };\n var DEFAULT_CONFIG = loadDefaultConfig();\n var target = Object.assign({}, DEFAULT_CONFIG, perInstanceDefaults, userConfig);\n target.generalLimits = Object.assign({}, DEFAULT_CONFIG.generalLimits, userConfig.generalLimits || {});\n target.spanLimits = Object.assign({}, DEFAULT_CONFIG.spanLimits, userConfig.spanLimits || {});\n return target;\n}\n/**\n * When general limits are provided and model specific limits are not,\n * configures the model specific limits by using the values from the general ones.\n * @param userConfig User provided tracer configuration\n */\nexport function reconfigureLimits(userConfig) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var spanLimits = Object.assign({}, userConfig.spanLimits);\n var parsedEnvConfig = getEnvWithoutDefaults();\n /**\n * Reassign span attribute count limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeCountLimit =\n (_f = (_e = (_d = (_b = (_a = userConfig.spanLimits) === null || _a === void 0 ? void 0 : _a.attributeCountLimit) !== null && _b !== void 0 ? _b : (_c = userConfig.generalLimits) === null || _c === void 0 ? void 0 : _c.attributeCountLimit) !== null && _d !== void 0 ? _d : parsedEnvConfig.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT) !== null && _e !== void 0 ? _e : parsedEnvConfig.OTEL_ATTRIBUTE_COUNT_LIMIT) !== null && _f !== void 0 ? _f : DEFAULT_ATTRIBUTE_COUNT_LIMIT;\n /**\n * Reassign span attribute value length limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeValueLengthLimit =\n (_m = (_l = (_k = (_h = (_g = userConfig.spanLimits) === null || _g === void 0 ? void 0 : _g.attributeValueLengthLimit) !== null && _h !== void 0 ? _h : (_j = userConfig.generalLimits) === null || _j === void 0 ? void 0 : _j.attributeValueLengthLimit) !== null && _k !== void 0 ? _k : parsedEnvConfig.OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT) !== null && _l !== void 0 ? _l : parsedEnvConfig.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT) !== null && _m !== void 0 ? _m : DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT;\n return Object.assign({}, userConfig, { spanLimits: spanLimits });\n}\n//# sourceMappingURL=utility.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context, diag, TraceFlags } from '@opentelemetry/api';\nimport { BindOnceFuture, ExportResultCode, getEnv, globalErrorHandler, suppressTracing, unrefTimer, } from '@opentelemetry/core';\n/**\n * Implementation of the {@link SpanProcessor} that batches spans exported by\n * the SDK then pushes them to the exporter pipeline.\n */\nvar BatchSpanProcessorBase = /** @class */ (function () {\n function BatchSpanProcessorBase(_exporter, config) {\n this._exporter = _exporter;\n this._finishedSpans = [];\n this._droppedSpansCount = 0;\n var env = getEnv();\n this._maxExportBatchSize =\n typeof (config === null || config === void 0 ? void 0 : config.maxExportBatchSize) === 'number'\n ? config.maxExportBatchSize\n : env.OTEL_BSP_MAX_EXPORT_BATCH_SIZE;\n this._maxQueueSize =\n typeof (config === null || config === void 0 ? void 0 : config.maxQueueSize) === 'number'\n ? config.maxQueueSize\n : env.OTEL_BSP_MAX_QUEUE_SIZE;\n this._scheduledDelayMillis =\n typeof (config === null || config === void 0 ? void 0 : config.scheduledDelayMillis) === 'number'\n ? config.scheduledDelayMillis\n : env.OTEL_BSP_SCHEDULE_DELAY;\n this._exportTimeoutMillis =\n typeof (config === null || config === void 0 ? void 0 : config.exportTimeoutMillis) === 'number'\n ? config.exportTimeoutMillis\n : env.OTEL_BSP_EXPORT_TIMEOUT;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn('BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize');\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n BatchSpanProcessorBase.prototype.forceFlush = function () {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n };\n // does nothing.\n BatchSpanProcessorBase.prototype.onStart = function (_span, _parentContext) { };\n BatchSpanProcessorBase.prototype.onEnd = function (span) {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n this._addToBuffer(span);\n };\n BatchSpanProcessorBase.prototype.shutdown = function () {\n return this._shutdownOnce.call();\n };\n BatchSpanProcessorBase.prototype._shutdown = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () {\n return _this.onShutdown();\n })\n .then(function () {\n return _this._flushAll();\n })\n .then(function () {\n return _this._exporter.shutdown();\n });\n };\n /** Add a span in the buffer. */\n BatchSpanProcessorBase.prototype._addToBuffer = function (span) {\n if (this._finishedSpans.length >= this._maxQueueSize) {\n // limit reached, drop span\n if (this._droppedSpansCount === 0) {\n diag.debug('maxQueueSize reached, dropping spans');\n }\n this._droppedSpansCount++;\n return;\n }\n if (this._droppedSpansCount > 0) {\n // some spans were dropped, log once with count of spans dropped\n diag.warn(\"Dropped \" + this._droppedSpansCount + \" spans because maxQueueSize reached\");\n this._droppedSpansCount = 0;\n }\n this._finishedSpans.push(span);\n this._maybeStartTimer();\n };\n /**\n * Send all spans to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _flush should be used\n * */\n BatchSpanProcessorBase.prototype._flushAll = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var promises = [];\n // calculate number of batches\n var count = Math.ceil(_this._finishedSpans.length / _this._maxExportBatchSize);\n for (var i = 0, j = count; i < j; i++) {\n promises.push(_this._flushOneBatch());\n }\n Promise.all(promises)\n .then(function () {\n resolve();\n })\n .catch(reject);\n });\n };\n BatchSpanProcessorBase.prototype._flushOneBatch = function () {\n var _this = this;\n this._clearTimer();\n if (this._finishedSpans.length === 0) {\n return Promise.resolve();\n }\n return new Promise(function (resolve, reject) {\n var timer = setTimeout(function () {\n // don't wait anymore for export, this way the next batch can start\n reject(new Error('Timeout'));\n }, _this._exportTimeoutMillis);\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), function () {\n // Reset the finished spans buffer here because the next invocations of the _flush method\n // could pass the same finished spans to the exporter if the buffer is cleared\n // outside the execution of this callback.\n var spans = _this._finishedSpans.splice(0, _this._maxExportBatchSize);\n var doExport = function () {\n return _this._exporter.export(spans, function (result) {\n var _a;\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n }\n else {\n reject((_a = result.error) !== null && _a !== void 0 ? _a : new Error('BatchSpanProcessor: span export failed'));\n }\n });\n };\n var pendingResources = spans\n .map(function (span) { return span.resource; })\n .filter(function (resource) { return resource.asyncAttributesPending; });\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (pendingResources.length === 0) {\n doExport();\n }\n else {\n Promise.all(pendingResources.map(function (resource) { var _a; return (_a = resource.waitForAsyncAttributes) === null || _a === void 0 ? void 0 : _a.call(resource); })).then(doExport, function (err) {\n globalErrorHandler(err);\n reject(err);\n });\n }\n });\n });\n };\n BatchSpanProcessorBase.prototype._maybeStartTimer = function () {\n var _this = this;\n if (this._timer !== undefined)\n return;\n this._timer = setTimeout(function () {\n _this._flushOneBatch()\n .then(function () {\n if (_this._finishedSpans.length > 0) {\n _this._clearTimer();\n _this._maybeStartTimer();\n }\n })\n .catch(function (e) {\n globalErrorHandler(e);\n });\n }, this._scheduledDelayMillis);\n unrefTimer(this._timer);\n };\n BatchSpanProcessorBase.prototype._clearTimer = function () {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n };\n return BatchSpanProcessorBase;\n}());\nexport { BatchSpanProcessorBase };\n//# sourceMappingURL=BatchSpanProcessorBase.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BatchSpanProcessorBase } from '../../../export/BatchSpanProcessorBase';\nvar BatchSpanProcessor = /** @class */ (function (_super) {\n __extends(BatchSpanProcessor, _super);\n function BatchSpanProcessor(_exporter, config) {\n var _this = _super.call(this, _exporter, config) || this;\n _this.onInit(config);\n return _this;\n }\n BatchSpanProcessor.prototype.onInit = function (config) {\n var _this = this;\n if ((config === null || config === void 0 ? void 0 : config.disableAutoFlushOnDocumentHide) !== true &&\n typeof document !== 'undefined') {\n this._visibilityChangeListener = function () {\n if (document.visibilityState === 'hidden') {\n void _this.forceFlush();\n }\n };\n this._pageHideListener = function () {\n void _this.forceFlush();\n };\n document.addEventListener('visibilitychange', this._visibilityChangeListener);\n // use 'pagehide' event as a fallback for Safari; see https://bugs.webkit.org/show_bug.cgi?id=116769\n document.addEventListener('pagehide', this._pageHideListener);\n }\n };\n BatchSpanProcessor.prototype.onShutdown = function () {\n if (typeof document !== 'undefined') {\n if (this._visibilityChangeListener) {\n document.removeEventListener('visibilitychange', this._visibilityChangeListener);\n }\n if (this._pageHideListener) {\n document.removeEventListener('pagehide', this._pageHideListener);\n }\n }\n };\n return BatchSpanProcessor;\n}(BatchSpanProcessorBase));\nexport { BatchSpanProcessor };\n//# sourceMappingURL=BatchSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar SPAN_ID_BYTES = 8;\nvar TRACE_ID_BYTES = 16;\nvar RandomIdGenerator = /** @class */ (function () {\n function RandomIdGenerator() {\n /**\n * Returns a random 16-byte trace ID formatted/encoded as a 32 lowercase hex\n * characters corresponding to 128 bits.\n */\n this.generateTraceId = getIdGenerator(TRACE_ID_BYTES);\n /**\n * Returns a random 8-byte span ID formatted/encoded as a 16 lowercase hex\n * characters corresponding to 64 bits.\n */\n this.generateSpanId = getIdGenerator(SPAN_ID_BYTES);\n }\n return RandomIdGenerator;\n}());\nexport { RandomIdGenerator };\nvar SHARED_CHAR_CODES_ARRAY = Array(32);\nfunction getIdGenerator(bytes) {\n return function generateId() {\n for (var i = 0; i < bytes * 2; i++) {\n SHARED_CHAR_CODES_ARRAY[i] = Math.floor(Math.random() * 16) + 48;\n // valid hex characters in the range 48-57 and 97-102\n if (SHARED_CHAR_CODES_ARRAY[i] >= 58) {\n SHARED_CHAR_CODES_ARRAY[i] += 39;\n }\n }\n return String.fromCharCode.apply(null, SHARED_CHAR_CODES_ARRAY.slice(0, bytes * 2));\n };\n}\n//# sourceMappingURL=RandomIdGenerator.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as api from '@opentelemetry/api';\nimport { sanitizeAttributes, isTracingSuppressed, } from '@opentelemetry/core';\nimport { Span } from './Span';\nimport { mergeConfig } from './utility';\nimport { RandomIdGenerator } from './platform';\n/**\n * This class represents a basic tracer.\n */\nvar Tracer = /** @class */ (function () {\n /**\n * Constructs a new Tracer instance.\n */\n function Tracer(instrumentationLibrary, config, _tracerProvider) {\n this._tracerProvider = _tracerProvider;\n var localConfig = mergeConfig(config);\n this._sampler = localConfig.sampler;\n this._generalLimits = localConfig.generalLimits;\n this._spanLimits = localConfig.spanLimits;\n this._idGenerator = config.idGenerator || new RandomIdGenerator();\n this.resource = _tracerProvider.resource;\n this.instrumentationLibrary = instrumentationLibrary;\n }\n /**\n * Starts a new Span or returns the default NoopSpan based on the sampling\n * decision.\n */\n Tracer.prototype.startSpan = function (name, options, context) {\n var _a, _b, _c;\n if (options === void 0) { options = {}; }\n if (context === void 0) { context = api.context.active(); }\n // remove span from context in case a root span is requested via options\n if (options.root) {\n context = api.trace.deleteSpan(context);\n }\n var parentSpan = api.trace.getSpan(context);\n if (isTracingSuppressed(context)) {\n api.diag.debug('Instrumentation suppressed, returning Noop Span');\n var nonRecordingSpan = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT);\n return nonRecordingSpan;\n }\n var parentSpanContext = parentSpan === null || parentSpan === void 0 ? void 0 : parentSpan.spanContext();\n var spanId = this._idGenerator.generateSpanId();\n var traceId;\n var traceState;\n var parentSpanId;\n if (!parentSpanContext ||\n !api.trace.isSpanContextValid(parentSpanContext)) {\n // New root span.\n traceId = this._idGenerator.generateTraceId();\n }\n else {\n // New child span.\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n parentSpanId = parentSpanContext.spanId;\n }\n var spanKind = (_a = options.kind) !== null && _a !== void 0 ? _a : api.SpanKind.INTERNAL;\n var links = ((_b = options.links) !== null && _b !== void 0 ? _b : []).map(function (link) {\n return {\n context: link.context,\n attributes: sanitizeAttributes(link.attributes),\n };\n });\n var attributes = sanitizeAttributes(options.attributes);\n // make sampling decision\n var samplingResult = this._sampler.shouldSample(context, traceId, name, spanKind, attributes, links);\n traceState = (_c = samplingResult.traceState) !== null && _c !== void 0 ? _c : traceState;\n var traceFlags = samplingResult.decision === api.SamplingDecision.RECORD_AND_SAMPLED\n ? api.TraceFlags.SAMPLED\n : api.TraceFlags.NONE;\n var spanContext = { traceId: traceId, spanId: spanId, traceFlags: traceFlags, traceState: traceState };\n if (samplingResult.decision === api.SamplingDecision.NOT_RECORD) {\n api.diag.debug('Recording is off, propagating context in a non-recording span');\n var nonRecordingSpan = api.trace.wrapSpanContext(spanContext);\n return nonRecordingSpan;\n }\n var span = new Span(this, context, name, spanContext, spanKind, parentSpanId, links, options.startTime);\n // Set initial span attributes. The attributes object may have been mutated\n // by the sampler, so we sanitize the merged attributes before setting them.\n var initAttributes = sanitizeAttributes(Object.assign(attributes, samplingResult.attributes));\n span.setAttributes(initAttributes);\n return span;\n };\n Tracer.prototype.startActiveSpan = function (name, arg2, arg3, arg4) {\n var opts;\n var ctx;\n var fn;\n if (arguments.length < 2) {\n return;\n }\n else if (arguments.length === 2) {\n fn = arg2;\n }\n else if (arguments.length === 3) {\n opts = arg2;\n fn = arg3;\n }\n else {\n opts = arg2;\n ctx = arg3;\n fn = arg4;\n }\n var parentContext = ctx !== null && ctx !== void 0 ? ctx : api.context.active();\n var span = this.startSpan(name, opts, parentContext);\n var contextWithSpanSet = api.trace.setSpan(parentContext, span);\n return api.context.with(contextWithSpanSet, fn, undefined, span);\n };\n /** Returns the active {@link GeneralLimits}. */\n Tracer.prototype.getGeneralLimits = function () {\n return this._generalLimits;\n };\n /** Returns the active {@link SpanLimits}. */\n Tracer.prototype.getSpanLimits = function () {\n return this._spanLimits;\n };\n Tracer.prototype.getActiveSpanProcessor = function () {\n return this._tracerProvider.getActiveSpanProcessor();\n };\n return Tracer;\n}());\nexport { Tracer };\n//# sourceMappingURL=Tracer.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function defaultServiceName() {\n return 'unknown_service';\n}\n//# sourceMappingURL=default-service-name.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Resource } from '../Resource';\nvar NoopDetectorSync = /** @class */ (function () {\n function NoopDetectorSync() {\n }\n NoopDetectorSync.prototype.detect = function () {\n return new Resource({});\n };\n return NoopDetectorSync;\n}());\nexport { NoopDetectorSync };\nexport var noopDetectorSync = new NoopDetectorSync();\n//# sourceMappingURL=NoopDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetectorSync } from './NoopDetectorSync';\nvar NoopDetector = /** @class */ (function () {\n function NoopDetector() {\n }\n NoopDetector.prototype.detect = function () {\n return Promise.resolve(noopDetectorSync.detect());\n };\n return NoopDetector;\n}());\nexport { NoopDetector };\nexport var noopDetector = new NoopDetector();\n//# sourceMappingURL=NoopDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetector } from '../../detectors/NoopDetector';\nexport var hostDetector = noopDetector;\n//# sourceMappingURL=HostDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetector } from '../../detectors/NoopDetector';\nexport var osDetector = noopDetector;\n//# sourceMappingURL=OSDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetectorSync } from '../../detectors/NoopDetectorSync';\nexport var hostDetectorSync = noopDetectorSync;\n//# sourceMappingURL=HostDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetectorSync } from '../../detectors/NoopDetectorSync';\nexport var osDetectorSync = noopDetectorSync;\n//# sourceMappingURL=OSDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetector } from '../../detectors/NoopDetector';\nexport var processDetector = noopDetector;\n//# sourceMappingURL=ProcessDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { noopDetector } from '../../detectors/NoopDetector';\nexport var processDetectorSync = noopDetector;\n//# sourceMappingURL=ProcessDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { diag } from '@opentelemetry/api';\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\nimport { SDK_INFO } from '@opentelemetry/core';\nimport { defaultServiceName } from './platform';\n/**\n * A Resource describes the entity for which a signals (metrics or trace) are\n * collected.\n */\nvar Resource = /** @class */ (function () {\n function Resource(\n /**\n * A dictionary of attributes with string keys and values that provide\n * information about the entity as numbers, strings or booleans\n * TODO: Consider to add check/validation on attributes.\n */\n attributes, asyncAttributesPromise) {\n var _this = this;\n var _a;\n this._attributes = attributes;\n this.asyncAttributesPending = asyncAttributesPromise != null;\n this._syncAttributes = (_a = this._attributes) !== null && _a !== void 0 ? _a : {};\n this._asyncAttributesPromise = asyncAttributesPromise === null || asyncAttributesPromise === void 0 ? void 0 : asyncAttributesPromise.then(function (asyncAttributes) {\n _this._attributes = Object.assign({}, _this._attributes, asyncAttributes);\n _this.asyncAttributesPending = false;\n return asyncAttributes;\n }, function (err) {\n diag.debug(\"a resource's async attributes promise rejected: %s\", err);\n _this.asyncAttributesPending = false;\n return {};\n });\n }\n /**\n * Returns an empty Resource\n */\n Resource.empty = function () {\n return Resource.EMPTY;\n };\n /**\n * Returns a Resource that identifies the SDK in use.\n */\n Resource.default = function () {\n var _a;\n return new Resource((_a = {},\n _a[SemanticResourceAttributes.SERVICE_NAME] = defaultServiceName(),\n _a[SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE] = SDK_INFO[SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE],\n _a[SemanticResourceAttributes.TELEMETRY_SDK_NAME] = SDK_INFO[SemanticResourceAttributes.TELEMETRY_SDK_NAME],\n _a[SemanticResourceAttributes.TELEMETRY_SDK_VERSION] = SDK_INFO[SemanticResourceAttributes.TELEMETRY_SDK_VERSION],\n _a));\n };\n Object.defineProperty(Resource.prototype, \"attributes\", {\n get: function () {\n var _a;\n if (this.asyncAttributesPending) {\n diag.error('Accessing resource attributes before async attributes settled');\n }\n return (_a = this._attributes) !== null && _a !== void 0 ? _a : {};\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns a promise that will never be rejected. Resolves when all async attributes have finished being added to\n * this Resource's attributes. This is useful in exporters to block until resource detection\n * has finished.\n */\n Resource.prototype.waitForAsyncAttributes = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.asyncAttributesPending) return [3 /*break*/, 2];\n return [4 /*yield*/, this._asyncAttributesPromise];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns a new, merged {@link Resource} by merging the current Resource\n * with the other Resource. In case of a collision, other Resource takes\n * precedence.\n *\n * @param other the Resource that will be merged with this.\n * @returns the newly merged Resource.\n */\n Resource.prototype.merge = function (other) {\n var _this = this;\n var _a;\n if (!other)\n return this;\n // SpanAttributes from other resource overwrite attributes from this resource.\n var mergedSyncAttributes = __assign(__assign({}, this._syncAttributes), ((_a = other._syncAttributes) !== null && _a !== void 0 ? _a : other.attributes));\n if (!this._asyncAttributesPromise &&\n !other._asyncAttributesPromise) {\n return new Resource(mergedSyncAttributes);\n }\n var mergedAttributesPromise = Promise.all([\n this._asyncAttributesPromise,\n other._asyncAttributesPromise,\n ]).then(function (_a) {\n var _b;\n var _c = __read(_a, 2), thisAsyncAttributes = _c[0], otherAsyncAttributes = _c[1];\n return __assign(__assign(__assign(__assign({}, _this._syncAttributes), thisAsyncAttributes), ((_b = other._syncAttributes) !== null && _b !== void 0 ? _b : other.attributes)), otherAsyncAttributes);\n });\n return new Resource(mergedSyncAttributes, mergedAttributesPromise);\n };\n Resource.EMPTY = new Resource({});\n return Resource;\n}());\nexport { Resource };\n//# sourceMappingURL=Resource.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { browserDetectorSync, } from '..';\n/**\n * BrowserDetector will be used to detect the resources related to browser.\n */\nvar BrowserDetector = /** @class */ (function () {\n function BrowserDetector() {\n }\n BrowserDetector.prototype.detect = function (config) {\n return Promise.resolve(browserDetectorSync.detect(config));\n };\n return BrowserDetector;\n}());\nexport var browserDetector = new BrowserDetector();\n//# sourceMappingURL=BrowserDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { diag } from '@opentelemetry/api';\nimport { getEnv } from '@opentelemetry/core';\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\nimport { Resource } from '../Resource';\n/**\n * EnvDetectorSync can be used to detect the presence of and create a Resource\n * from the OTEL_RESOURCE_ATTRIBUTES environment variable.\n */\nvar EnvDetectorSync = /** @class */ (function () {\n function EnvDetectorSync() {\n // Type, attribute keys, and attribute values should not exceed 256 characters.\n this._MAX_LENGTH = 255;\n // OTEL_RESOURCE_ATTRIBUTES is a comma-separated list of attributes.\n this._COMMA_SEPARATOR = ',';\n // OTEL_RESOURCE_ATTRIBUTES contains key value pair separated by '='.\n this._LABEL_KEY_VALUE_SPLITTER = '=';\n this._ERROR_MESSAGE_INVALID_CHARS = 'should be a ASCII string with a length greater than 0 and not exceed ' +\n this._MAX_LENGTH +\n ' characters.';\n this._ERROR_MESSAGE_INVALID_VALUE = 'should be a ASCII string with a length not exceed ' +\n this._MAX_LENGTH +\n ' characters.';\n }\n /**\n * Returns a {@link Resource} populated with attributes from the\n * OTEL_RESOURCE_ATTRIBUTES environment variable. Note this is an async\n * function to conform to the Detector interface.\n *\n * @param config The resource detection config\n */\n EnvDetectorSync.prototype.detect = function (_config) {\n var attributes = {};\n var env = getEnv();\n var rawAttributes = env.OTEL_RESOURCE_ATTRIBUTES;\n var serviceName = env.OTEL_SERVICE_NAME;\n if (rawAttributes) {\n try {\n var parsedAttributes = this._parseResourceAttributes(rawAttributes);\n Object.assign(attributes, parsedAttributes);\n }\n catch (e) {\n diag.debug(\"EnvDetector failed: \" + e.message);\n }\n }\n if (serviceName) {\n attributes[SemanticResourceAttributes.SERVICE_NAME] = serviceName;\n }\n return new Resource(attributes);\n };\n /**\n * Creates an attribute map from the OTEL_RESOURCE_ATTRIBUTES environment\n * variable.\n *\n * OTEL_RESOURCE_ATTRIBUTES: A comma-separated list of attributes describing\n * the source in more detail, e.g. “key1=val1,key2=val2”. Domain names and\n * paths are accepted as attribute keys. Values may be quoted or unquoted in\n * general. If a value contains whitespaces, =, or \" characters, it must\n * always be quoted.\n *\n * @param rawEnvAttributes The resource attributes as a comma-seperated list\n * of key/value pairs.\n * @returns The sanitized resource attributes.\n */\n EnvDetectorSync.prototype._parseResourceAttributes = function (rawEnvAttributes) {\n var e_1, _a;\n if (!rawEnvAttributes)\n return {};\n var attributes = {};\n var rawAttributes = rawEnvAttributes.split(this._COMMA_SEPARATOR, -1);\n try {\n for (var rawAttributes_1 = __values(rawAttributes), rawAttributes_1_1 = rawAttributes_1.next(); !rawAttributes_1_1.done; rawAttributes_1_1 = rawAttributes_1.next()) {\n var rawAttribute = rawAttributes_1_1.value;\n var keyValuePair = rawAttribute.split(this._LABEL_KEY_VALUE_SPLITTER, -1);\n if (keyValuePair.length !== 2) {\n continue;\n }\n var _b = __read(keyValuePair, 2), key = _b[0], value = _b[1];\n // Leading and trailing whitespaces are trimmed.\n key = key.trim();\n value = value.trim().split(/^\"|\"$/).join('');\n if (!this._isValidAndNotEmpty(key)) {\n throw new Error(\"Attribute key \" + this._ERROR_MESSAGE_INVALID_CHARS);\n }\n if (!this._isValid(value)) {\n throw new Error(\"Attribute value \" + this._ERROR_MESSAGE_INVALID_VALUE);\n }\n attributes[key] = decodeURIComponent(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rawAttributes_1_1 && !rawAttributes_1_1.done && (_a = rawAttributes_1.return)) _a.call(rawAttributes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return attributes;\n };\n /**\n * Determines whether the given String is a valid printable ASCII string with\n * a length not exceed _MAX_LENGTH characters.\n *\n * @param str The String to be validated.\n * @returns Whether the String is valid.\n */\n EnvDetectorSync.prototype._isValid = function (name) {\n return name.length <= this._MAX_LENGTH && this._isBaggageOctetString(name);\n };\n // https://www.w3.org/TR/baggage/#definition\n EnvDetectorSync.prototype._isBaggageOctetString = function (str) {\n for (var i = 0; i < str.length; i++) {\n var ch = str.charCodeAt(i);\n if (ch < 0x21 || ch === 0x2c || ch === 0x3b || ch === 0x5c || ch > 0x7e) {\n return false;\n }\n }\n return true;\n };\n /**\n * Determines whether the given String is a valid printable ASCII string with\n * a length greater than 0 and not exceed _MAX_LENGTH characters.\n *\n * @param str The String to be validated.\n * @returns Whether the String is valid and not empty.\n */\n EnvDetectorSync.prototype._isValidAndNotEmpty = function (str) {\n return str.length > 0 && this._isValid(str);\n };\n return EnvDetectorSync;\n}());\nexport var envDetectorSync = new EnvDetectorSync();\n//# sourceMappingURL=EnvDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { envDetectorSync } from './EnvDetectorSync';\n/**\n * EnvDetector can be used to detect the presence of and create a Resource\n * from the OTEL_RESOURCE_ATTRIBUTES environment variable.\n */\nvar EnvDetector = /** @class */ (function () {\n function EnvDetector() {\n }\n /**\n * Returns a {@link Resource} populated with attributes from the\n * OTEL_RESOURCE_ATTRIBUTES environment variable. Note this is an async\n * function to conform to the Detector interface.\n *\n * @param config The resource detection config\n */\n EnvDetector.prototype.detect = function (config) {\n return Promise.resolve(envDetectorSync.detect(config));\n };\n return EnvDetector;\n}());\nexport var envDetector = new EnvDetector();\n//# sourceMappingURL=EnvDetector.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\nimport { Resource } from '..';\nimport { diag } from '@opentelemetry/api';\n/**\n * BrowserDetectorSync will be used to detect the resources related to browser.\n */\nvar BrowserDetectorSync = /** @class */ (function () {\n function BrowserDetectorSync() {\n }\n BrowserDetectorSync.prototype.detect = function (config) {\n var _a;\n var isBrowser = typeof navigator !== 'undefined';\n if (!isBrowser) {\n return Resource.empty();\n }\n var browserResource = (_a = {},\n _a[SemanticResourceAttributes.PROCESS_RUNTIME_NAME] = 'browser',\n _a[SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION] = 'Web Browser',\n _a[SemanticResourceAttributes.PROCESS_RUNTIME_VERSION] = navigator.userAgent,\n _a);\n return this._getResourceAttributes(browserResource, config);\n };\n /**\n * Validates process resource attribute map from process variables\n *\n * @param browserResource The un-sanitized resource attributes from process as key/value pairs.\n * @param config: Config\n * @returns The sanitized resource attributes.\n */\n BrowserDetectorSync.prototype._getResourceAttributes = function (browserResource, _config) {\n if (browserResource[SemanticResourceAttributes.PROCESS_RUNTIME_VERSION] === '') {\n diag.debug('BrowserDetector failed: Unable to find required browser resources. ');\n return Resource.empty();\n }\n else {\n return new Resource(__assign({}, browserResource));\n }\n };\n return BrowserDetectorSync;\n}());\nexport var browserDetectorSync = new BrowserDetectorSync();\n//# sourceMappingURL=BrowserDetectorSync.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var isPromiseLike = function (val) {\n return (val !== null && typeof val === 'object' && typeof val.then === 'function');\n};\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Resource } from './Resource';\nimport { diag } from '@opentelemetry/api';\nimport { isPromiseLike } from './utils';\n/**\n * Runs all resource detectors and returns the results merged into a single Resource. Promise\n * does not resolve until all the underlying detectors have resolved, unlike\n * detectResourcesSync.\n *\n * @deprecated use detectResourceSync() instead.\n * @param config Configuration for resource detection\n */\nexport var detectResources = function (config) {\n if (config === void 0) { config = {}; }\n return __awaiter(void 0, void 0, void 0, function () {\n var resources;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all((config.detectors || []).map(function (d) { return __awaiter(void 0, void 0, void 0, function () {\n var resource, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, d.detect(config)];\n case 1:\n resource = _a.sent();\n diag.debug(d.constructor.name + \" found resource.\", resource);\n return [2 /*return*/, resource];\n case 2:\n e_1 = _a.sent();\n diag.debug(d.constructor.name + \" failed: \" + e_1.message);\n return [2 /*return*/, Resource.empty()];\n case 3: return [2 /*return*/];\n }\n });\n }); }))];\n case 1:\n resources = _a.sent();\n // Future check if verbose logging is enabled issue #1903\n logResources(resources);\n return [2 /*return*/, resources.reduce(function (acc, resource) { return acc.merge(resource); }, Resource.empty())];\n }\n });\n });\n};\n/**\n * Runs all resource detectors synchronously, merging their results. In case of attribute collision later resources will take precedence.\n *\n * @param config Configuration for resource detection\n */\nexport var detectResourcesSync = function (config) {\n var _a;\n if (config === void 0) { config = {}; }\n var resources = ((_a = config.detectors) !== null && _a !== void 0 ? _a : []).map(function (d) {\n try {\n var resourceOrPromise_1 = d.detect(config);\n var resource_1;\n if (isPromiseLike(resourceOrPromise_1)) {\n var createPromise = function () { return __awaiter(void 0, void 0, void 0, function () {\n var resolvedResource;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, resourceOrPromise_1];\n case 1:\n resolvedResource = _a.sent();\n return [2 /*return*/, resolvedResource.attributes];\n }\n });\n }); };\n resource_1 = new Resource({}, createPromise());\n }\n else {\n resource_1 = resourceOrPromise_1;\n }\n if (resource_1.waitForAsyncAttributes) {\n void resource_1\n .waitForAsyncAttributes()\n .then(function () {\n return diag.debug(d.constructor.name + \" found resource.\", resource_1);\n });\n }\n else {\n diag.debug(d.constructor.name + \" found resource.\", resource_1);\n }\n return resource_1;\n }\n catch (e) {\n diag.error(d.constructor.name + \" failed: \" + e.message);\n return Resource.empty();\n }\n });\n var mergedResources = resources.reduce(function (acc, resource) { return acc.merge(resource); }, Resource.empty());\n if (mergedResources.waitForAsyncAttributes) {\n void mergedResources.waitForAsyncAttributes().then(function () {\n // Future check if verbose logging is enabled issue #1903\n logResources(resources);\n });\n }\n return mergedResources;\n};\n/**\n * Writes debug information about the detected resources to the logger defined in the resource detection config, if one is provided.\n *\n * @param resources The array of {@link Resource} that should be logged. Empty entries will be ignored.\n */\nvar logResources = function (resources) {\n resources.forEach(function (resource) {\n // Print only populated resources\n if (Object.keys(resource.attributes).length > 0) {\n var resourceDebugString = JSON.stringify(resource.attributes, null, 4);\n diag.verbose(resourceDebugString);\n }\n });\n};\n//# sourceMappingURL=detect-resources.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { globalErrorHandler } from '@opentelemetry/core';\n/**\n * Implementation of the {@link SpanProcessor} that simply forwards all\n * received events to a list of {@link SpanProcessor}s.\n */\nvar MultiSpanProcessor = /** @class */ (function () {\n function MultiSpanProcessor(_spanProcessors) {\n this._spanProcessors = _spanProcessors;\n }\n MultiSpanProcessor.prototype.forceFlush = function () {\n var e_1, _a;\n var promises = [];\n try {\n for (var _b = __values(this._spanProcessors), _c = _b.next(); !_c.done; _c = _b.next()) {\n var spanProcessor = _c.value;\n promises.push(spanProcessor.forceFlush());\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return new Promise(function (resolve) {\n Promise.all(promises)\n .then(function () {\n resolve();\n })\n .catch(function (error) {\n globalErrorHandler(error || new Error('MultiSpanProcessor: forceFlush failed'));\n resolve();\n });\n });\n };\n MultiSpanProcessor.prototype.onStart = function (span, context) {\n var e_2, _a;\n try {\n for (var _b = __values(this._spanProcessors), _c = _b.next(); !_c.done; _c = _b.next()) {\n var spanProcessor = _c.value;\n spanProcessor.onStart(span, context);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n MultiSpanProcessor.prototype.onEnd = function (span) {\n var e_3, _a;\n try {\n for (var _b = __values(this._spanProcessors), _c = _b.next(); !_c.done; _c = _b.next()) {\n var spanProcessor = _c.value;\n spanProcessor.onEnd(span);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n };\n MultiSpanProcessor.prototype.shutdown = function () {\n var e_4, _a;\n var promises = [];\n try {\n for (var _b = __values(this._spanProcessors), _c = _b.next(); !_c.done; _c = _b.next()) {\n var spanProcessor = _c.value;\n promises.push(spanProcessor.shutdown());\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return new Promise(function (resolve, reject) {\n Promise.all(promises).then(function () {\n resolve();\n }, reject);\n });\n };\n return MultiSpanProcessor;\n}());\nexport { MultiSpanProcessor };\n//# sourceMappingURL=MultiSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** No-op implementation of SpanProcessor */\nvar NoopSpanProcessor = /** @class */ (function () {\n function NoopSpanProcessor() {\n }\n NoopSpanProcessor.prototype.onStart = function (_span, _context) { };\n NoopSpanProcessor.prototype.onEnd = function (_span) { };\n NoopSpanProcessor.prototype.shutdown = function () {\n return Promise.resolve();\n };\n NoopSpanProcessor.prototype.forceFlush = function () {\n return Promise.resolve();\n };\n return NoopSpanProcessor;\n}());\nexport { NoopSpanProcessor };\n//# sourceMappingURL=NoopSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context, diag, propagation, trace, } from '@opentelemetry/api';\nimport { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator, getEnv, merge, } from '@opentelemetry/core';\nimport { Resource } from '@opentelemetry/resources';\nimport { Tracer } from '.';\nimport { loadDefaultConfig } from './config';\nimport { MultiSpanProcessor } from './MultiSpanProcessor';\nimport { NoopSpanProcessor } from './export/NoopSpanProcessor';\nimport { BatchSpanProcessor } from './platform';\nimport { reconfigureLimits } from './utility';\nexport var ForceFlushState;\n(function (ForceFlushState) {\n ForceFlushState[ForceFlushState[\"resolved\"] = 0] = \"resolved\";\n ForceFlushState[ForceFlushState[\"timeout\"] = 1] = \"timeout\";\n ForceFlushState[ForceFlushState[\"error\"] = 2] = \"error\";\n ForceFlushState[ForceFlushState[\"unresolved\"] = 3] = \"unresolved\";\n})(ForceFlushState || (ForceFlushState = {}));\n/**\n * This class represents a basic tracer provider which platform libraries can extend\n */\nvar BasicTracerProvider = /** @class */ (function () {\n function BasicTracerProvider(config) {\n if (config === void 0) { config = {}; }\n var _a;\n this._registeredSpanProcessors = [];\n this._tracers = new Map();\n var mergedConfig = merge({}, loadDefaultConfig(), reconfigureLimits(config));\n this.resource = (_a = mergedConfig.resource) !== null && _a !== void 0 ? _a : Resource.empty();\n this.resource = Resource.default().merge(this.resource);\n this._config = Object.assign({}, mergedConfig, {\n resource: this.resource,\n });\n var defaultExporter = this._buildExporterFromEnv();\n if (defaultExporter !== undefined) {\n var batchProcessor = new BatchSpanProcessor(defaultExporter);\n this.activeSpanProcessor = batchProcessor;\n }\n else {\n this.activeSpanProcessor = new NoopSpanProcessor();\n }\n }\n BasicTracerProvider.prototype.getTracer = function (name, version, options) {\n var key = name + \"@\" + (version || '') + \":\" + ((options === null || options === void 0 ? void 0 : options.schemaUrl) || '');\n if (!this._tracers.has(key)) {\n this._tracers.set(key, new Tracer({ name: name, version: version, schemaUrl: options === null || options === void 0 ? void 0 : options.schemaUrl }, this._config, this));\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._tracers.get(key);\n };\n /**\n * Adds a new {@link SpanProcessor} to this tracer.\n * @param spanProcessor the new SpanProcessor to be added.\n */\n BasicTracerProvider.prototype.addSpanProcessor = function (spanProcessor) {\n if (this._registeredSpanProcessors.length === 0) {\n // since we might have enabled by default a batchProcessor, we disable it\n // before adding the new one\n this.activeSpanProcessor\n .shutdown()\n .catch(function (err) {\n return diag.error('Error while trying to shutdown current span processor', err);\n });\n }\n this._registeredSpanProcessors.push(spanProcessor);\n this.activeSpanProcessor = new MultiSpanProcessor(this._registeredSpanProcessors);\n };\n BasicTracerProvider.prototype.getActiveSpanProcessor = function () {\n return this.activeSpanProcessor;\n };\n /**\n * Register this TracerProvider for use with the OpenTelemetry API.\n * Undefined values may be replaced with defaults, and\n * null values will be skipped.\n *\n * @param config Configuration object for SDK registration\n */\n BasicTracerProvider.prototype.register = function (config) {\n if (config === void 0) { config = {}; }\n trace.setGlobalTracerProvider(this);\n if (config.propagator === undefined) {\n config.propagator = this._buildPropagatorFromEnv();\n }\n if (config.contextManager) {\n context.setGlobalContextManager(config.contextManager);\n }\n if (config.propagator) {\n propagation.setGlobalPropagator(config.propagator);\n }\n };\n BasicTracerProvider.prototype.forceFlush = function () {\n var timeout = this._config.forceFlushTimeoutMillis;\n var promises = this._registeredSpanProcessors.map(function (spanProcessor) {\n return new Promise(function (resolve) {\n var state;\n var timeoutInterval = setTimeout(function () {\n resolve(new Error(\"Span processor did not completed within timeout period of \" + timeout + \" ms\"));\n state = ForceFlushState.timeout;\n }, timeout);\n spanProcessor\n .forceFlush()\n .then(function () {\n clearTimeout(timeoutInterval);\n if (state !== ForceFlushState.timeout) {\n state = ForceFlushState.resolved;\n resolve(state);\n }\n })\n .catch(function (error) {\n clearTimeout(timeoutInterval);\n state = ForceFlushState.error;\n resolve(error);\n });\n });\n });\n return new Promise(function (resolve, reject) {\n Promise.all(promises)\n .then(function (results) {\n var errors = results.filter(function (result) { return result !== ForceFlushState.resolved; });\n if (errors.length > 0) {\n reject(errors);\n }\n else {\n resolve();\n }\n })\n .catch(function (error) { return reject([error]); });\n });\n };\n BasicTracerProvider.prototype.shutdown = function () {\n return this.activeSpanProcessor.shutdown();\n };\n /**\n * TS cannot yet infer the type of this.constructor:\n * https://github.com/Microsoft/TypeScript/issues/3841#issuecomment-337560146\n * There is no need to override either of the getters in your child class.\n * The type of the registered component maps should be the same across all\n * classes in the inheritance tree.\n */\n BasicTracerProvider.prototype._getPropagator = function (name) {\n var _a;\n return (_a = this.constructor._registeredPropagators.get(name)) === null || _a === void 0 ? void 0 : _a();\n };\n BasicTracerProvider.prototype._getSpanExporter = function (name) {\n var _a;\n return (_a = this.constructor._registeredExporters.get(name)) === null || _a === void 0 ? void 0 : _a();\n };\n BasicTracerProvider.prototype._buildPropagatorFromEnv = function () {\n var _this = this;\n // per spec, propagators from env must be deduplicated\n var uniquePropagatorNames = Array.from(new Set(getEnv().OTEL_PROPAGATORS));\n var propagators = uniquePropagatorNames.map(function (name) {\n var propagator = _this._getPropagator(name);\n if (!propagator) {\n diag.warn(\"Propagator \\\"\" + name + \"\\\" requested through environment variable is unavailable.\");\n }\n return propagator;\n });\n var validPropagators = propagators.reduce(function (list, item) {\n if (item) {\n list.push(item);\n }\n return list;\n }, []);\n if (validPropagators.length === 0) {\n return;\n }\n else if (uniquePropagatorNames.length === 1) {\n return validPropagators[0];\n }\n else {\n return new CompositePropagator({\n propagators: validPropagators,\n });\n }\n };\n BasicTracerProvider.prototype._buildExporterFromEnv = function () {\n var exporterName = getEnv().OTEL_TRACES_EXPORTER;\n if (exporterName === 'none' || exporterName === '')\n return;\n var exporter = this._getSpanExporter(exporterName);\n if (!exporter) {\n diag.error(\"Exporter \\\"\" + exporterName + \"\\\" requested through environment variable is unavailable.\");\n }\n return exporter;\n };\n BasicTracerProvider._registeredPropagators = new Map([\n ['tracecontext', function () { return new W3CTraceContextPropagator(); }],\n ['baggage', function () { return new W3CBaggagePropagator(); }],\n ]);\n BasicTracerProvider._registeredExporters = new Map();\n return BasicTracerProvider;\n}());\nexport { BasicTracerProvider };\n//# sourceMappingURL=BasicTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { ExportResultCode, hrTimeToMicroseconds, } from '@opentelemetry/core';\n/**\n * This is implementation of {@link SpanExporter} that prints spans to the\n * console. This class can be used for diagnostic purposes.\n */\n/* eslint-disable no-console */\nvar ConsoleSpanExporter = /** @class */ (function () {\n function ConsoleSpanExporter() {\n }\n /**\n * Export spans.\n * @param spans\n * @param resultCallback\n */\n ConsoleSpanExporter.prototype.export = function (spans, resultCallback) {\n return this._sendSpans(spans, resultCallback);\n };\n /**\n * Shutdown the exporter.\n */\n ConsoleSpanExporter.prototype.shutdown = function () {\n this._sendSpans([]);\n return Promise.resolve();\n };\n /**\n * converts span info into more readable format\n * @param span\n */\n ConsoleSpanExporter.prototype._exportInfo = function (span) {\n var _a;\n return {\n traceId: span.spanContext().traceId,\n parentId: span.parentSpanId,\n traceState: (_a = span.spanContext().traceState) === null || _a === void 0 ? void 0 : _a.serialize(),\n name: span.name,\n id: span.spanContext().spanId,\n kind: span.kind,\n timestamp: hrTimeToMicroseconds(span.startTime),\n duration: hrTimeToMicroseconds(span.duration),\n attributes: span.attributes,\n status: span.status,\n events: span.events,\n links: span.links,\n };\n };\n /**\n * Showing spans in console\n * @param spans\n * @param done\n */\n ConsoleSpanExporter.prototype._sendSpans = function (spans, done) {\n var e_1, _a;\n try {\n for (var spans_1 = __values(spans), spans_1_1 = spans_1.next(); !spans_1_1.done; spans_1_1 = spans_1.next()) {\n var span = spans_1_1.value;\n console.dir(this._exportInfo(span), { depth: 3 });\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (spans_1_1 && !spans_1_1.done && (_a = spans_1.return)) _a.call(spans_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (done) {\n return done({ code: ExportResultCode.SUCCESS });\n }\n };\n return ConsoleSpanExporter;\n}());\nexport { ConsoleSpanExporter };\n//# sourceMappingURL=ConsoleSpanExporter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ExportResultCode } from '@opentelemetry/core';\n/**\n * This class can be used for testing purposes. It stores the exported spans\n * in a list in memory that can be retrieved using the `getFinishedSpans()`\n * method.\n */\nvar InMemorySpanExporter = /** @class */ (function () {\n function InMemorySpanExporter() {\n this._finishedSpans = [];\n /**\n * Indicates if the exporter has been \"shutdown.\"\n * When false, exported spans will not be stored in-memory.\n */\n this._stopped = false;\n }\n InMemorySpanExporter.prototype.export = function (spans, resultCallback) {\n var _a;\n if (this._stopped)\n return resultCallback({\n code: ExportResultCode.FAILED,\n error: new Error('Exporter has been stopped'),\n });\n (_a = this._finishedSpans).push.apply(_a, __spreadArray([], __read(spans), false));\n setTimeout(function () { return resultCallback({ code: ExportResultCode.SUCCESS }); }, 0);\n };\n InMemorySpanExporter.prototype.shutdown = function () {\n this._stopped = true;\n this._finishedSpans = [];\n return Promise.resolve();\n };\n InMemorySpanExporter.prototype.reset = function () {\n this._finishedSpans = [];\n };\n InMemorySpanExporter.prototype.getFinishedSpans = function () {\n return this._finishedSpans;\n };\n return InMemorySpanExporter;\n}());\nexport { InMemorySpanExporter };\n//# sourceMappingURL=InMemorySpanExporter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { TraceFlags } from '@opentelemetry/api';\nimport { internal, ExportResultCode, globalErrorHandler, BindOnceFuture, } from '@opentelemetry/core';\n/**\n * An implementation of the {@link SpanProcessor} that converts the {@link Span}\n * to {@link ReadableSpan} and passes it to the configured exporter.\n *\n * Only spans that are sampled are converted.\n */\nvar SimpleSpanProcessor = /** @class */ (function () {\n function SimpleSpanProcessor(_exporter) {\n this._exporter = _exporter;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._unresolvedExports = new Set();\n }\n SimpleSpanProcessor.prototype.forceFlush = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // await unresolved resources before resolving\n return [4 /*yield*/, Promise.all(Array.from(this._unresolvedExports))];\n case 1:\n // await unresolved resources before resolving\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n SimpleSpanProcessor.prototype.onStart = function (_span, _parentContext) { };\n SimpleSpanProcessor.prototype.onEnd = function (span) {\n var _this = this;\n var _a, _b;\n if (this._shutdownOnce.isCalled) {\n return;\n }\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n var doExport = function () {\n return internal\n ._export(_this._exporter, [span])\n .then(function (result) {\n var _a;\n if (result.code !== ExportResultCode.SUCCESS) {\n globalErrorHandler((_a = result.error) !== null && _a !== void 0 ? _a : new Error(\"SimpleSpanProcessor: span export failed (status \" + result + \")\"));\n }\n })\n .catch(function (error) {\n globalErrorHandler(error);\n });\n };\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (span.resource.asyncAttributesPending) {\n var exportPromise_1 = (_b = (_a = span.resource).waitForAsyncAttributes) === null || _b === void 0 ? void 0 : _b.call(_a).then(function () {\n if (exportPromise_1 != null) {\n _this._unresolvedExports.delete(exportPromise_1);\n }\n return doExport();\n }, function (err) { return globalErrorHandler(err); });\n // store the unresolved exports\n if (exportPromise_1 != null) {\n this._unresolvedExports.add(exportPromise_1);\n }\n }\n else {\n void doExport();\n }\n };\n SimpleSpanProcessor.prototype.shutdown = function () {\n return this._shutdownOnce.call();\n };\n SimpleSpanProcessor.prototype._shutdown = function () {\n return this._exporter.shutdown();\n };\n return SimpleSpanProcessor;\n}());\nexport { SimpleSpanProcessor };\n//# sourceMappingURL=SimpleSpanProcessor.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\n/**\n * Stack Context Manager for managing the state in web\n * it doesn't fully support the async calls though\n */\nvar StackContextManager = /** @class */ (function () {\n function StackContextManager() {\n /**\n * whether the context manager is enabled or not\n */\n this._enabled = false;\n /**\n * Keeps the reference to current context\n */\n this._currentContext = ROOT_CONTEXT;\n }\n /**\n *\n * @param context\n * @param target Function to be executed within the context\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n StackContextManager.prototype._bindFunction = function (context, target) {\n if (context === void 0) { context = ROOT_CONTEXT; }\n var manager = this;\n var contextWrapper = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.with(context, function () { return target.apply(_this, args); });\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n return contextWrapper;\n };\n /**\n * Returns the active context\n */\n StackContextManager.prototype.active = function () {\n return this._currentContext;\n };\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n StackContextManager.prototype.bind = function (context, target) {\n // if no specific context to propagate is given, we use the current one\n if (context === undefined) {\n context = this.active();\n }\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n };\n /**\n * Disable the context manager (clears the current context)\n */\n StackContextManager.prototype.disable = function () {\n this._currentContext = ROOT_CONTEXT;\n this._enabled = false;\n return this;\n };\n /**\n * Enables the context manager and creates a default(root) context\n */\n StackContextManager.prototype.enable = function () {\n if (this._enabled) {\n return this;\n }\n this._enabled = true;\n this._currentContext = ROOT_CONTEXT;\n return this;\n };\n /**\n * Calls the callback function [fn] with the provided [context]. If [context] is undefined then it will use the window.\n * The context will be set as active\n * @param context\n * @param fn Callback function\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n StackContextManager.prototype.with = function (context, fn, thisArg) {\n var args = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n args[_i - 3] = arguments[_i];\n }\n var previousContext = this._currentContext;\n this._currentContext = context || ROOT_CONTEXT;\n try {\n return fn.call.apply(fn, __spreadArray([thisArg], __read(args), false));\n }\n finally {\n this._currentContext = previousContext;\n }\n };\n return StackContextManager;\n}());\nexport { StackContextManager };\n//# sourceMappingURL=StackContextManager.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BasicTracerProvider, } from '@opentelemetry/sdk-trace-base';\nimport { StackContextManager } from './StackContextManager';\n/**\n * This class represents a web tracer with {@link StackContextManager}\n */\nvar WebTracerProvider = /** @class */ (function (_super) {\n __extends(WebTracerProvider, _super);\n /**\n * Constructs a new Tracer instance.\n * @param config Web Tracer config\n */\n function WebTracerProvider(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, config) || this;\n if (config.contextManager) {\n throw ('contextManager should be defined in register method not in' +\n ' constructor');\n }\n if (config.propagator) {\n throw 'propagator should be defined in register method not in constructor';\n }\n return _this;\n }\n /**\n * Register this TracerProvider for use with the OpenTelemetry API.\n * Undefined values may be replaced with defaults, and\n * null values will be skipped.\n *\n * @param config Configuration object for SDK registration\n */\n WebTracerProvider.prototype.register = function (config) {\n if (config === void 0) { config = {}; }\n if (config.contextManager === undefined) {\n config.contextManager = new StackContextManager();\n }\n if (config.contextManager) {\n config.contextManager.enable();\n }\n _super.prototype.register.call(this, config);\n };\n return WebTracerProvider;\n}(BasicTracerProvider));\nexport { WebTracerProvider };\n//# sourceMappingURL=WebTracerProvider.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var PerformanceTimingNames;\n(function (PerformanceTimingNames) {\n PerformanceTimingNames[\"CONNECT_END\"] = \"connectEnd\";\n PerformanceTimingNames[\"CONNECT_START\"] = \"connectStart\";\n PerformanceTimingNames[\"DECODED_BODY_SIZE\"] = \"decodedBodySize\";\n PerformanceTimingNames[\"DOM_COMPLETE\"] = \"domComplete\";\n PerformanceTimingNames[\"DOM_CONTENT_LOADED_EVENT_END\"] = \"domContentLoadedEventEnd\";\n PerformanceTimingNames[\"DOM_CONTENT_LOADED_EVENT_START\"] = \"domContentLoadedEventStart\";\n PerformanceTimingNames[\"DOM_INTERACTIVE\"] = \"domInteractive\";\n PerformanceTimingNames[\"DOMAIN_LOOKUP_END\"] = \"domainLookupEnd\";\n PerformanceTimingNames[\"DOMAIN_LOOKUP_START\"] = \"domainLookupStart\";\n PerformanceTimingNames[\"ENCODED_BODY_SIZE\"] = \"encodedBodySize\";\n PerformanceTimingNames[\"FETCH_START\"] = \"fetchStart\";\n PerformanceTimingNames[\"LOAD_EVENT_END\"] = \"loadEventEnd\";\n PerformanceTimingNames[\"LOAD_EVENT_START\"] = \"loadEventStart\";\n PerformanceTimingNames[\"NAVIGATION_START\"] = \"navigationStart\";\n PerformanceTimingNames[\"REDIRECT_END\"] = \"redirectEnd\";\n PerformanceTimingNames[\"REDIRECT_START\"] = \"redirectStart\";\n PerformanceTimingNames[\"REQUEST_START\"] = \"requestStart\";\n PerformanceTimingNames[\"RESPONSE_END\"] = \"responseEnd\";\n PerformanceTimingNames[\"RESPONSE_START\"] = \"responseStart\";\n PerformanceTimingNames[\"SECURE_CONNECTION_START\"] = \"secureConnectionStart\";\n PerformanceTimingNames[\"UNLOAD_EVENT_END\"] = \"unloadEventEnd\";\n PerformanceTimingNames[\"UNLOAD_EVENT_START\"] = \"unloadEventStart\";\n})(PerformanceTimingNames || (PerformanceTimingNames = {}));\n//# sourceMappingURL=PerformanceTimingNames.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { PerformanceTimingNames as PTN } from './enums/PerformanceTimingNames';\nimport { hrTimeToNanoseconds, timeInputToHrTime, urlMatches, } from '@opentelemetry/core';\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\n// Used to normalize relative URLs\nvar urlNormalizingAnchor;\nfunction getUrlNormalizingAnchor() {\n if (!urlNormalizingAnchor) {\n urlNormalizingAnchor = document.createElement('a');\n }\n return urlNormalizingAnchor;\n}\n/**\n * Helper function to be able to use enum as typed key in type and in interface when using forEach\n * @param obj\n * @param key\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hasKey(obj, key) {\n return key in obj;\n}\n/**\n * Helper function for starting an event on span based on {@link PerformanceEntries}\n * @param span\n * @param performanceName name of performance entry for time start\n * @param entries\n */\nexport function addSpanNetworkEvent(span, performanceName, entries) {\n if (hasKey(entries, performanceName) &&\n typeof entries[performanceName] === 'number') {\n span.addEvent(performanceName, entries[performanceName]);\n return span;\n }\n return undefined;\n}\n/**\n * Helper function for adding network events\n * @param span\n * @param resource\n */\nexport function addSpanNetworkEvents(span, resource) {\n addSpanNetworkEvent(span, PTN.FETCH_START, resource);\n addSpanNetworkEvent(span, PTN.DOMAIN_LOOKUP_START, resource);\n addSpanNetworkEvent(span, PTN.DOMAIN_LOOKUP_END, resource);\n addSpanNetworkEvent(span, PTN.CONNECT_START, resource);\n addSpanNetworkEvent(span, PTN.SECURE_CONNECTION_START, resource);\n addSpanNetworkEvent(span, PTN.CONNECT_END, resource);\n addSpanNetworkEvent(span, PTN.REQUEST_START, resource);\n addSpanNetworkEvent(span, PTN.RESPONSE_START, resource);\n addSpanNetworkEvent(span, PTN.RESPONSE_END, resource);\n var encodedLength = resource[PTN.ENCODED_BODY_SIZE];\n if (encodedLength !== undefined) {\n span.setAttribute(SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH, encodedLength);\n }\n var decodedLength = resource[PTN.DECODED_BODY_SIZE];\n // Spec: Not set if transport encoding not used (in which case encoded and decoded sizes match)\n if (decodedLength !== undefined && encodedLength !== decodedLength) {\n span.setAttribute(SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED, decodedLength);\n }\n}\n/**\n * sort resources by startTime\n * @param filteredResources\n */\nexport function sortResources(filteredResources) {\n return filteredResources.slice().sort(function (a, b) {\n var valueA = a[PTN.FETCH_START];\n var valueB = b[PTN.FETCH_START];\n if (valueA > valueB) {\n return 1;\n }\n else if (valueA < valueB) {\n return -1;\n }\n return 0;\n });\n}\n/**\n * Get closest performance resource ignoring the resources that have been\n * already used.\n * @param spanUrl\n * @param startTimeHR\n * @param endTimeHR\n * @param resources\n * @param ignoredResources\n * @param initiatorType\n */\nexport function getResource(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources, initiatorType) {\n if (ignoredResources === void 0) { ignoredResources = new WeakSet(); }\n // de-relativize the URL before usage (does no harm to absolute URLs)\n var parsedSpanUrl = parseUrl(spanUrl);\n spanUrl = parsedSpanUrl.toString();\n var filteredResources = filterResourcesForSpan(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources, initiatorType);\n if (filteredResources.length === 0) {\n return {\n mainRequest: undefined,\n };\n }\n if (filteredResources.length === 1) {\n return {\n mainRequest: filteredResources[0],\n };\n }\n var sorted = sortResources(filteredResources);\n if (parsedSpanUrl.origin !== location.origin && sorted.length > 1) {\n var corsPreFlightRequest = sorted[0];\n var mainRequest = findMainRequest(sorted, corsPreFlightRequest[PTN.RESPONSE_END], endTimeHR);\n var responseEnd = corsPreFlightRequest[PTN.RESPONSE_END];\n var fetchStart = mainRequest[PTN.FETCH_START];\n // no corsPreFlightRequest\n if (fetchStart < responseEnd) {\n mainRequest = corsPreFlightRequest;\n corsPreFlightRequest = undefined;\n }\n return {\n corsPreFlightRequest: corsPreFlightRequest,\n mainRequest: mainRequest,\n };\n }\n else {\n return {\n mainRequest: filteredResources[0],\n };\n }\n}\n/**\n * Will find the main request skipping the cors pre flight requests\n * @param resources\n * @param corsPreFlightRequestEndTime\n * @param spanEndTimeHR\n */\nfunction findMainRequest(resources, corsPreFlightRequestEndTime, spanEndTimeHR) {\n var spanEndTime = hrTimeToNanoseconds(spanEndTimeHR);\n var minTime = hrTimeToNanoseconds(timeInputToHrTime(corsPreFlightRequestEndTime));\n var mainRequest = resources[1];\n var bestGap;\n var length = resources.length;\n for (var i = 1; i < length; i++) {\n var resource = resources[i];\n var resourceStartTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.FETCH_START]));\n var resourceEndTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.RESPONSE_END]));\n var currentGap = spanEndTime - resourceEndTime;\n if (resourceStartTime >= minTime && (!bestGap || currentGap < bestGap)) {\n bestGap = currentGap;\n mainRequest = resource;\n }\n }\n return mainRequest;\n}\n/**\n * Filter all resources that has started and finished according to span start time and end time.\n * It will return the closest resource to a start time\n * @param spanUrl\n * @param startTimeHR\n * @param endTimeHR\n * @param resources\n * @param ignoredResources\n */\nfunction filterResourcesForSpan(spanUrl, startTimeHR, endTimeHR, resources, ignoredResources, initiatorType) {\n var startTime = hrTimeToNanoseconds(startTimeHR);\n var endTime = hrTimeToNanoseconds(endTimeHR);\n var filteredResources = resources.filter(function (resource) {\n var resourceStartTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.FETCH_START]));\n var resourceEndTime = hrTimeToNanoseconds(timeInputToHrTime(resource[PTN.RESPONSE_END]));\n return (resource.initiatorType.toLowerCase() ===\n (initiatorType || 'xmlhttprequest') &&\n resource.name === spanUrl &&\n resourceStartTime >= startTime &&\n resourceEndTime <= endTime);\n });\n if (filteredResources.length > 0) {\n filteredResources = filteredResources.filter(function (resource) {\n return !ignoredResources.has(resource);\n });\n }\n return filteredResources;\n}\n/**\n * Parses url using URL constructor or fallback to anchor element.\n * @param url\n */\nexport function parseUrl(url) {\n if (typeof URL === 'function') {\n return new URL(url, typeof document !== 'undefined' ? document.baseURI : location.href);\n }\n var element = getUrlNormalizingAnchor();\n element.href = url;\n return element;\n}\n/**\n * Parses url using URL constructor or fallback to anchor element and serialize\n * it to a string.\n *\n * Performs the steps described in https://html.spec.whatwg.org/multipage/urls-and-fetching.html#parse-a-url\n *\n * @param url\n */\nexport function normalizeUrl(url) {\n var urlLike = parseUrl(url);\n return urlLike.href;\n}\n/**\n * Get element XPath\n * @param target - target element\n * @param optimised - when id attribute of element is present the xpath can be\n * simplified to contain id\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function getElementXPath(target, optimised) {\n if (target.nodeType === Node.DOCUMENT_NODE) {\n return '/';\n }\n var targetValue = getNodeValue(target, optimised);\n if (optimised && targetValue.indexOf('@id') > 0) {\n return targetValue;\n }\n var xpath = '';\n if (target.parentNode) {\n xpath += getElementXPath(target.parentNode, false);\n }\n xpath += targetValue;\n return xpath;\n}\n/**\n * get node index within the siblings\n * @param target\n */\nfunction getNodeIndex(target) {\n if (!target.parentNode) {\n return 0;\n }\n var allowedTypes = [target.nodeType];\n if (target.nodeType === Node.CDATA_SECTION_NODE) {\n allowedTypes.push(Node.TEXT_NODE);\n }\n var elements = Array.from(target.parentNode.childNodes);\n elements = elements.filter(function (element) {\n var localName = element.localName;\n return (allowedTypes.indexOf(element.nodeType) >= 0 &&\n localName === target.localName);\n });\n if (elements.length >= 1) {\n return elements.indexOf(target) + 1; // xpath starts from 1\n }\n // if there are no other similar child xpath doesn't need index\n return 0;\n}\n/**\n * get node value for xpath\n * @param target\n * @param optimised\n */\nfunction getNodeValue(target, optimised) {\n var nodeType = target.nodeType;\n var index = getNodeIndex(target);\n var nodeValue = '';\n if (nodeType === Node.ELEMENT_NODE) {\n var id = target.getAttribute('id');\n if (optimised && id) {\n return \"//*[@id=\\\"\" + id + \"\\\"]\";\n }\n nodeValue = target.localName;\n }\n else if (nodeType === Node.TEXT_NODE ||\n nodeType === Node.CDATA_SECTION_NODE) {\n nodeValue = 'text()';\n }\n else if (nodeType === Node.COMMENT_NODE) {\n nodeValue = 'comment()';\n }\n else {\n return '';\n }\n // if index is 1 it can be omitted in xpath\n if (nodeValue && index > 1) {\n return \"/\" + nodeValue + \"[\" + index + \"]\";\n }\n return \"/\" + nodeValue;\n}\n/**\n * Checks if trace headers should be propagated\n * @param spanUrl\n * @private\n */\nexport function shouldPropagateTraceHeaders(spanUrl, propagateTraceHeaderCorsUrls) {\n var propagateTraceHeaderUrls = propagateTraceHeaderCorsUrls || [];\n if (typeof propagateTraceHeaderUrls === 'string' ||\n propagateTraceHeaderUrls instanceof RegExp) {\n propagateTraceHeaderUrls = [propagateTraceHeaderUrls];\n }\n var parsedSpanUrl = parseUrl(spanUrl);\n if (parsedSpanUrl.origin === location.origin) {\n return true;\n }\n else {\n return propagateTraceHeaderUrls.some(function (propagateTraceHeaderUrl) {\n return urlMatches(spanUrl, propagateTraceHeaderUrl);\n });\n }\n}\n//# sourceMappingURL=utils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { diag } from '@opentelemetry/api';\nimport { getEnv } from '@opentelemetry/core';\nvar DEFAULT_TRACE_TIMEOUT = 10000;\nexport var DEFAULT_EXPORT_MAX_ATTEMPTS = 5;\nexport var DEFAULT_EXPORT_INITIAL_BACKOFF = 1000;\nexport var DEFAULT_EXPORT_MAX_BACKOFF = 5000;\nexport var DEFAULT_EXPORT_BACKOFF_MULTIPLIER = 1.5;\n/**\n * Parses headers from config leaving only those that have defined values\n * @param partialHeaders\n */\nexport function parseHeaders(partialHeaders) {\n if (partialHeaders === void 0) { partialHeaders = {}; }\n var headers = {};\n Object.entries(partialHeaders).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (typeof value !== 'undefined') {\n headers[key] = String(value);\n }\n else {\n diag.warn(\"Header \\\"\" + key + \"\\\" has wrong value and will be ignored\");\n }\n });\n return headers;\n}\n/**\n * Adds path (version + signal) to a no per-signal endpoint\n * @param url\n * @param path\n * @returns url + path\n */\nexport function appendResourcePathToUrl(url, path) {\n if (!url.endsWith('/')) {\n url = url + '/';\n }\n return url + path;\n}\n/**\n * Adds root path to signal specific endpoint when endpoint contains no path part and no root path\n * @param url\n * @returns url\n */\nexport function appendRootPathToUrlIfNeeded(url) {\n try {\n var parsedUrl = new URL(url);\n if (parsedUrl.pathname === '') {\n parsedUrl.pathname = parsedUrl.pathname + '/';\n }\n return parsedUrl.toString();\n }\n catch (_a) {\n diag.warn(\"Could not parse export URL: '\" + url + \"'\");\n return url;\n }\n}\n/**\n * Configure exporter trace timeout value from passed in value or environment variables\n * @param timeoutMillis\n * @returns timeout value in milliseconds\n */\nexport function configureExporterTimeout(timeoutMillis) {\n if (typeof timeoutMillis === 'number') {\n if (timeoutMillis <= 0) {\n // OTLP exporter configured timeout - using default value of 10000ms\n return invalidTimeout(timeoutMillis, DEFAULT_TRACE_TIMEOUT);\n }\n return timeoutMillis;\n }\n else {\n return getExporterTimeoutFromEnv();\n }\n}\nfunction getExporterTimeoutFromEnv() {\n var _a;\n var definedTimeout = Number((_a = getEnv().OTEL_EXPORTER_OTLP_TRACES_TIMEOUT) !== null && _a !== void 0 ? _a : getEnv().OTEL_EXPORTER_OTLP_TIMEOUT);\n if (definedTimeout <= 0) {\n // OTLP exporter configured timeout - using default value of 10000ms\n return invalidTimeout(definedTimeout, DEFAULT_TRACE_TIMEOUT);\n }\n else {\n return definedTimeout;\n }\n}\n// OTLP exporter configured timeout - using default value of 10000ms\nexport function invalidTimeout(timeout, defaultTimeout) {\n diag.warn('Timeout must be greater than 0', timeout);\n return defaultTimeout;\n}\nexport function isExportRetryable(statusCode) {\n var retryCodes = [429, 502, 503, 504];\n return retryCodes.includes(statusCode);\n}\nexport function parseRetryAfterToMills(retryAfter) {\n if (retryAfter == null) {\n return -1;\n }\n var seconds = Number.parseInt(retryAfter, 10);\n if (Number.isInteger(seconds)) {\n return seconds > 0 ? seconds * 1000 : -1;\n }\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#directives\n var delay = new Date(retryAfter).getTime() - Date.now();\n if (delay >= 0) {\n return delay;\n }\n return 0;\n}\n//# sourceMappingURL=util.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { ExportResultCode, BindOnceFuture, } from '@opentelemetry/core';\nimport { configureExporterTimeout } from './util';\n/**\n * Collector Exporter abstract base class\n */\nvar OTLPExporterBase = /** @class */ (function () {\n /**\n * @param config\n */\n function OTLPExporterBase(config) {\n if (config === void 0) { config = {}; }\n this._sendingPromises = [];\n this.url = this.getDefaultUrl(config);\n if (typeof config.hostname === 'string') {\n this.hostname = config.hostname;\n }\n this.shutdown = this.shutdown.bind(this);\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._concurrencyLimit =\n typeof config.concurrencyLimit === 'number'\n ? config.concurrencyLimit\n : Infinity;\n this.timeoutMillis = configureExporterTimeout(config.timeoutMillis);\n // platform dependent\n this.onInit(config);\n }\n /**\n * Export items.\n * @param items\n * @param resultCallback\n */\n OTLPExporterBase.prototype.export = function (items, resultCallback) {\n if (this._shutdownOnce.isCalled) {\n resultCallback({\n code: ExportResultCode.FAILED,\n error: new Error('Exporter has been shutdown'),\n });\n return;\n }\n if (this._sendingPromises.length >= this._concurrencyLimit) {\n resultCallback({\n code: ExportResultCode.FAILED,\n error: new Error('Concurrent export limit reached'),\n });\n return;\n }\n this._export(items)\n .then(function () {\n resultCallback({ code: ExportResultCode.SUCCESS });\n })\n .catch(function (error) {\n resultCallback({ code: ExportResultCode.FAILED, error: error });\n });\n };\n OTLPExporterBase.prototype._export = function (items) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n try {\n diag.debug('items to be sent', items);\n _this.send(items, resolve, reject);\n }\n catch (e) {\n reject(e);\n }\n });\n };\n /**\n * Shutdown the exporter.\n */\n OTLPExporterBase.prototype.shutdown = function () {\n return this._shutdownOnce.call();\n };\n /**\n * Called by _shutdownOnce with BindOnceFuture\n */\n OTLPExporterBase.prototype._shutdown = function () {\n diag.debug('shutdown started');\n this.onShutdown();\n return Promise.all(this._sendingPromises).then(function () {\n /** ignore resolved values */\n });\n };\n return OTLPExporterBase;\n}());\nexport { OTLPExporterBase };\n//# sourceMappingURL=OTLPExporterBase.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Interface for handling error\n */\nvar OTLPExporterError = /** @class */ (function (_super) {\n __extends(OTLPExporterError, _super);\n function OTLPExporterError(message, code, data) {\n var _this = _super.call(this, message) || this;\n _this.name = 'OTLPExporterError';\n _this.data = data;\n _this.code = code;\n return _this;\n }\n return OTLPExporterError;\n}(Error));\nexport { OTLPExporterError };\n//# sourceMappingURL=types.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { OTLPExporterError } from '../../types';\nimport { DEFAULT_EXPORT_MAX_ATTEMPTS, DEFAULT_EXPORT_INITIAL_BACKOFF, DEFAULT_EXPORT_BACKOFF_MULTIPLIER, DEFAULT_EXPORT_MAX_BACKOFF, isExportRetryable, parseRetryAfterToMills, } from '../../util';\n/**\n * Send metrics/spans using browser navigator.sendBeacon\n * @param body\n * @param url\n * @param blobPropertyBag\n * @param onSuccess\n * @param onError\n */\nexport function sendWithBeacon(body, url, blobPropertyBag, onSuccess, onError) {\n if (navigator.sendBeacon(url, new Blob([body], blobPropertyBag))) {\n diag.debug('sendBeacon - can send', body);\n onSuccess();\n }\n else {\n var error = new OTLPExporterError(\"sendBeacon - cannot send \" + body);\n onError(error);\n }\n}\n/**\n * function to send metrics/spans using browser XMLHttpRequest\n * used when navigator.sendBeacon is not available\n * @param body\n * @param url\n * @param headers\n * @param onSuccess\n * @param onError\n */\nexport function sendWithXhr(body, url, headers, exporterTimeout, onSuccess, onError) {\n var retryTimer;\n var xhr;\n var reqIsDestroyed = false;\n var exporterTimer = setTimeout(function () {\n clearTimeout(retryTimer);\n reqIsDestroyed = true;\n if (xhr.readyState === XMLHttpRequest.DONE) {\n var err = new OTLPExporterError('Request Timeout');\n onError(err);\n }\n else {\n xhr.abort();\n }\n }, exporterTimeout);\n var sendWithRetry = function (retries, minDelay) {\n if (retries === void 0) { retries = DEFAULT_EXPORT_MAX_ATTEMPTS; }\n if (minDelay === void 0) { minDelay = DEFAULT_EXPORT_INITIAL_BACKOFF; }\n xhr = new XMLHttpRequest();\n xhr.open('POST', url);\n var defaultHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n };\n Object.entries(__assign(__assign({}, defaultHeaders), headers)).forEach(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n xhr.setRequestHeader(k, v);\n });\n xhr.send(body);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE && reqIsDestroyed === false) {\n if (xhr.status >= 200 && xhr.status <= 299) {\n diag.debug('xhr success', body);\n onSuccess();\n clearTimeout(exporterTimer);\n clearTimeout(retryTimer);\n }\n else if (xhr.status && isExportRetryable(xhr.status) && retries > 0) {\n var retryTime = void 0;\n minDelay = DEFAULT_EXPORT_BACKOFF_MULTIPLIER * minDelay;\n // retry after interval specified in Retry-After header\n if (xhr.getResponseHeader('Retry-After')) {\n retryTime = parseRetryAfterToMills(xhr.getResponseHeader('Retry-After'));\n }\n else {\n // exponential backoff with jitter\n retryTime = Math.round(Math.random() * (DEFAULT_EXPORT_MAX_BACKOFF - minDelay) + minDelay);\n }\n retryTimer = setTimeout(function () {\n sendWithRetry(retries - 1, minDelay);\n }, retryTime);\n }\n else {\n var error = new OTLPExporterError(\"Failed to export with XHR (status: \" + xhr.status + \")\", xhr.status);\n onError(error);\n clearTimeout(exporterTimer);\n clearTimeout(retryTimer);\n }\n }\n };\n xhr.onabort = function () {\n if (reqIsDestroyed) {\n var err = new OTLPExporterError('Request Timeout');\n onError(err);\n }\n clearTimeout(exporterTimer);\n clearTimeout(retryTimer);\n };\n xhr.onerror = function () {\n if (reqIsDestroyed) {\n var err = new OTLPExporterError('Request Timeout');\n onError(err);\n }\n clearTimeout(exporterTimer);\n clearTimeout(retryTimer);\n };\n };\n sendWithRetry();\n}\n//# sourceMappingURL=util.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { OTLPExporterBase } from '../../OTLPExporterBase';\nimport { parseHeaders } from '../../util';\nimport { sendWithBeacon, sendWithXhr } from './util';\nimport { diag } from '@opentelemetry/api';\nimport { getEnv, baggageUtils } from '@opentelemetry/core';\n/**\n * Collector Metric Exporter abstract base class\n */\nvar OTLPExporterBrowserBase = /** @class */ (function (_super) {\n __extends(OTLPExporterBrowserBase, _super);\n /**\n * @param config\n */\n function OTLPExporterBrowserBase(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, config) || this;\n _this._useXHR = false;\n _this._useXHR =\n !!config.headers || typeof navigator.sendBeacon !== 'function';\n if (_this._useXHR) {\n _this._headers = Object.assign({}, parseHeaders(config.headers), baggageUtils.parseKeyPairsIntoRecord(getEnv().OTEL_EXPORTER_OTLP_HEADERS));\n }\n else {\n _this._headers = {};\n }\n return _this;\n }\n OTLPExporterBrowserBase.prototype.onInit = function () {\n window.addEventListener('unload', this.shutdown);\n };\n OTLPExporterBrowserBase.prototype.onShutdown = function () {\n window.removeEventListener('unload', this.shutdown);\n };\n OTLPExporterBrowserBase.prototype.send = function (items, onSuccess, onError) {\n var _this = this;\n if (this._shutdownOnce.isCalled) {\n diag.debug('Shutdown already started. Cannot send objects');\n return;\n }\n var serviceRequest = this.convert(items);\n var body = JSON.stringify(serviceRequest);\n var promise = new Promise(function (resolve, reject) {\n if (_this._useXHR) {\n sendWithXhr(body, _this.url, _this._headers, _this.timeoutMillis, resolve, reject);\n }\n else {\n sendWithBeacon(body, _this.url, { type: 'application/json' }, resolve, reject);\n }\n }).then(onSuccess, onError);\n this._sendingPromises.push(promise);\n var popPromise = function () {\n var index = _this._sendingPromises.indexOf(promise);\n _this._sendingPromises.splice(index, 1);\n };\n promise.then(popPromise, popPromise);\n };\n return OTLPExporterBrowserBase;\n}(OTLPExporterBase));\nexport { OTLPExporterBrowserBase };\n//# sourceMappingURL=OTLPExporterBrowserBase.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexport function toAttributes(attributes) {\n return Object.keys(attributes).map(function (key) { return toKeyValue(key, attributes[key]); });\n}\nexport function toKeyValue(key, value) {\n return {\n key: key,\n value: toAnyValue(value),\n };\n}\nexport function toAnyValue(value) {\n var t = typeof value;\n if (t === 'string')\n return { stringValue: value };\n if (t === 'number') {\n if (!Number.isInteger(value))\n return { doubleValue: value };\n return { intValue: value };\n }\n if (t === 'boolean')\n return { boolValue: value };\n if (value instanceof Uint8Array)\n return { bytesValue: value };\n if (Array.isArray(value))\n return { arrayValue: { values: value.map(toAnyValue) } };\n if (t === 'object' && value != null)\n return {\n kvlistValue: {\n values: Object.entries(value).map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return toKeyValue(k, v);\n }),\n },\n };\n return {};\n}\nexport function hexToBuf(hex) {\n var _a;\n var ints = (_a = hex.match(/[\\da-f]{2}/gi)) === null || _a === void 0 ? void 0 : _a.map(function (h) { return parseInt(h, 16); });\n return ints && new Uint8Array(ints);\n}\nfunction i2hex(i) {\n return ('0' + i.toString(16)).slice(-2);\n}\nexport function bufToHex(buf) {\n if (buf == null || buf.length === 0)\n return undefined;\n return Array.from(buf).map(i2hex).join('');\n}\n//# sourceMappingURL=internal.js.map","import { hrTimeToNanoseconds } from '@opentelemetry/core';\nimport { toAttributes } from '../common/internal';\nimport * as core from '@opentelemetry/core';\nexport function sdkSpanToOtlpSpan(span, useHex) {\n var _a;\n var ctx = span.spanContext();\n var status = span.status;\n var parentSpanId = useHex\n ? span.parentSpanId\n : span.parentSpanId != null\n ? core.hexToBase64(span.parentSpanId)\n : undefined;\n return {\n traceId: useHex ? ctx.traceId : core.hexToBase64(ctx.traceId),\n spanId: useHex ? ctx.spanId : core.hexToBase64(ctx.spanId),\n parentSpanId: parentSpanId,\n traceState: (_a = ctx.traceState) === null || _a === void 0 ? void 0 : _a.serialize(),\n name: span.name,\n // Span kind is offset by 1 because the API does not define a value for unset\n kind: span.kind == null ? 0 : span.kind + 1,\n startTimeUnixNano: hrTimeToNanoseconds(span.startTime),\n endTimeUnixNano: hrTimeToNanoseconds(span.endTime),\n attributes: toAttributes(span.attributes),\n droppedAttributesCount: span.droppedAttributesCount,\n events: span.events.map(toOtlpSpanEvent),\n droppedEventsCount: span.droppedEventsCount,\n status: {\n // API and proto enums share the same values\n code: status.code,\n message: status.message,\n },\n links: span.links.map(function (link) { return toOtlpLink(link, useHex); }),\n droppedLinksCount: span.droppedLinksCount,\n };\n}\nexport function toOtlpLink(link, useHex) {\n var _a;\n return {\n attributes: link.attributes ? toAttributes(link.attributes) : [],\n spanId: useHex\n ? link.context.spanId\n : core.hexToBase64(link.context.spanId),\n traceId: useHex\n ? link.context.traceId\n : core.hexToBase64(link.context.traceId),\n traceState: (_a = link.context.traceState) === null || _a === void 0 ? void 0 : _a.serialize(),\n droppedAttributesCount: link.droppedAttributesCount || 0,\n };\n}\nexport function toOtlpSpanEvent(timedEvent) {\n return {\n attributes: timedEvent.attributes\n ? toAttributes(timedEvent.attributes)\n : [],\n name: timedEvent.name,\n timeUnixNano: hrTimeToNanoseconds(timedEvent.time),\n droppedAttributesCount: timedEvent.droppedAttributesCount || 0,\n };\n}\n//# sourceMappingURL=internal.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { toAttributes } from '../common/internal';\nimport { sdkSpanToOtlpSpan } from './internal';\nexport function createExportTraceServiceRequest(spans, useHex) {\n return {\n resourceSpans: spanRecordsToResourceSpans(spans, useHex),\n };\n}\nfunction createResourceMap(readableSpans) {\n var e_1, _a;\n var resourceMap = new Map();\n try {\n for (var readableSpans_1 = __values(readableSpans), readableSpans_1_1 = readableSpans_1.next(); !readableSpans_1_1.done; readableSpans_1_1 = readableSpans_1.next()) {\n var record = readableSpans_1_1.value;\n var ilmMap = resourceMap.get(record.resource);\n if (!ilmMap) {\n ilmMap = new Map();\n resourceMap.set(record.resource, ilmMap);\n }\n // TODO this is duplicated in basic tracer. Consolidate on a common helper in core\n var instrumentationLibraryKey = record.instrumentationLibrary.name + \"@\" + (record.instrumentationLibrary.version || '') + \":\" + (record.instrumentationLibrary.schemaUrl || '');\n var records = ilmMap.get(instrumentationLibraryKey);\n if (!records) {\n records = [];\n ilmMap.set(instrumentationLibraryKey, records);\n }\n records.push(record);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (readableSpans_1_1 && !readableSpans_1_1.done && (_a = readableSpans_1.return)) _a.call(readableSpans_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return resourceMap;\n}\nfunction spanRecordsToResourceSpans(readableSpans, useHex) {\n var resourceMap = createResourceMap(readableSpans);\n var out = [];\n var entryIterator = resourceMap.entries();\n var entry = entryIterator.next();\n while (!entry.done) {\n var _a = __read(entry.value, 2), resource = _a[0], ilmMap = _a[1];\n var scopeResourceSpans = [];\n var ilmIterator = ilmMap.values();\n var ilmEntry = ilmIterator.next();\n while (!ilmEntry.done) {\n var scopeSpans = ilmEntry.value;\n if (scopeSpans.length > 0) {\n var _b = scopeSpans[0].instrumentationLibrary, name_1 = _b.name, version = _b.version, schemaUrl = _b.schemaUrl;\n var spans = scopeSpans.map(function (readableSpan) {\n return sdkSpanToOtlpSpan(readableSpan, useHex);\n });\n scopeResourceSpans.push({\n scope: { name: name_1, version: version },\n spans: spans,\n schemaUrl: schemaUrl,\n });\n }\n ilmEntry = ilmIterator.next();\n }\n // TODO SDK types don't provide resource schema URL at this time\n var transformedSpans = {\n resource: {\n attributes: toAttributes(resource.attributes),\n droppedAttributesCount: 0,\n },\n scopeSpans: scopeResourceSpans,\n schemaUrl: undefined,\n };\n out.push(transformedSpans);\n entry = entryIterator.next();\n }\n return out;\n}\n//# sourceMappingURL=index.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { getEnv, baggageUtils } from '@opentelemetry/core';\nimport { appendResourcePathToUrl, appendRootPathToUrlIfNeeded, OTLPExporterBrowserBase, } from '@opentelemetry/otlp-exporter-base';\nimport { createExportTraceServiceRequest, } from '@opentelemetry/otlp-transformer';\nvar DEFAULT_COLLECTOR_RESOURCE_PATH = 'v1/traces';\nvar DEFAULT_COLLECTOR_URL = \"http://localhost:4318/\" + DEFAULT_COLLECTOR_RESOURCE_PATH;\n/**\n * Collector Trace Exporter for Web\n */\nvar OTLPTraceExporter = /** @class */ (function (_super) {\n __extends(OTLPTraceExporter, _super);\n function OTLPTraceExporter(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, config) || this;\n _this._headers = Object.assign(_this._headers, baggageUtils.parseKeyPairsIntoRecord(getEnv().OTEL_EXPORTER_OTLP_TRACES_HEADERS));\n return _this;\n }\n OTLPTraceExporter.prototype.convert = function (spans) {\n return createExportTraceServiceRequest(spans, true);\n };\n OTLPTraceExporter.prototype.getDefaultUrl = function (config) {\n return typeof config.url === 'string'\n ? config.url\n : getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT.length > 0\n ? appendRootPathToUrlIfNeeded(getEnv().OTEL_EXPORTER_OTLP_TRACES_ENDPOINT)\n : getEnv().OTEL_EXPORTER_OTLP_ENDPOINT.length > 0\n ? appendResourcePathToUrl(getEnv().OTEL_EXPORTER_OTLP_ENDPOINT, DEFAULT_COLLECTOR_RESOURCE_PATH)\n : DEFAULT_COLLECTOR_URL;\n };\n return OTLPTraceExporter;\n}(OTLPExporterBrowserBase));\nexport { OTLPTraceExporter };\n//# sourceMappingURL=OTLPTraceExporter.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Parses the options and returns instrumentations, node plugins and\n * web plugins\n * @param options\n */\nexport function parseInstrumentationOptions(options) {\n if (options === void 0) { options = []; }\n var instrumentations = [];\n for (var i = 0, j = options.length; i < j; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var option = options[i];\n if (Array.isArray(option)) {\n var results = parseInstrumentationOptions(option);\n instrumentations = instrumentations.concat(results.instrumentations);\n }\n else if (typeof option === 'function') {\n instrumentations.push(new option());\n }\n else if (option.instrumentationName) {\n instrumentations.push(option);\n }\n }\n return { instrumentations: instrumentations };\n}\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nexport function enableInstrumentations(instrumentations, tracerProvider, meterProvider) {\n for (var i = 0, j = instrumentations.length; i < j; i++) {\n var instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nexport function disableInstrumentations(instrumentations) {\n instrumentations.forEach(function (instrumentation) { return instrumentation.disable(); });\n}\n//# sourceMappingURL=autoLoaderUtils.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { trace, metrics } from '@opentelemetry/api';\nimport { disableInstrumentations, enableInstrumentations, parseInstrumentationOptions, } from './autoLoaderUtils';\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nexport function registerInstrumentations(options) {\n var instrumentations = parseInstrumentationOptions(options.instrumentations).instrumentations;\n var tracerProvider = options.tracerProvider || trace.getTracerProvider();\n var meterProvider = options.meterProvider || metrics.getMeterProvider();\n enableInstrumentations(instrumentations, tracerProvider, meterProvider);\n return function () {\n disableInstrumentations(instrumentations);\n };\n}\n//# sourceMappingURL=autoLoader.js.map","'use strict'\n\nfunction isFunction (funktion) {\n return typeof funktion === 'function'\n}\n\n// Default to complaining loudly when things don't go according to plan.\nvar logger = console.error.bind(console)\n\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty (obj, name, value) {\n var enumerable = !!obj[name] && obj.propertyIsEnumerable(name)\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable: enumerable,\n writable: true,\n value: value\n })\n}\n\n// Keep initialization idempotent.\nfunction shimmer (options) {\n if (options && options.logger) {\n if (!isFunction(options.logger)) logger(\"new logger isn't a function, not replacing\")\n else logger = options.logger\n }\n}\n\nfunction wrap (nodule, name, wrapper) {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + name + ' to wrap')\n return\n }\n\n if (!wrapper) {\n logger('no wrapper function')\n logger((new Error()).stack)\n return\n }\n\n if (!isFunction(nodule[name]) || !isFunction(wrapper)) {\n logger('original object and wrapper must be functions')\n return\n }\n\n var original = nodule[name]\n var wrapped = wrapper(original, name)\n\n defineProperty(wrapped, '__original', original)\n defineProperty(wrapped, '__unwrap', function () {\n if (nodule[name] === wrapped) defineProperty(nodule, name, original)\n })\n defineProperty(wrapped, '__wrapped', true)\n\n defineProperty(nodule, name, wrapped)\n return wrapped\n}\n\nfunction massWrap (nodules, names, wrapper) {\n if (!nodules) {\n logger('must provide one or more modules to patch')\n logger((new Error()).stack)\n return\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules]\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules')\n return\n }\n\n nodules.forEach(function (nodule) {\n names.forEach(function (name) {\n wrap(nodule, name, wrapper)\n })\n })\n}\n\nfunction unwrap (nodule, name) {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.')\n logger((new Error()).stack)\n return\n }\n\n if (!nodule[name].__unwrap) {\n logger('no original to unwrap to -- has ' + name + ' already been unwrapped?')\n } else {\n return nodule[name].__unwrap()\n }\n}\n\nfunction massUnwrap (nodules, names) {\n if (!nodules) {\n logger('must provide one or more modules to patch')\n logger((new Error()).stack)\n return\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules]\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules')\n return\n }\n\n nodules.forEach(function (nodule) {\n names.forEach(function (name) {\n unwrap(nodule, name)\n })\n })\n}\n\nshimmer.wrap = wrap\nshimmer.massWrap = massWrap\nshimmer.unwrap = unwrap\nshimmer.massUnwrap = massUnwrap\n\nmodule.exports = shimmer\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { diag, metrics, trace, } from '@opentelemetry/api';\nimport * as shimmer from 'shimmer';\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nvar InstrumentationAbstract = /** @class */ (function () {\n function InstrumentationAbstract(instrumentationName, instrumentationVersion, config) {\n if (config === void 0) { config = {}; }\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n /* Api to wrap instrumented method */\n this._wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n this._unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n this._massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n this._massUnwrap = shimmer.massUnwrap;\n this._config = __assign({ enabled: true }, config);\n this._diag = diag.createComponentLogger({\n namespace: instrumentationName,\n });\n this._tracer = trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = metrics.getMeter(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n Object.defineProperty(InstrumentationAbstract.prototype, \"meter\", {\n /* Returns meter */\n get: function () {\n return this._meter;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n InstrumentationAbstract.prototype.setMeterProvider = function (meterProvider) {\n this._meter = meterProvider.getMeter(this.instrumentationName, this.instrumentationVersion);\n this._updateMetricInstruments();\n };\n /**\n * Sets the new metric instruments with the current Meter.\n */\n InstrumentationAbstract.prototype._updateMetricInstruments = function () {\n return;\n };\n /* Returns InstrumentationConfig */\n InstrumentationAbstract.prototype.getConfig = function () {\n return this._config;\n };\n /**\n * Sets InstrumentationConfig to this plugin\n * @param InstrumentationConfig\n */\n InstrumentationAbstract.prototype.setConfig = function (config) {\n if (config === void 0) { config = {}; }\n this._config = Object.assign({}, config);\n };\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n InstrumentationAbstract.prototype.setTracerProvider = function (tracerProvider) {\n this._tracer = tracerProvider.getTracer(this.instrumentationName, this.instrumentationVersion);\n };\n Object.defineProperty(InstrumentationAbstract.prototype, \"tracer\", {\n /* Returns tracer */\n get: function () {\n return this._tracer;\n },\n enumerable: false,\n configurable: true\n });\n return InstrumentationAbstract;\n}());\nexport { InstrumentationAbstract };\n//# sourceMappingURL=instrumentation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { InstrumentationAbstract } from '../../instrumentation';\n/**\n * Base abstract class for instrumenting web plugins\n */\nvar InstrumentationBase = /** @class */ (function (_super) {\n __extends(InstrumentationBase, _super);\n function InstrumentationBase(instrumentationName, instrumentationVersion, config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, instrumentationName, instrumentationVersion, config) || this;\n if (_this._config.enabled) {\n _this.enable();\n }\n return _this;\n }\n return InstrumentationBase;\n}(InstrumentationAbstract));\nexport { InstrumentationBase };\n//# sourceMappingURL=instrumentation.js.map","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddle(execute, onFinish, preventThrowingError) {\n var error;\n var result;\n try {\n result = execute();\n }\n catch (e) {\n error = e;\n }\n finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result;\n }\n}\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddleAsync(execute, onFinish, preventThrowingError) {\n return __awaiter(this, void 0, void 0, function () {\n var error, result, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, 3, 4]);\n return [4 /*yield*/, execute()];\n case 1:\n result = _a.sent();\n return [3 /*break*/, 4];\n case 2:\n e_1 = _a.sent();\n error = e_1;\n return [3 /*break*/, 4];\n case 3:\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return [2 /*return*/, result];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nexport function isWrapped(func) {\n return (typeof func === 'function' &&\n typeof func.__original === 'function' &&\n typeof func.__unwrap === 'function' &&\n func.__wrapped === true);\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDsn = exports.Dsn = exports.createResource = void 0;\nvar resources_1 = require(\"@opentelemetry/resources\");\nfunction createResource(resource, resourceAttributes, serviceName, serviceVersion, deploymentEnvironment) {\n if (resource) {\n return resource;\n }\n var attrs = {};\n if (resourceAttributes) {\n Object.assign(attrs, resourceAttributes);\n }\n if (serviceName) {\n attrs['service.name'] = serviceName;\n }\n if (serviceVersion) {\n attrs['service.version'] = serviceVersion;\n }\n if (deploymentEnvironment) {\n attrs['deployment.environment'] = deploymentEnvironment;\n }\n resource = resources_1.Resource.default();\n if (Object.keys(attrs).length) {\n return resource.merge(new resources_1.Resource(attrs));\n }\n return resource;\n}\nexports.createResource = createResource;\n//------------------------------------------------------------------------------\nvar Dsn = /** @class */ (function () {\n function Dsn(s) {\n this.str = '';\n this.scheme = '';\n this.host = '';\n this.projectId = '';\n this.token = '';\n if (!s) {\n throw new Error('either dsn option or UPTRACE_DSN is required');\n }\n var u;\n try {\n u = new URL(s);\n }\n catch (err) {\n throw new Error(\"can't parse DSN=\".concat(JSON.stringify(s)));\n }\n this.str = s;\n this.scheme = u.protocol;\n this.host = u.host;\n if (this.host === 'api.uptrace.dev') {\n this.host = 'uptrace.dev';\n }\n if (this.host !== 'uptrace.dev') {\n return;\n }\n this.projectId = u.pathname.slice(1);\n this.token = u.username;\n }\n Dsn.prototype.toString = function () {\n return this.str;\n };\n Dsn.prototype.appAddr = function () {\n if (this.host === 'uptrace.dev') {\n return 'https://app.uptrace.dev';\n }\n return \"\".concat(this.scheme, \"//\").concat(this.host);\n };\n Dsn.prototype.otlpAddr = function () {\n if (this.host === 'uptrace.dev') {\n return 'https://otlp.uptrace.dev';\n }\n return \"\".concat(this.scheme, \"//\").concat(this.host);\n };\n return Dsn;\n}());\nexports.Dsn = Dsn;\nfunction parseDsn(s) {\n return new Dsn(s);\n}\nexports.parseDsn = parseDsn;\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createClient = exports.Client = void 0;\nvar api_1 = require(\"@opentelemetry/api\");\nvar DUMMY_SPAN_NAME = '__dummy__';\nvar Client = /** @class */ (function () {\n function Client(dsn) {\n this._dsn = dsn;\n }\n Client.prototype.traceUrl = function (span) {\n var _a;\n var ctx = span.spanContext();\n var traceId = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.traceId) !== null && _a !== void 0 ? _a : '<no span>';\n return \"\".concat(this._dsn.appAddr(), \"/traces/\").concat(traceId);\n };\n // reportException reports an exception as a span event creating a dummy span if necessary.\n Client.prototype.reportException = function (err, attrs) {\n if (attrs === void 0) { attrs = {}; }\n var startedSpan = false;\n var tracer = this._internalTracer();\n var span = api_1.trace.getSpan(api_1.context.active());\n if (!span) {\n span = tracer.startSpan(DUMMY_SPAN_NAME);\n startedSpan = true;\n }\n if (typeof err === 'string') {\n attrs['exception.message'] = err;\n }\n else {\n attrs['exception.type'] = err.name;\n attrs['exception.message'] = err.message;\n attrs['exception.stacktrace'] = err.stack;\n }\n span.addEvent('exception', attrs);\n if (startedSpan) {\n span.end();\n }\n };\n Client.prototype._internalTracer = function () {\n if (!this._tracer) {\n this._tracer = api_1.trace.getTracer('uptrace-js');\n }\n return this._tracer;\n };\n return Client;\n}());\nexports.Client = Client;\nfunction createClient(dsn) {\n return new Client(dsn);\n}\nexports.createClient = createClient;\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '1.11.1';\n//# sourceMappingURL=version.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./client\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./version\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WindowAttributesProcessor = exports.configureOpentelemetry = exports.traceUrl = exports.reportException = void 0;\nvar sdk_trace_base_1 = require(\"@opentelemetry/sdk-trace-base\");\nvar sdk_trace_web_1 = require(\"@opentelemetry/sdk-trace-web\");\nvar exporter_trace_otlp_http_1 = require(\"@opentelemetry/exporter-trace-otlp-http\");\nvar instrumentation_1 = require(\"@opentelemetry/instrumentation\");\nvar core_1 = require(\"@uptrace/core\");\nvar hasWindow = typeof window !== 'undefined';\nvar _CLIENT = (0, core_1.createClient)((0, core_1.parseDsn)('https://<key>@uptrace.dev/<project_id>'));\nfunction reportException(err, attrs) {\n if (attrs === void 0) { attrs = {}; }\n _CLIENT.reportException(err, attrs);\n}\nexports.reportException = reportException;\nfunction traceUrl(span) {\n return _CLIENT.traceUrl(span);\n}\nexports.traceUrl = traceUrl;\nfunction configureOpentelemetry(conf) {\n configureResource(conf);\n configureTracing(conf);\n if (hasWindow) {\n setupOnError();\n }\n}\nexports.configureOpentelemetry = configureOpentelemetry;\nfunction configureResource(conf) {\n var _a, _b, _c;\n conf.resource = (0, core_1.createResource)(conf.resource, conf.resourceAttributes, (_a = conf.serviceName) !== null && _a !== void 0 ? _a : '', (_b = conf.serviceVersion) !== null && _b !== void 0 ? _b : '', (_c = conf.deploymentEnvironment) !== null && _c !== void 0 ? _c : '');\n}\nfunction configureTracing(conf) {\n if (!conf.dsn && hasWindow && window.UPTRACE_DSN) {\n conf.dsn = window.UPTRACE_DSN;\n }\n var dsn;\n try {\n dsn = (0, core_1.parseDsn)(conf.dsn);\n }\n catch (err) {\n console.error('Uptrace is disabled:', String(err));\n return;\n }\n _CLIENT = (0, core_1.createClient)(dsn);\n var exporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({\n url: \"\".concat(dsn.otlpAddr(), \"/v1/traces\"),\n headers: { 'uptrace-dsn': conf.dsn },\n });\n var spanProcessor = new sdk_trace_base_1.BatchSpanProcessor(exporter, {\n maxExportBatchSize: 1000,\n maxQueueSize: 1000,\n scheduledDelayMillis: 5 * 1000,\n });\n var provider = new sdk_trace_web_1.WebTracerProvider({\n sampler: conf.sampler,\n spanLimits: conf.spanLimits,\n resource: conf.resource,\n idGenerator: conf.idGenerator,\n forceFlushTimeoutMillis: conf.forceFlushTimeoutMillis,\n });\n if (hasWindow) {\n provider.addSpanProcessor(new WindowAttributesProcessor());\n }\n provider.addSpanProcessor(spanProcessor);\n provider.register({\n contextManager: conf.contextManager,\n propagator: conf.textMapPropagator,\n });\n (0, instrumentation_1.registerInstrumentations)({\n instrumentations: conf.instrumentations,\n });\n}\nfunction setupOnError() {\n var oldHandler = window.onerror;\n window.onerror = function uptraceOnerrorHandler(message, file, line, column, err) {\n if (oldHandler) {\n oldHandler(message, file, line, column, err);\n }\n if (err) {\n reportException(err, { onerror: true });\n return;\n }\n if (message === 'Script error.') {\n return;\n }\n var attrs = {\n 'window.onerror': true,\n };\n if (file) {\n attrs['code.filepath'] = file;\n }\n if (line) {\n attrs['code.lineno'] = line;\n }\n if (column) {\n attrs['code.colno'] = column;\n }\n reportException(String(message), attrs);\n };\n}\nvar WindowAttributesProcessor = /** @class */ (function () {\n function WindowAttributesProcessor() {\n }\n WindowAttributesProcessor.prototype.forceFlush = function () {\n return Promise.resolve();\n };\n WindowAttributesProcessor.prototype.onStart = function (span) {\n if (window.navigator && window.navigator.userAgent) {\n span.setAttribute('http.user_agent', window.navigator.userAgent);\n }\n if (window.location && window.location.href) {\n span.setAttribute('location.href', location.href);\n }\n };\n WindowAttributesProcessor.prototype.onEnd = function () { };\n WindowAttributesProcessor.prototype.shutdown = function () {\n return Promise.resolve();\n };\n return WindowAttributesProcessor;\n}());\nexports.WindowAttributesProcessor = WindowAttributesProcessor;\n//# sourceMappingURL=uptrace.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSION = void 0;\n// this is autogenerated file, see scripts/version-update.js\nexports.VERSION = '1.11.1';\n//# sourceMappingURL=version.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./uptrace\"), exports);\n__exportStar(require(\"./version\"), exports);\n//# sourceMappingURL=index.js.map","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { trace } from \"@opentelemetry/api\";\nimport { runtime } from \"@synnaxlabs/x\";\nimport uptrace from \"@uptrace/web\";\n\nimport { Instrumentation } from \"@/instrumentation\";\nimport { Logger } from \"@/log\";\nimport { Tracer } from \"@/trace\";\n\nconst configureOpentelemetry = (config: uptrace.Config): void => {\n if (runtime.RUNTIME === \"browser\") {\n uptrace.configureOpentelemetry(config);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const uptrace = require(\"@uptrace/node\");\n uptrace.configureOpentelemetry(config);\n }\n};\n\nconst DEV_DSN = \"http://synnax_dev@localhost:14318/2\";\n\nexport const instrumentation = (): Instrumentation => {\n const serviceName = \"synnax\";\n configureOpentelemetry({\n dsn: DEV_DSN,\n serviceName,\n deploymentEnvironment: \"dev\",\n });\n return new Instrumentation({\n key: \"\",\n serviceName,\n logger: new Logger(),\n tracer: new Tracer(trace.getTracerProvider().getTracer(\"synnax\")),\n });\n};\n"],"names":["TraceFlags","INVALID_SPANID","INVALID_TRACEID","INVALID_SPAN_CONTEXT","NonRecordingSpan","SPAN_KEY","createContextKey","getSpan","context","getActiveSpan","ContextAPI","setSpan","deleteSpan","setSpanContext","getSpanContext","_a","VALID_TRACEID_REGEX","VALID_SPANID_REGEX","isValidTraceId","isValidSpanId","isSpanContextValid","wrapSpanContext","contextApi","NoopTracer","options","isSpanContext","NOOP_TRACER","ProxyTracer","version","NoopTracerProvider","NOOP_TRACER_PROVIDER","ProxyTracerProvider","API_NAME","TraceAPI","registerGlobal","DiagAPI","getGlobal","unregisterGlobal","trace","index","commonjsGlobal","_Scale","_XY","_TimeStamp","_TimeSpan","_Rate","_Density","_TimeRange","_DataType","_Size","src","_globalThis","VERSION","isCompatible","diag","__read","__spreadArray","pack","DiagComponentLogger","logger","DiagLogLevel","self","__values","BaggageImpl","BaseContext","DiagConsoleLogger","__extends","d","b","NoopMeter","NoopMetric","NoopCounterMetric","NoopUpDownCounterMetric","NoopHistogramMetric","NoopObservableMetric","NoopObservableCounterMetric","NoopObservableGaugeMetric","NoopObservableUpDownCounterMetric","ValueType","NoopContextManager","target","SamplingDecision","SpanKind","SpanStatusCode","VALID_KEY_CHAR_RANGE","VALID_KEY","VALID_VENDOR_KEY","VALID_KEY_REGEX","VALID_VALUE_BASE_REGEX","INVALID_VALUE_COMMA_EQUAL_REGEX","validateKey","validateValue","MAX_TRACE_STATE_ITEMS","MAX_TRACE_STATE_LEN","LIST_MEMBERS_SEPARATOR","LIST_MEMBER_KEY_VALUE_SPLITTER","TraceStateImpl","NoopMeterProvider","MetricsAPI","NoopTextMapPropagator","PropagationAPI","W3CBaggagePropagator","TracesSamplerValues","env","performance","ExportResultCode","CompositePropagator","config","TraceState","W3CTraceContextPropagator","isFunction","Deferred","BindOnceFuture","Span","AlwaysOffSampler","AlwaysOnSampler","ParentBasedSampler","TraceIdRatioBasedSampler","BatchSpanProcessorBase","BatchSpanProcessor","RandomIdGenerator","Tracer","api.context","api.trace","api.diag","api.INVALID_SPAN_CONTEXT","api.SpanKind","api.SamplingDecision","api.TraceFlags","NoopDetectorSync","NoopDetector","__assign","__awaiter","__generator","Resource","BrowserDetector","EnvDetectorSync","EnvDetector","BrowserDetectorSync","MultiSpanProcessor","NoopSpanProcessor","ForceFlushState","BasicTracerProvider","errors","ConsoleSpanExporter","InMemorySpanExporter","SimpleSpanProcessor","StackContextManager","WebTracerProvider","PerformanceTimingNames","PTN","OTLPExporterBase","OTLPExporterError","OTLPExporterBrowserBase","baggageUtils.parseKeyPairsIntoRecord","core.hexToBase64","OTLPTraceExporter","instrumentation","InstrumentationAbstract","shimmer.wrap","shimmer.unwrap","shimmer.massWrap","shimmer.massUnwrap","InstrumentationBase","require$$0","Dsn","Client","this","exports","require$$1","require$$2","require$$3","uptrace","require$$4","configureOpentelemetry","WindowAttributesProcessor","runtime"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149]}