diff --git a/deno.json b/deno.json index 6d3dd1a2c5..a0e43fe1b5 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "veryfront", - "version": "0.1.1095", + "version": "0.1.1098", "license": "Apache-2.0", "nodeModulesDir": "auto", "minimumDependencyAge": { diff --git a/deno.lock b/deno.lock index e5073ad958..4c3a7b372d 100644 --- a/deno.lock +++ b/deno.lock @@ -3,10 +3,12 @@ "specifiers": { "jsr:@std/assert@1.0.19": "1.0.19", "jsr:@std/assert@^1.0.17": "1.0.19", + "jsr:@std/assert@^1.0.19": "1.0.19", "jsr:@std/async@^1.1.0": "1.2.0", "jsr:@std/cli@1.0.28": "1.0.28", "jsr:@std/data-structures@^1.0.10": "1.0.11", "jsr:@std/dotenv@0.225.6": "0.225.6", + "jsr:@std/expect@1.0.18": "1.0.18", "jsr:@std/fmt@1.0.9": "1.0.9", "jsr:@std/fs@1.0.23": "1.0.23", "jsr:@std/internal@^1.0.12": "1.0.14", @@ -24,20 +26,20 @@ "npm:@mdx-js/mdx@3.1.1": "3.1.1", "npm:@mdx-js/react@3.1.1": "3.1.1_@types+react@19.2.17_react@19.2.7", "npm:@opentelemetry/api-logs@0.208.0": "0.208.0", - "npm:@opentelemetry/api-logs@0.219.0": "0.219.0", + "npm:@opentelemetry/api-logs@0.220.0": "0.220.0", "npm:@opentelemetry/api@1.9.1": "1.9.1", - "npm:@opentelemetry/auto-instrumentations-node@0.77.0": "0.77.0_@opentelemetry+api@1.9.1_@opentelemetry+core@2.8.0__@opentelemetry+api@1.9.1", - "npm:@opentelemetry/context-async-hooks@2.8.0": "2.8.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/core@2.8.0": "2.8.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/exporter-logs-otlp-http@0.219.0": "0.219.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/exporter-metrics-otlp-http@0.219.0": "0.219.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/exporter-trace-otlp-http@0.219.0": "0.219.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/resources@2.8.0": "2.8.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/sdk-logs@0.219.0": "0.219.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/sdk-metrics@2.8.0": "2.8.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/sdk-node@0.219.0": "0.219.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/sdk-trace-base@2.8.0": "2.8.0_@opentelemetry+api@1.9.1", - "npm:@opentelemetry/semantic-conventions@1.41.1": "1.41.1", + "npm:@opentelemetry/auto-instrumentations-node@0.78.0": "0.78.0_@opentelemetry+api@1.9.1_@opentelemetry+core@2.9.0__@opentelemetry+api@1.9.1", + "npm:@opentelemetry/context-async-hooks@2.9.0": "2.9.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/core@2.9.0": "2.9.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/exporter-logs-otlp-http@0.220.0": "0.220.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/exporter-metrics-otlp-http@0.220.0": "0.220.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/exporter-trace-otlp-http@0.220.0": "0.220.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/resources@2.9.0": "2.9.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/sdk-logs@0.220.0": "0.220.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/sdk-metrics@2.9.0": "2.9.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/sdk-node@0.220.0": "0.220.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/sdk-trace-base@2.9.0": "2.9.0_@opentelemetry+api@1.9.1", + "npm:@opentelemetry/semantic-conventions@1.43.0": "1.43.0", "npm:@redis/client@1.5.8": "1.5.8", "npm:@types/better-sqlite3@7.6.13": "7.6.13", "npm:@types/hast@3.0.3": "3.0.3", @@ -93,6 +95,14 @@ "@std/dotenv@0.225.6": { "integrity": "1d6f9db72f565bd26790fa034c26e45ecb260b5245417be76c2279e5734c421b" }, + "@std/expect@1.0.18": { + "integrity": "8566eab35200466f8609eb7e7aed062ed0db314e9a258d5d201b1b8997ce801a", + "dependencies": [ + "jsr:@std/assert@^1.0.19", + "jsr:@std/internal", + "jsr:@std/path@^1.1.4" + ] + }, "@std/fmt@1.0.9": { "integrity": "2487343e8899fb2be5d0e3d35013e54477ada198854e52dd05ed0422eddcabe0" }, @@ -116,8 +126,8 @@ "integrity": "87bdc2700fa98249d48a17cd72413352d3d3680dcfbdb64947fd0982d6bbf681", "dependencies": [ "jsr:@std/assert@^1.0.17", - "jsr:@std/async@^1.1.0", - "jsr:@std/data-structures@^1.0.10", + "jsr:@std/async", + "jsr:@std/data-structures", "jsr:@std/internal" ] }, @@ -794,8 +804,8 @@ "@opentelemetry/api" ] }, - "@opentelemetry/api-logs@0.219.0": { - "integrity": "sha512-FFx7YnaYJlIjqWW/AG/yAZ0L/NEY724PipXXXQLdtZPbLwBGbUMTGL1i/esI56TWfTUXxhLfpgrnWJCG8aUJyg==", + "@opentelemetry/api-logs@0.220.0": { + "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==", "dependencies": [ "@opentelemetry/api" ] @@ -803,8 +813,8 @@ "@opentelemetry/api@1.9.1": { "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==" }, - "@opentelemetry/auto-instrumentations-node@0.77.0_@opentelemetry+api@1.9.1_@opentelemetry+core@2.8.0__@opentelemetry+api@1.9.1": { - "integrity": "sha512-LkF930Cs+v+ZO/qV6LolbocvFkJJ812BBDyRNjQpwllBA+rFvGtP/voXPuh24QV3JKl5/3c3GulLHvMn8spqkQ==", + "@opentelemetry/auto-instrumentations-node@0.78.0_@opentelemetry+api@1.9.1_@opentelemetry+core@2.9.0__@opentelemetry+api@1.9.1": { + "integrity": "sha512-xbfBSlToc6Svrl1rnFdqU990XeUWZJ2IfcCXMRzGtcWpy8h19NoO9EFpXn9lB3NWtJchPb7BVeEhY4+b+fUuFg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -859,29 +869,29 @@ "@opentelemetry/sdk-node" ] }, - "@opentelemetry/configuration@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-wXZUYv4ngu43nA4WEhuXNacm46LW+17LRM8nKyIhBzroRA24PBYjMnakwzR/w777nFUB5xlgsYTTeuXxumZM1Q==", + "@opentelemetry/configuration@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-glfIVKnZevRin8fY/9uES/mhRtMT1lGINLHc9MIo5fTQZXswEEHamJtgjv4MTtzgnhHGC92mIS/0lzAUZMyE0w==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "yaml" ] }, - "@opentelemetry/context-async-hooks@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-/3FIraneMcng67SUJCxvyInk/oxzwsxyadufk0wwfOBLf5wqtAGX4MoQASwSbndBPeARzBryUM9Azr5kHIdWLw==", + "@opentelemetry/context-async-hooks@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-OQ0vzvbZBiUhjqLnUaoNfYmP8553Crr3aggB4y0ZUi815mZ7idpdJXQmoKdeBKJelYttoBlLSSHubmyw3wvX4w==", "dependencies": [ "@opentelemetry/api" ] }, - "@opentelemetry/core@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==", + "@opentelemetry/core@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/exporter-logs-otlp-grpc@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-7SvzDCIclHWAcCwZ1MTOLcwn4BVNPGI3QxS/DJraPNe1TTL+4TvUBq5zeQV8tsnYvtDN7wKW2qocVmaCP2l7sQ==", + "@opentelemetry/exporter-logs-otlp-grpc@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-s0sRPCSlXYqlgObOpCftomJllp3LfUL9FobQ5csg2172ydVhSEnu1ptpsVBJadazs5nUNp7vDuLE03FAFWTLOQ==", "dependencies": [ "@grpc/grpc-js", "@opentelemetry/api", @@ -892,32 +902,28 @@ "@opentelemetry/sdk-logs" ] }, - "@opentelemetry/exporter-logs-otlp-http@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-mhl2HL6GmZI8b8PwPfqMws/5ovJfbRTxwc9Y5agVVHiQ+e5SL1btsFr/kJDgt7YCexDtsUn5HAreHQO9szFS0A==", + "@opentelemetry/exporter-logs-otlp-http@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-8186thl+pTw64iz/qEEen5oJZoZ/gO73XruChdaGlYdWOdBIQ42r+vHLf6a7vIDqTD4b8ZOoMlyxptanECaI9A==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/core", "@opentelemetry/otlp-exporter-base", "@opentelemetry/otlp-transformer", "@opentelemetry/sdk-logs" ] }, - "@opentelemetry/exporter-logs-otlp-proto@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Ayw4Gf71PS9jhBVaYywa4WsajnqfDehMkTdVH3TSAVHqPcsAv/AhH/wTNRYNt99szeYr6Gbd/D6RjZD77wAxHg==", + "@opentelemetry/exporter-logs-otlp-proto@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-8LZAxdJ0ENDAFwr4j0oY35mHBltiSzvlhdQAPGiC7p9VnxtuSq4SW1gfBAdW6t6hiQG6OwUl8w7KHaOdJPKHWg==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", - "@opentelemetry/core", "@opentelemetry/otlp-exporter-base", "@opentelemetry/otlp-transformer", - "@opentelemetry/resources", - "@opentelemetry/sdk-logs", - "@opentelemetry/sdk-trace-base" + "@opentelemetry/sdk-logs" ] }, - "@opentelemetry/exporter-metrics-otlp-grpc@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-6LaaSrPxK5L55bXevWajvOMxGOpNm0n12tG53TeZaUeNzXwLPg6d2KCC1zAlGsojan+xRG71mA4Qqs9K2VVrKQ==", + "@opentelemetry/exporter-metrics-otlp-grpc@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-U128izvJfX/dW9jRGP0gIfadR1Hg7ft3UEGIeRxLFK70m2BWw6AtNCOnsUygpw2zCgR/ygdWbGpcL6TmhW0ZGw==", "dependencies": [ "@grpc/grpc-js", "@opentelemetry/api", @@ -930,8 +936,8 @@ "@opentelemetry/sdk-metrics" ] }, - "@opentelemetry/exporter-metrics-otlp-http@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-6CaDRbMVHZSDWzNXwrR8y/H4B/Z1eMNnkHiPQlTx3Ojz2OHY4X/aff/UC4P/3pHUQSuTfi3oh2UsPPZppw+Vrg==", + "@opentelemetry/exporter-metrics-otlp-http@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-Yqt3RBw/bRVncaE9qIIhk4WfjbAQqXuP9FgAaU+IKPndnLEp/cUqZlSC324+bpmduRz7DoTjig8Ub0PeILWXUA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -941,8 +947,8 @@ "@opentelemetry/sdk-metrics" ] }, - "@opentelemetry/exporter-metrics-otlp-proto@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-DUS7XyIiEnoeccQUvuKy0G2/YqeKhpN8FVIrGbrLNIVMj10yeIFLRzRv0tibCI2kXXvlTTABVexGAk78wHk2ug==", + "@opentelemetry/exporter-metrics-otlp-proto@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-lyO+IQBdSvqHN/ZOW/OzrSWemtfD+HgWngn+HBNLhjy0YrCQQTz0OE/kSekH2Pl340dn9DWzhqHdz5Eftr+HLA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -953,8 +959,8 @@ "@opentelemetry/sdk-metrics" ] }, - "@opentelemetry/exporter-prometheus@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-TxOnJ85eWJY5JyOJsNMXiRTYlkDcOv0u3KbXEzWCc+tUS9sjL/BC6BcdxZ0B9r2OFVqsrZFXUzSD2sZUy42Ucw==", + "@opentelemetry/exporter-prometheus@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-JZD5DL/NBpVd2BHefvYosm3G40UZ/KzExLv5tc0eZe0CtrsHHtcOk3YPUxR2EINmUeBf8+w5UReTV8fFPn95lA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -963,53 +969,51 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/exporter-trace-otlp-grpc@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-BkDNv1UD6BscW19MxbAxVmSYSSFuyeqR6buV2/HTYqA7GrR0EbTFzqG6h86T3PtXmpdbsWjMGLDdjG2rikG27Q==", + "@opentelemetry/exporter-trace-otlp-grpc@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-bv1xmNhmNwIM6MdUBw4yYuJeVcEViVLk3uD69vOQMwueHBnfyl/u0HnBlB1FNY/Te0UOzJzvcbyR8wN6b+iGbA==", "dependencies": [ "@grpc/grpc-js", "@opentelemetry/api", - "@opentelemetry/core", "@opentelemetry/otlp-exporter-base", "@opentelemetry/otlp-grpc-exporter-base", "@opentelemetry/otlp-transformer", - "@opentelemetry/resources", - "@opentelemetry/sdk-trace-base" + "@opentelemetry/sdk-trace" ] }, - "@opentelemetry/exporter-trace-otlp-http@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-9t6SvBXXBEjOBcIzgozvBbd3jWrv3Gt3ngGhl1fhdZ/zRc7oZDVOFEqbi2zlBpW9BXhgDMKv422J0DL/3iQWfw==", + "@opentelemetry/exporter-trace-otlp-http@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-/+ExB3lRkf+erv4PnoywyL7RHKITidxtUpUTS55k7OQ0dB42S7gEF1gry7swb9MSm1hYLUhJg4QQh9W8SpwwqA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/otlp-exporter-base", "@opentelemetry/otlp-transformer", "@opentelemetry/resources", - "@opentelemetry/sdk-trace-base" + "@opentelemetry/sdk-trace" ] }, - "@opentelemetry/exporter-trace-otlp-proto@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-lF/LUBfhOFmxJa+SQsLN7ziV4MHa2pyKgOM6JNehSOfU+npjM4gwm9oIKEJrzrWcexMcqydiyoFy0XCb1Ql3wQ==", + "@opentelemetry/exporter-trace-otlp-proto@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-voTAD8XgJxlK7zLkXh8EzMB09zrQr3tyY/BsnDTlDiQU/UdK58MZ63A3mUjdEDrxMjCVmBHU3WQJhRmQe+Dvzg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/otlp-exporter-base", "@opentelemetry/otlp-transformer", "@opentelemetry/resources", - "@opentelemetry/sdk-trace-base" + "@opentelemetry/sdk-trace" ] }, - "@opentelemetry/exporter-zipkin@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Mj84UkEa17BK2o903VTXW3wM8CrSZexGs4tRGVZVIMM9ni1T6TuGx5IrRfoWKAbshx42D5/kc7YV+axypLPYyA==", + "@opentelemetry/exporter-zipkin@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-RwINoce2BH8T4obT5pMcAla2sWma1YZvYuaktWmTluQ0PkQdvv5D060rWI1+kawX+J2qBRcMbwrZJJNcMJUauQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/resources", - "@opentelemetry/sdk-trace-base", + "@opentelemetry/sdk-trace", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-amqplib@0.66.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-lyJgobzP0Ce+tRGOkdnrb60apfqU89xB9FeMTmo1TJU007KTMLiLFd4iCfTiBEXzBsVplx7kwrVN4FqGBUcD2Q==", + "@opentelemetry/instrumentation-amqplib@0.67.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-e67iWHIDEJ34eO8Dm11fZ8vhELWeLtW09ghV76dnFSN02QiuxjzP9PJO7+ZPnmqbVps7wxIwdEhQaf75wOR2kQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1017,8 +1021,8 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-aws-lambda@0.71.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-9Sv6flQDeNNF6ZbiLgn+NYJa220yRZdDSIdgDZsqNubpDnYAPF33OHcQDlE8mFiaOq14mngoPS48JnYc8JT+Ug==", + "@opentelemetry/instrumentation-aws-lambda@0.72.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-KE1LBGM9NteXuvE/8Vaol7peQAre8i0TSUgLG5WysdYg+ovb+lPuvgwlHKYWLJuNpsRPsoOmmfKo9+YTJUWGFA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1027,8 +1031,8 @@ "@types/aws-lambda" ] }, - "@opentelemetry/instrumentation-aws-sdk@0.74.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-EMLUGgx2wJSXdwMEFdwd3IaW+mkUF8PENdzDFQ1FRdztzMG1d1XN76ORIjAMsXcKQISlRRcz93AWPQeBPn4EKA==", + "@opentelemetry/instrumentation-aws-sdk@0.75.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-RLosRcyIojBDzX6uPcooDlpJH5UFzbOZXwLp4NKl2FHy0UgmMfQU+mmul12wEohKTDiGumWouw43yRF69NAfbQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1036,25 +1040,26 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-bunyan@0.64.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-jrRNFvpREutmpoWhk1T8n9q/RYdxbViXwSUPHN8yQR1bzgtwfOl/y8G/p8Xfudlky9GGsqw5WRc6q6QrfgF3pw==", + "@opentelemetry/instrumentation-bunyan@0.65.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-VNqQfK2DY8P5iZTIo/2qS72/fY3DSfUGyRqsfJi8HbQ3WTeWwucKcBUWFF3WMvtt4gNyRpZIk/5qKpBLoDKWZw==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/instrumentation", + "@opentelemetry/semantic-conventions", "@types/bunyan" ] }, - "@opentelemetry/instrumentation-cassandra-driver@0.64.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-KN+iOsmPI0nkX2lfgNgHBrHNaDuxDwIbwFrlvyrZ4bAT8bTKcCOXhne70O9qihM8+T1F4tjvPXpCfhKZbmsYiw==", + "@opentelemetry/instrumentation-cassandra-driver@0.65.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-WarpdvKpBzvPHPY9a7f0NJ2JSobnVdy+X4thmtvJ0K8XfsMvrrwYMy1FWe+5K03LPZtmfIQwoerEtC6ly5gsMw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-connect@0.62.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-ZGV2sOyeffqMiqoh4RpsPTs/TUI5cCS+cEWvC9wUfvaEekR5omR6P/ClG+QDwasGBlKx2zfFPjSYPpzUo81XAw==", + "@opentelemetry/instrumentation-connect@0.63.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-Lg13vVEtZe2yvOyLr61qJHSiD1p0+CTMZhV7mlcRuVABPrfrWuqeEKamsZW0r04DP6LOoVZAvIb3iU7DV4/nEA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1063,30 +1068,30 @@ "@types/connect" ] }, - "@opentelemetry/instrumentation-cucumber@0.35.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-H9NsbcFiVOFOcOu40+VOOjxdTeonu0VHI3mte5ie5ka/bazzIPGncQoHpL6su53C3/sgMdKjE6ZuwsB7Y8gQpA==", + "@opentelemetry/instrumentation-cucumber@0.36.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-QqG1j6E3tvUs+1ryUD9o/K3EDCxdffAmtMEzspzCYbC/fawJBCpGaLWbFaA7i90r26qTKwfWDoElCh51lMS7IQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-dataloader@0.36.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-gE0mTk+EnVaBN0mPRM1V6FqzQ9VckTp6ZFIssU5hxy+e3sqspYILBhV/0IHZ33qxGa3B9buLVZnuzVjUISfyoQ==", + "@opentelemetry/instrumentation-dataloader@0.37.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-9w0yRC6nyYYQkxwf3vOEBfxiGjyJaQDhOjpusZFmgOxW2bArtSrV8t2hdeLhU6dXy1Kn/N+yocnhWin2B/xEWQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-dns@0.62.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-6v0X8wEqhIyv2b7MXhmipyCitJfm0vnF5mLBTWXojovoHp7P1EpN5sb12LgdhVlozhGwRZdzb6OvKUVsxKMD8g==", + "@opentelemetry/instrumentation-dns@0.63.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-sq7GI18PzmCBA5ATfT6I9KFiMBneEy2mjB7oKh46ATVbX2rx+kI2QQruJrGE8SYAIcT8uiF2fm0p1HwA06X7og==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-express@0.67.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-1WTWX2YNZIV+jPmEqdf/Vd1gHMT92TKA/0pf/iIItWhV6+RhzhnUUW4kSWQn8L3qVcgWEzQ860/ZOwaIwayi8A==", + "@opentelemetry/instrumentation-express@0.68.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-3ffjIQUFNVP94lLLHlBEgNaomCoP0BLH36Gxmkk3/WKX+1530QKVAnZTleYdM3RVU2EeQFtWSmFMAyCLglqO3w==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1094,38 +1099,38 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-fs@0.38.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-6OBofWODg0RcPkl3bA+7yPf0e4Vi3O7ZxlFGY5QHPMMLxWVMnjWPEXQ2NlLBk19Sr8LcvEyyZOStdLJrT5o2dQ==", + "@opentelemetry/instrumentation-fs@0.39.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-y7xVCHIy1xDIx5X3N1jr/JLHNw57aa3pLAWwmYbvyFJGtQeac/GP7ykwY10QwCFukXvrrxyOYPpMXeICduZzgw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-generic-pool@0.62.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-IhO2y/MaK1oZ4EbUgdkSVT+XViPq86IAz4lwPe9jaba00M2yDWs8+f9xjcH3tK5IC3dZuAxXmifGmfvuJp92jw==", + "@opentelemetry/instrumentation-generic-pool@0.63.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-8750xK6KABe1tQ3sWBfFdenXUaUaa+Qvxztrr/mg7nuNTPbttVDVRzmh6aes2TFDuj+iK232wz9FIETxzVAXLw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-graphql@0.67.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-NMUmuhtYvv3AwkK4zsHQbTCXS81QS63hbNZRKfXc7W8f4KbWeKLmqKqvnfjUcqZoGS0eAw2kNKNYcbtbQ7baAg==", + "@opentelemetry/instrumentation-graphql@0.68.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-ZpL6FYk6NZTuBO5Dh8G7SNBANswTIxCI5qod2pQjF3fsKpxDRHA4FJ6yYK3TdJhFLloMdyRVmE1gMCxG7q6hYQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-grpc@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-GyW1Kfbf7uiJXeBZovB/uXPUdkaZYWzB2ZPCdY2CU7+6V207u8wlCM+zVd3UwhEjOBrMbZAGq+m38aBEI/EVtA==", + "@opentelemetry/instrumentation-grpc@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-U1EF8KKu52XwH2ybUkjVDmaVQZGf3mXirRSw1KJQrOV5aymgJgkPJV7+kRPqawZe0rpVc/BK+pPSyMWuQoyJJQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-hapi@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Whhas9iU0SfK/7XBcgCwfW5c9AaxjxtZpzW21t3Ml8XZ6Irc3hF36JDolMmFa7nUjML9n9bSUAZjwCgrK+2UdQ==", + "@opentelemetry/instrumentation-hapi@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-M3ZTzsFwPcb2mL+skodr94WJ0hMmpkqCb9k3kvZ2THzf+cxBsWYl/gjHZhjfuminKSh5x5gX2A+IeA3lJP4NVA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1133,16 +1138,16 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-host-metrics@0.2.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-NIttCEOLdg1ebbDiJpCf0Ly1OGIa10isesik+K2dnXy2P99q4muUFjpaLtTnhkENrt9SmR0Zrxzq7B+W/VNWyw==", + "@opentelemetry/instrumentation-host-metrics@0.3.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-6Z7xjnOd8xpwFRv85AcsXid7RwjyMohu1XJ8xoduMjbOvXjTSENWm3G279dCY/nJQfO2JKo+ZpG3v0WW+JhNOA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "systeminformation" ] }, - "@opentelemetry/instrumentation-http@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-nNt1fqpyah/OKjNHdEOu8xLwISppRU2qJuF8aR+fCcftVwdFkPgtworBLA+TI1HU2iF508jcQBF2gerWczJAXg==", + "@opentelemetry/instrumentation-http@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-Szt4dO2Boz2CDr38DaSw/lnqwhwKl+IAdgNGEGgSm2Anb+fwPtIAGmIwkhsLLN69QQZQE96JxjMKYY4rlRkYKw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1151,8 +1156,8 @@ "forwarded-parse" ] }, - "@opentelemetry/instrumentation-ioredis@0.67.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-dv64vQ4aXbJvRMMAFrMUSzDeJrNv/uQMLjfaav4LHAOar7Xn08W3pkoYoYEnzq/n2+fGgG96rp9S0gQ+VnLDiw==", + "@opentelemetry/instrumentation-ioredis@0.68.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-M2MWPoKiMlNWzmW7+AwEwiFpTJQ7bhKpZuo9L3MS/z/KFm2yXY6B43IprAVyiszLFg8/JsF39t8b8wkGpxip2g==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1160,24 +1165,24 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-kafkajs@0.28.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-dztkg70nJds3Uc0Xo3NFlRqL5iYgGYWh8myuuGfRC6NnXJchY0Kw9QnBjTZxBSldXU+P6nv2snDVMmlxuy6fEw==", + "@opentelemetry/instrumentation-kafkajs@0.29.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-rNCDUxtvPRRiRAL9Bn5zPWosZ7uE5RS7NDhxIa6DzaUs54GfhqP1DP7l/5jgilTMw8uoAK0/Hq+O2xmBKny8Hw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-knex@0.63.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-XrpRahI/9vTrfSUfkhy8jGX8KMRKecQIPU9GyEZ8gkR030iJwQYsMmKGO5TK9R80cQGUopXwDvV55zmVNEkcPg==", + "@opentelemetry/instrumentation-knex@0.64.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-tKTneLpKFZVz8TOSPM+Iho9XGkm95klIHS5oxjzBfsh0nXS6GBi9pzix86eyYINSpfQBMj4Piie6yC1wsH/QfA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-koa@0.67.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-QOGY4mjqvF85LDcrzwrQXMcsu1wMTALeL1OHyTkLpN/7cnoDtv0W/qMBjHVq4IKYK6yDH4ZDNdwlonJPhwCGcw==", + "@opentelemetry/instrumentation-koa@0.68.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-qem1LDEnrIq8BV+NwxTMy/AGZ4d4kT8Y5xQzJ56ogkhbChzdRKG+hof8taW7bOncNdbu26E17nh2RYuRvpI8sQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1185,15 +1190,15 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-lru-memoizer@0.63.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-DlZRNXfiosmREoLbEGbYuxF70cYXjrYqoaO1sJE167i1+ARWXTq0YMPJ97i53Ws/xkZWllJNYU4mpY2LM2yTlA==", + "@opentelemetry/instrumentation-lru-memoizer@0.64.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-80aCN6z54VFl+xvqe6+GevSteBKN1pmMEM0kW6I0pojFZcyzzyk1CDVVcKwVG/+6uLm8P2pDpLm9gBH+1XwyPw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-memcached@0.62.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-kAajd/MtdRBh9PCrMM4fnusFRNPJDU1dv5w9cgnKtMfutRE6K03wBbGSeT3FD1M56sMYWVqPhiKUhfSZCMZrLg==", + "@opentelemetry/instrumentation-memcached@0.63.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-W1LdUV/+W1MNk9vkLwZrla1bFcjh81t7QQmeaxCPXFXX6VHgzwFp9Wj4atiD4Qch51OVNN988tmPayf49oNM7w==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1201,16 +1206,16 @@ "@types/memcached" ] }, - "@opentelemetry/instrumentation-mongodb@0.72.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-WYgGzvlHzdoxHlrhysYtjxE4RC23j/iFZ66hdMJuAoczOWoD/xb6LhRwaz4CM+LKyKtcSIadAjSUyGv2B+SNwg==", + "@opentelemetry/instrumentation-mongodb@0.73.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-M61+VpaXaLj7euluV+jARBo62tBWrpubSUPIZMpUnjOM90nqCQCj8gpyhDP1rVgzQt2LoTIzcdWnKq/DEkzMog==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-mongoose@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-P0iT4oKuinEFZlTIKPJC5hhnmiV9De9lEiLkGzSwnNLdkyHIWug8BfRp5ZROrYAQ9mm47H+WLB/ozvUvgzEvEA==", + "@opentelemetry/instrumentation-mongoose@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-CxzRijJCexHnucPDuKSz1PTJf6+t0VJxFDNQtoCwSPo8eGXKoEuJ/I4V2kMQjMbcY4qISN3Efa+7TL5Zy6zqTA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1218,8 +1223,8 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-mysql2@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Om6BJ/bmFBzNkGbAzj/UV5sCKX6jCGzhTl1Gqgtim/O0dnPE7F2zN65u16Fq3JgyypGAwT2iwh13tYdWkc8/RA==", + "@opentelemetry/instrumentation-mysql2@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-rlGII5qTWklt9oGdmQzMDGjEpcQ3wf+rD6JCmPTe7nXJZSxibxgWvmFGGTZjq3Tu0wqHGJ9GWM1A5PphM2NTRA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1227,8 +1232,8 @@ "@opentelemetry/sql-common" ] }, - "@opentelemetry/instrumentation-mysql@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-sh1wRjFaTt+8DOhJ0134rFtJoHVUXKI8faIWTbj4zZNw847dzUgmkO8xOluJ9Css0JzT4vCeZofJmq9mQmmESA==", + "@opentelemetry/instrumentation-mysql@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-kfbyFeHOV/RzmRifWJflpBTCrYz4vD5j8IVqjSreaAPGOvKHj/fflwqNwdi7cy4QRmm7vVkxqTvM7q0+ZF58CA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1236,33 +1241,33 @@ "@types/mysql" ] }, - "@opentelemetry/instrumentation-nestjs-core@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-/q8fN2M2zGl+gQRaF79dzqvyvVqHAI11c7xAQZy9W1eAtQScNwaQtPm0EUo5+aOgakaTksBrsiHUF0rQS24NsQ==", + "@opentelemetry/instrumentation-nestjs-core@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-ZCzcTWXwlmQsLWGARbUz5fCLpYABoo5A/3PuV5+iICV3pmKWT0rRdKDevkRo0prbzJVh9oEyuT1idxI8ipDqXg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-net@0.63.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-fvmVdL4SlsYZf74mq6iLBPd6JJHRAe5utzN7Wt9e4nwa2S3pgExA9poOEmBL1CvIR47MceTA/A8vgVCF23ebbw==", + "@opentelemetry/instrumentation-net@0.64.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-AHIZAC0M969fRsFvYkpxbTYiNxyeyMA069uvwTtcUrkwZpE6BW/45Ap+YGMnIoLNdRCPKbsphoW9xXT4VpLJBw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-openai@0.17.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-X3aEZnzj7SJkn1nmqEoD9IljmqENnGrd0vcJngcEApT8uqhFaeimONqKeIzKYvUgC7k4OkAUxC7yfXzxIK1KlA==", + "@opentelemetry/instrumentation-openai@0.18.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-hk/AXskFOOGlZx7X6pewnyJLSTvW4DbXL/EOoxPS8xHY63B6hg4HVAmE4bdI48/qG6mM4jVod7/0XROghgPT5Q==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-oracledb@0.44.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-ncEfP4rzuZXBHJJtzWLYctK4Pq/FvZRiASxlFY9CJG9kGjaFTfzBUys0NiP27alYPvpjj0uDAMheDk9nihO8ZA==", + "@opentelemetry/instrumentation-oracledb@0.45.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-Zhyxfzuh2oUktjGfwuq2gSGieMr3x1NDnjVYpdlEsTBD8fA9aCvjQQHrjp/vSPOEk3YOD9fZ2HnxsgX63/MBmg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1270,8 +1275,8 @@ "@types/oracledb" ] }, - "@opentelemetry/instrumentation-pg@0.71.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-jAhfyZeOkEKh3cQ5nm1tNWqHg7HFARyAe+p4BSoDHnB79c1woyEvDKqS11Hj/DjtceP+vrurIfcDs7Fqiy11mQ==", + "@opentelemetry/instrumentation-pg@0.72.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-p9xrFc/6R8t6Y293sTYLZ83LnzZo/qY0bBPA4xabdQt0Qjt8i1SlYFsIeGY2Jmf5WcESNUdjQB3NxWnt5Ox7zw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1282,17 +1287,18 @@ "@types/pg-pool" ] }, - "@opentelemetry/instrumentation-pino@0.65.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-p6eh+NRmzi1F+/4QG7XDqRk4ICdCNTsM5vdcwUPnpMie2MddgY1/ENmWvCF9r0Kh6QQRA2kkpnhoJFaiRQ5kVw==", + "@opentelemetry/instrumentation-pino@0.66.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-RMAtAYuyouaMbHkQG8E97nJfwHftxmCbOURdD3n5s2Yd5zctLNudXB5hAfW18lsfUbePwQCND6QUXZixFN92Pw==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/core", - "@opentelemetry/instrumentation" + "@opentelemetry/instrumentation", + "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-redis@0.67.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-TBjO4bPvfGH6bRjJJ+KrJhEqpHg3SWCFZ84MqsTWF639RQZmvkMhT2/DJsBAqqkq33IvHoDJysserqAfZN1s+Q==", + "@opentelemetry/instrumentation-redis@0.68.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-D5N4CLWLjBRFa1Ee8D1U1tWCkED+Ob0AMzQlYJjlnnqfw0ofRMaJmoUrdI5ASKEcfDezzhELT1Slo4VesDpA/w==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1300,8 +1306,8 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-restify@0.64.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-X+gL4KpfPAx7Y07zKQVtyJPckhCcYJdSlEz0Kq0iR5nkQ8/AVWJ05/txl4voZbZdCuNdn+uLZTtJ60bAQwputQ==", + "@opentelemetry/instrumentation-restify@0.65.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-vdgtqK+uVf66FTjR6eVrveORtG7Jz5+Tlc4SvWCmtc1/2DYZ+IQuWQ9HPMJcFpcPkRXfiN1QNvZDPIe1Mlvopw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1309,32 +1315,32 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-router@0.63.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-zIpsZSHGvbaqiEazwUm1X0FkPnLXIwZcL/llu/UplkeGNU58bsw70l2uMqNqTb7J+tzsBC09CLVPty5BhW3X9Q==", + "@opentelemetry/instrumentation-router@0.64.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-C6PCzQYXYbmhhIjZQaAPCWchOe7Y/JLX9usj80xHEcEniOx2hFE1pUXneYZKcnFf8vuXjbYOUSlKkMd2WctirA==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-runtime-node@0.32.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Jo1jSgrHlah3lPpGNPsIpF0q52D5uSLRJrztWUoPc1/Tli2ZWZ+cArgNtcdmiLuKhW21MwYbbcrNw1fbOPeR3A==", + "@opentelemetry/instrumentation-runtime-node@0.33.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-P4PFhufcbAeeZNNl5e4xDoWs7GieSebPuiWhe6V60yoSzL8OO4EkQU61g29O/PiypGQ/ay89n13htkMH2nxocg==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/core", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-socket.io@0.66.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-XrZmLkFJktVLd3biQiP8BAhupRwPWLHGIiDCfyDAnWI6borIL0wD6BpwFKKPT/etpu4/5OaeAQ7qs/S+FY9nhQ==", + "@opentelemetry/instrumentation-socket.io@0.67.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-fFJAh42goV9iOehmG97ycC+hPdW3d2HkoK2/ybD/OOuQYUsJ3JxwD5owtS71lQckZeDYF7NEb6hAZM+JS3iwCg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation-tedious@0.38.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-9sRWyIMBHDqJvxRVZ+eQ7jHJ9Iu+DapO27WLZbQF1nyD8xIvEMuDonQ/HnlQiaRdwnqFknXSQTFusJUT3mNVyQ==", + "@opentelemetry/instrumentation-tedious@0.39.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-CMIg+CASssmkQWL+Ep+SSjstxr8blJeRL6RjLxlcEejBZeEj/0450pkSrZ7NtFcXpVqSLMd3+gEzkN55jWgP2A==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/instrumentation", @@ -1342,8 +1348,8 @@ "@types/tedious" ] }, - "@opentelemetry/instrumentation-undici@0.29.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-SnA+0XgGc595jtnwFVfWy7Vgfr5hle4D5YKIlm0U4z8aK9YoCZVUn1xAkVZ2evaJyykiDF50FBzr1XZ0uj8CPA==", + "@opentelemetry/instrumentation-undici@0.30.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-VgxMzeR14uPEVqEC5b55m4KijEe+gQAgJ4jjWCE7h5i2Q76nS4y7OWDk8V+XkD4zK9bbJyWEK+a2DqtGP/fCuw==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1351,33 +1357,33 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/instrumentation-winston@0.63.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-NFMHLYODph0rWGfT/QLv75hCsu1sxVAV79L8HduBCMo181jOTSRZHaqxfrvDtFOsvgYBaiUBa7Ga50w47wM3FA==", + "@opentelemetry/instrumentation-winston@0.64.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-N4dJ0Var+deL2FKQn2TNPKLma8c/vgR0dL89I57eNBcV+5rGj3tk4glSDJqd9BQqkKuZ8+C4bAlCtVHHBsqdKw==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/instrumentation" ] }, - "@opentelemetry/instrumentation@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-X5t7I8GyIO9rmGHwoedZLREpQqrF1WW2nxzNNym6HOKpFiE+rvqV3ngC0xcZVO2YwIGf3KKmRdWrYwdwz3H9RQ==", + "@opentelemetry/instrumentation@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "import-in-the-middle", "require-in-the-middle" ] }, - "@opentelemetry/otlp-exporter-base@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-zvIxQX/AZUVKDU+hCuYx+7UkiP7GRdnk1ZbFQRYzHvYp47cAWR4j3IhoPhV9KaeXEv2xdGq3IA6PnpzDmLcmSA==", + "@opentelemetry/otlp-exporter-base@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/otlp-transformer" ] }, - "@opentelemetry/otlp-grpc-exporter-base@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-iIk/s8QQu39zpTrRRmsW/Eg3SE2+Hg8tLWepr2FLRgmwUpNd0IpCTLJEHJ77hpt4hgIS8MAh44UYI4xQPZwWlw==", + "@opentelemetry/otlp-grpc-exporter-base@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-/eIkBPMBTIvM3x/0mDX4aJeSkYifYClnBPr68PL1h5LV4VQv4+SV6CGrpiZ4fIWDnobVmhTWCm1J/QRdAWUfvA==", "dependencies": [ "@grpc/grpc-js", "@opentelemetry/api", @@ -1386,16 +1392,16 @@ "@opentelemetry/otlp-transformer" ] }, - "@opentelemetry/otlp-transformer@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-aaYKAyXhw9VchKZVGOopD3Gw/kPsyrX2c6IQ0AW32mTjqmZOh5Y6Gf5OYqTNqVktAeBjmFinhyFaCwW6GYK9YQ==", + "@opentelemetry/otlp-transformer@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/core", "@opentelemetry/resources", "@opentelemetry/sdk-logs", "@opentelemetry/sdk-metrics", - "@opentelemetry/sdk-trace-base" + "@opentelemetry/sdk-trace" ] }, "@opentelemetry/propagator-aws-xray@2.2.0_@opentelemetry+api@1.9.1": { @@ -1404,15 +1410,15 @@ "@opentelemetry/api" ] }, - "@opentelemetry/propagator-b3@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-SazlvuSKi5533rPHTW2TwBwdMakhjZST4SYs0YauuvfGDkT13KbG1gJS75hV0uWVeevhtVP9sAIlaZLTHdSbMg==", + "@opentelemetry/propagator-b3@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-WrOT1WsOUG+B7hstD2RYoMPIOK76G8E9AQHhMjUvrQaGx/oA7rPWQvvr1Rqv7+yy4R0ZMVwWLC4vW2xnkgWPAQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core" ] }, - "@opentelemetry/propagator-jaeger@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-Xnz9zZvvQzUw+9DrOn0MomR7BxFCkA2pcfXBQuHC28ndJpSbjLs7knzYb05kw5SyCjSsEWombkZMgGcJSk8JVg==", + "@opentelemetry/propagator-jaeger@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-4mYGty27rYvSM0jtp1ZUOqd3LfVRCYg9H5G9OFzSx5HViYToU21MFhWfco7x1HwXr7ER8yGOiCIHZUwjPksc0Q==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core" @@ -1421,8 +1427,8 @@ "@opentelemetry/redis-common@0.38.3": { "integrity": "sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==" }, - "@opentelemetry/resource-detector-alibaba-cloud@0.34.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-hUs4CK7MbRfffw8y5zR4Mo37MJRR3Zt8Ub4rgMkIk7gL8jozjV7k+zwIk9grz5kGAuD406BDDIghaY8090K4Zw==", + "@opentelemetry/resource-detector-alibaba-cloud@0.35.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-IACBakM0z30CsASN6VSrpZi89+Ot4ZUerW8+6CdBFhdAZO+XGh0m4LigN6lh4yzUaqqva/SmH9yHeFfuctIY/A==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1438,8 +1444,8 @@ "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/resource-detector-azure@0.27.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-m6HCEmK12QpEcWbKtvGpQtoDVceXtpB14AaaW/t5f6gHeLuGq1QivkuohkvKMkxgAdwIHxEQ8qof3whWBpd8JA==", + "@opentelemetry/resource-detector-azure@0.28.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-YMMgH/ZIiZgy2CHTHjOBNEYhcsi/l67Q272vAgwMqegRFIME4KljDhmTmjLGzjE3b0sErLtXBqF8Y/3bKn89+Q==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1455,8 +1461,8 @@ "@opentelemetry/resources" ] }, - "@opentelemetry/resource-detector-gcp@0.54.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-u+6sBzQO03QQGFhxjzFa7uNbH6iQpWTcrpWyomxuppH3AN/+1mm3DRVseS1CiRq9VBKrFO0UosWAdD7fWVUrrg==", + "@opentelemetry/resource-detector-gcp@0.55.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-uWU27lJcTbeXDY+uWEapsIyMx8mKi14/IGvUY1DkmMmLQnKRibnbpZEsRVeWBPdjOWSjH9LfWTXp9yDcBHZOeg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", @@ -1464,37 +1470,37 @@ "gcp-metadata" ] }, - "@opentelemetry/resources@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-qmXQ27ilDbUK/vGMqwL8D4/rhn76C+sherM4wTbjlfknR8Nvfc/hCxjRJPhkzZzUsPiNg16SA31NxMabwttRjg==", + "@opentelemetry/resources@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/sdk-logs@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-s6lTKRakaPClvKoWHRChxnXjDMkM/TQ30ff78jN6EBGf7MI7VzANE5PU3f4z9qDUudWjvZjOLHG0rBnBKYvoXA==", + "@opentelemetry/sdk-logs@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/core", "@opentelemetry/resources", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/sdk-metrics@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-UDBGaj6W0Rgy5rTTaoxs8gVGF/aGkAKyjurJv7se6wjRxJu7FoquTLT/vt54DZfo4crbprYfhX/SOK9+BPw1qg==", + "@opentelemetry/sdk-metrics@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/resources" ] }, - "@opentelemetry/sdk-node@0.219.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-NWLpWLEb8gV3+JBHYoIrktbM385wyHpRJoh3J/4Q52d4PR+AlPMNGJT3DzBUrDSUEVbKAXoHR+EDAPxtiNcj8g==", + "@opentelemetry/sdk-node@0.220.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-wHtGyHhSKHNH3fym33xRu4Ef/HXTFvX8eQ42xdQdEO9LYx9Y2qNyBDJytyqVlvmo6abWZlNYTUthuAGUMYqYnQ==", "dependencies": [ "@opentelemetry/api", - "@opentelemetry/api-logs@0.219.0", + "@opentelemetry/api-logs@0.220.0", "@opentelemetry/configuration", "@opentelemetry/context-async-hooks", "@opentelemetry/core", @@ -1517,22 +1523,24 @@ "@opentelemetry/resources", "@opentelemetry/sdk-logs", "@opentelemetry/sdk-metrics", + "@opentelemetry/sdk-trace", "@opentelemetry/sdk-trace-base", "@opentelemetry/sdk-trace-node", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/sdk-trace-base@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-mhU4jp+vW0mGbFRd+GeXHvmfA4aDqWjBjLC3pE5XMpLs0IE2ryYb019Ts2AQrOq67gaTF25D91+fgvEHDZEnuQ==", + "@opentelemetry/sdk-trace-base@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-cp9zmTl62R8PJrpvFcmc8N2JQU/xfa0S+61q511Nji+QxCfZ8Ifvg7H27G8cANe4crg4RTrWsVvanHiXjSp6ag==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/core", "@opentelemetry/resources", + "@opentelemetry/sdk-trace", "@opentelemetry/semantic-conventions" ] }, - "@opentelemetry/sdk-trace-node@2.8.0_@opentelemetry+api@1.9.1": { - "integrity": "sha512-nZt9OGufioAc3AfoLTqA9bsAeaMJAictYDdI2VcNQ+PmT+3rfKjAZDZvgPfd8VPX0O5Bw1hdQF6kDK8VSpZiWg==", + "@opentelemetry/sdk-trace-node@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-ec9a7ps37huy5itYk0MalaZdSLlM6AXWp/FhtEjgMpp5leEGojBDvAl/UWttQnkMZOvFHKzRESn8TD3yKTF5nQ==", "dependencies": [ "@opentelemetry/api", "@opentelemetry/context-async-hooks", @@ -1540,8 +1548,17 @@ "@opentelemetry/sdk-trace-base" ] }, - "@opentelemetry/semantic-conventions@1.41.1": { - "integrity": "sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==" + "@opentelemetry/sdk-trace@2.9.0_@opentelemetry+api@1.9.1": { + "integrity": "sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==", + "dependencies": [ + "@opentelemetry/api", + "@opentelemetry/core", + "@opentelemetry/resources", + "@opentelemetry/semantic-conventions" + ] + }, + "@opentelemetry/semantic-conventions@1.43.0": { + "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==" }, "@opentelemetry/sql-common@0.42.0_@opentelemetry+api@1.9.1": { "integrity": "sha512-nwUwUU+8O8a4bnLqk6CodWeegGMEANgC94KTAhXcpGWLrW/2/hek/0ajNbjXnSOoNuCX+nteUPs46HFHhou9Xw==", @@ -1882,8 +1899,8 @@ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", "deprecated": true }, - "brace-expansion@2.1.1": { - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "brace-expansion@2.1.2": { + "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", "dependencies": [ "balanced-match@1.0.2" ] @@ -2088,8 +2105,8 @@ "es-module-lexer@2.0.0": { "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==" }, - "es-module-lexer@2.3.0": { - "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==" + "es-module-lexer@2.3.1": { + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==" }, "es6-error@4.1.1": { "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" @@ -2575,11 +2592,11 @@ "immediate@3.0.6": { "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "import-in-the-middle@3.3.0": { - "integrity": "sha512-v4+k+PLt4z6g2ydEcXhfinTJxfgKJDWOW0v0GZNA5n2qToHFObpH4nGLhJdwnXnX4T14oREx/M62dS9GkpmSbQ==", + "import-in-the-middle@3.3.1": { + "integrity": "sha512-0rymlHSFLwZ0ixx8DaQkoIyZojJPY2a0K2nEYslhKJ6jIYO/m0IcCb7iQsFPmS7WmKwISZiIrv5Icstrw/CmqA==", "dependencies": [ "cjs-module-lexer", - "es-module-lexer@2.3.0", + "es-module-lexer@2.3.1", "module-details-from-path" ] }, @@ -3330,7 +3347,7 @@ "minimatch@9.0.9": { "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dependencies": [ - "brace-expansion@2.1.1" + "brace-expansion@2.1.2" ] }, "minimist@1.2.8": { @@ -4024,8 +4041,8 @@ "symbol-tree@3.2.4": { "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "systeminformation@5.31.13": { - "integrity": "sha512-iUJXJoKzm4vtLSeT3nwe2s9QjoJAxHg7wYJ0KaQ54Xy2u9jsTq0ULWQQ0+T72FXjX2XnGqubazNx9lUfng7ELw==", + "systeminformation@5.32.0": { + "integrity": "sha512-7gfXs43T91miPxxTTtrYitotR/8MPsI2gy3XgUMs6kmOE/JCVqZp6nJpx4XkSutoSqDh6+Y2ovvb2A3RQCR+8w==", "os": ["darwin", "linux", "win32", "freebsd", "openbsd", "netbsd", "sunos", "android"], "bin": true }, @@ -5211,20 +5228,20 @@ "dependencies": [ "jsr:@std/assert@1.0.19", "jsr:@std/testing@1.0.17", - "npm:@opentelemetry/api-logs@0.219.0", + "npm:@opentelemetry/api-logs@0.220.0", "npm:@opentelemetry/api@1.9.1", - "npm:@opentelemetry/auto-instrumentations-node@0.77.0", - "npm:@opentelemetry/context-async-hooks@2.8.0", - "npm:@opentelemetry/core@2.8.0", - "npm:@opentelemetry/exporter-logs-otlp-http@0.219.0", - "npm:@opentelemetry/exporter-metrics-otlp-http@0.219.0", - "npm:@opentelemetry/exporter-trace-otlp-http@0.219.0", - "npm:@opentelemetry/resources@2.8.0", - "npm:@opentelemetry/sdk-logs@0.219.0", - "npm:@opentelemetry/sdk-metrics@2.8.0", - "npm:@opentelemetry/sdk-node@0.219.0", - "npm:@opentelemetry/sdk-trace-base@2.8.0", - "npm:@opentelemetry/semantic-conventions@1.41.1" + "npm:@opentelemetry/auto-instrumentations-node@0.78.0", + "npm:@opentelemetry/context-async-hooks@2.9.0", + "npm:@opentelemetry/core@2.9.0", + "npm:@opentelemetry/exporter-logs-otlp-http@0.220.0", + "npm:@opentelemetry/exporter-metrics-otlp-http@0.220.0", + "npm:@opentelemetry/exporter-trace-otlp-http@0.220.0", + "npm:@opentelemetry/resources@2.9.0", + "npm:@opentelemetry/sdk-logs@0.220.0", + "npm:@opentelemetry/sdk-metrics@2.9.0", + "npm:@opentelemetry/sdk-node@0.220.0", + "npm:@opentelemetry/sdk-trace-base@2.9.0", + "npm:@opentelemetry/semantic-conventions@1.43.0" ] }, "extensions/ext-parser-babel": { diff --git a/extensions/ext-observability-opentelemetry/deno.json b/extensions/ext-observability-opentelemetry/deno.json index 8fd22525c8..fd01dca190 100644 --- a/extensions/ext-observability-opentelemetry/deno.json +++ b/extensions/ext-observability-opentelemetry/deno.json @@ -53,19 +53,19 @@ }, "imports": { "@opentelemetry/api": "npm:@opentelemetry/api@1.9.1", - "@opentelemetry/auto-instrumentations-node": "npm:@opentelemetry/auto-instrumentations-node@0.77.0", - "@opentelemetry/core": "npm:@opentelemetry/core@2.8.0", - "@opentelemetry/context-async-hooks": "npm:@opentelemetry/context-async-hooks@2.8.0", - "@opentelemetry/api-logs": "npm:@opentelemetry/api-logs@0.219.0", - "@opentelemetry/exporter-logs-otlp-http": "npm:@opentelemetry/exporter-logs-otlp-http@0.219.0", - "@opentelemetry/exporter-metrics-otlp-http": "npm:@opentelemetry/exporter-metrics-otlp-http@0.219.0", - "@opentelemetry/sdk-logs": "npm:@opentelemetry/sdk-logs@0.219.0", - "@opentelemetry/sdk-metrics": "npm:@opentelemetry/sdk-metrics@2.8.0", - "@opentelemetry/sdk-node": "npm:@opentelemetry/sdk-node@0.219.0", - "@opentelemetry/sdk-trace-base": "npm:@opentelemetry/sdk-trace-base@2.8.0", - "@opentelemetry/exporter-trace-otlp-http": "npm:@opentelemetry/exporter-trace-otlp-http@0.219.0", - "@opentelemetry/resources": "npm:@opentelemetry/resources@2.8.0", - "@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@1.41.1", + "@opentelemetry/auto-instrumentations-node": "npm:@opentelemetry/auto-instrumentations-node@0.78.0", + "@opentelemetry/core": "npm:@opentelemetry/core@2.9.0", + "@opentelemetry/context-async-hooks": "npm:@opentelemetry/context-async-hooks@2.9.0", + "@opentelemetry/api-logs": "npm:@opentelemetry/api-logs@0.220.0", + "@opentelemetry/exporter-logs-otlp-http": "npm:@opentelemetry/exporter-logs-otlp-http@0.220.0", + "@opentelemetry/exporter-metrics-otlp-http": "npm:@opentelemetry/exporter-metrics-otlp-http@0.220.0", + "@opentelemetry/sdk-logs": "npm:@opentelemetry/sdk-logs@0.220.0", + "@opentelemetry/sdk-metrics": "npm:@opentelemetry/sdk-metrics@2.9.0", + "@opentelemetry/sdk-node": "npm:@opentelemetry/sdk-node@0.220.0", + "@opentelemetry/sdk-trace-base": "npm:@opentelemetry/sdk-trace-base@2.9.0", + "@opentelemetry/exporter-trace-otlp-http": "npm:@opentelemetry/exporter-trace-otlp-http@0.220.0", + "@opentelemetry/resources": "npm:@opentelemetry/resources@2.9.0", + "@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@1.43.0", "@std/assert": "jsr:@std/assert@1.0.19", "@std/testing/bdd": "jsr:@std/testing@1.0.17/bdd", "veryfront/extensions": "../../src/extensions/index.ts", diff --git a/extensions/ext-observability-opentelemetry/src/index.ts b/extensions/ext-observability-opentelemetry/src/index.ts index 2ff02c679c..bd0cfaad49 100644 --- a/extensions/ext-observability-opentelemetry/src/index.ts +++ b/extensions/ext-observability-opentelemetry/src/index.ts @@ -936,12 +936,12 @@ class OtlpTracingExporter implements TracingExporter { this.logProvider = new otel.sdkLogs.LoggerProvider({ resource, processors: [ - new otel.sdkLogs.BatchLogRecordProcessor( - new otel.logsExporter.OTLPLogExporter({ + new otel.sdkLogs.BatchLogRecordProcessor({ + exporter: new otel.logsExporter.OTLPLogExporter({ url: cfg.logsUrl, headers: cfg.logsHeaders, }), - ), + }), ], }); otel.apiLogs.logs.setGlobalLoggerProvider(this.logProvider); @@ -1100,12 +1100,12 @@ class OpenTelemetryNodeTelemetryProvider implements NodeTelemetryProvider { const logRecordProcessors = logsEnabled ? [ - new otel.sdkLogs.BatchLogRecordProcessor( - new otel.logsExporter.OTLPLogExporter({ + new otel.sdkLogs.BatchLogRecordProcessor({ + exporter: new otel.logsExporter.OTLPLogExporter({ url: options.logsEndpoint, headers: headersOrDefault(options.logsHeaders, options.exporterHeaders), }), - ), + }), ] : []; diff --git a/src/rendering/orchestrator/module-loader/esm-rewriter.test.ts b/src/rendering/orchestrator/module-loader/esm-rewriter.test.ts index 42b64699b8..8ceb608a3d 100644 --- a/src/rendering/orchestrator/module-loader/esm-rewriter.test.ts +++ b/src/rendering/orchestrator/module-loader/esm-rewriter.test.ts @@ -1,7 +1,8 @@ import "#veryfront/schemas/_test-setup.ts"; -import { assertEquals } from "#veryfront/testing/assert.ts"; -import { describe, it } from "#veryfront/testing/bdd.ts"; -import { rewriteEsmPaths } from "./esm-rewriter.ts"; +import { assertEquals, assertMatch, assertRejects } from "#veryfront/testing/assert.ts"; +import { afterEach, beforeEach, describe, it } from "#veryfront/testing/bdd.ts"; +import type { RuntimeAdapter } from "#veryfront/platform/adapters/base.ts"; +import { fetchEsmModule, rewriteEsmPaths } from "./esm-rewriter.ts"; describe("rendering/orchestrator/module-loader/esm-rewriter", () => { describe("rewriteEsmPaths", () => { @@ -55,4 +56,115 @@ describe("rendering/orchestrator/module-loader/esm-rewriter", () => { assertEquals(result.includes('"react"'), true); }); }); + + describe("fetchEsmModule", () => { + const tmpDir = "/tmp/esm-rewriter-test"; + const files = new Map(); + const localAdapter = { + fs: { + writeFile(path: string, content: string) { + files.set(path, content); + return Promise.resolve(); + }, + }, + } as unknown as RuntimeAdapter; + let originalFetch: typeof fetch; + + beforeEach(() => { + files.clear(); + originalFetch = globalThis.fetch; + }); + + afterEach(() => { + globalThis.fetch = originalFetch; + }); + + function jsonResponse(body: string, status = 200): Response { + return new Response(body, { + status, + headers: { "Content-Type": "application/javascript" }, + }); + } + + it("resolves the top-level URL when all nested URLs succeed", async () => { + const esmCache = new Map(); + globalThis.fetch = ((input: RequestInfo | URL) => { + const url = typeof input === "string" ? input : input.toString(); + if (url === "https://esm.sh/root") { + return Promise.resolve( + jsonResponse(`import { a } from "https://esm.sh/a";`), + ); + } + if (url === "https://esm.sh/a") return Promise.resolve(jsonResponse(`export const a = 1;`)); + return Promise.resolve(new Response("not found", { status: 404 })); + }) as typeof fetch; + + const result = await fetchEsmModule("https://esm.sh/root", tmpDir, localAdapter, esmCache); + assertEquals(result.startsWith(tmpDir), true); + // The root's reference to the nested URL should have been rewritten to + // the cached file path. + const rootContent = files.get(result) ?? ""; + assertMatch(rootContent, /file:\/\//); + assertEquals(/esm\.sh\/a/.test(rootContent), false); + }); + + it("does not abort the render when a nested URL fetch fails", async () => { + const esmCache = new Map(); + globalThis.fetch = ((input: RequestInfo | URL) => { + const url = typeof input === "string" ? input : input.toString(); + if (url === "https://esm.sh/root") { + return Promise.resolve( + jsonResponse( + `import { a } from "https://esm.sh/a";\nimport("https://esm.sh/broken");`, + ), + ); + } + if (url === "https://esm.sh/a") return Promise.resolve(jsonResponse(`export const a = 1;`)); + if (url === "https://esm.sh/broken") { + return Promise.resolve(new Response("upstream broken", { status: 500 })); + } + return Promise.resolve(new Response("not found", { status: 404 })); + }) as typeof fetch; + + const result = await fetchEsmModule("https://esm.sh/root", tmpDir, localAdapter, esmCache); + const rootContent = files.get(result) ?? ""; + // Successful URL replaced with file://; failed URL preserved for runtime + // resolution instead of aborting the whole render. + assertMatch(rootContent, /file:\/\//); + assertMatch(rootContent, /esm\.sh\/broken/); + }); + + it("still throws when a nested URL is imported statically", async () => { + // The emitted module's own import graph must be local before the runtime + // loader is handed it. Leaving a static dependency remote would change + // that contract, so this failure stays fatal. + const esmCache = new Map(); + globalThis.fetch = ((input: RequestInfo | URL) => { + const url = typeof input === "string" ? input : input.toString(); + if (url === "https://esm.sh/root") { + return Promise.resolve(jsonResponse(`import { b } from "https://esm.sh/broken";`)); + } + if (url === "https://esm.sh/broken") { + return Promise.resolve(new Response("upstream broken", { status: 500 })); + } + return Promise.resolve(new Response("not found", { status: 404 })); + }) as typeof fetch; + + await assertRejects( + () => fetchEsmModule("https://esm.sh/root", tmpDir, localAdapter, esmCache), + Error, + ); + }); + + it("still throws when the top-level URL itself fails", async () => { + const esmCache = new Map(); + globalThis.fetch = + (() => Promise.resolve(new Response("upstream broken", { status: 500 }))) as typeof fetch; + + await assertRejects( + () => fetchEsmModule("https://esm.sh/root", tmpDir, localAdapter, esmCache), + Error, + ); + }); + }); }); diff --git a/src/rendering/orchestrator/module-loader/esm-rewriter.ts b/src/rendering/orchestrator/module-loader/esm-rewriter.ts index 663847f080..e2461c1b78 100644 --- a/src/rendering/orchestrator/module-loader/esm-rewriter.ts +++ b/src/rendering/orchestrator/module-loader/esm-rewriter.ts @@ -2,11 +2,34 @@ import { rendererLogger } from "#veryfront/utils"; import { MODULE_NOT_FOUND } from "#veryfront/errors"; import type { RuntimeAdapter } from "#veryfront/platform/adapters/base.ts"; import { generateHash } from "./cache.ts"; +import { parseImports } from "#veryfront/transforms/esm/lexer.ts"; const logger = rendererLogger.component("module-loader"); type PathResolver = (path: string) => string; +/** + * Specifiers `code` imports statically, as opposed to through `import(...)` or + * merely mentioning in a string. + * + * A lex failure returns every discovered specifier as static, so an unparseable + * bundle keeps the pre-graceful-degradation behaviour of failing loudly rather + * than quietly shipping a remote dependency. + */ +async function staticImportSpecifiers(code: string): Promise> { + try { + const imports = await parseImports(code); + return new Set( + imports.filter((imp) => imp.d === -1 && imp.n).map((imp) => imp.n as string), + ); + } catch (error) { + logger.debug("Could not lex a fetched module; treating its imports as static", { + error: error instanceof Error ? error.message : String(error), + }); + return new Set(code.match(/https:\/\/esm\.sh\/[^"']+/g) ?? []); + } +} + function escapeRegExp(value: string): string { return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } @@ -77,7 +100,15 @@ export async function fetchEsmModule( } const urlArray = Array.from(allEsmUrls); - const cachedPaths = await Promise.all( + const staticUrls = await staticImportSpecifiers(code); + // Nested pre-fetches of a URL this module only reaches lazily are + // best-effort: a broken esm.sh build for one package logs a warning and the + // URL stays in the emitted code for the runtime to resolve at call time. A + // URL the module imports statically is part of its own import graph and must + // still resolve here, so the emitted artifact's static dependencies stay + // local. See `transforms/esm/specifier-resolver.ts` for the same rule on the + // SSR transform path. + const settledPaths = await Promise.allSettled( urlArray.map((esmUrl) => fetchEsmModule(esmUrl, tmpDir, localAdapter, esmCache)), ); @@ -85,12 +116,30 @@ export async function fetchEsmModule( const replacementMap = new Map(); for (let i = 0; i < urlArray.length; i++) { const url = urlArray[i]; - const cached = cachedPaths[i]; - if (url && cached) replacementMap.set(url, `file://${cached}`); + const result = settledPaths[i]; + if (!url || !result) continue; + if (result.status === "fulfilled") { + replacementMap.set(url, `file://${result.value}`); + continue; + } + + // A statically imported dependency must be local before this module is + // handed to the runtime loader, so its failure stays fatal. + if (staticUrls.has(url)) throw result.reason; + + logger.warn("Leaving an unfetchable lazy esm.sh module for runtime resolution", { + url, + error: result.reason instanceof Error ? result.reason.message : String(result.reason), + }); } - const combinedPattern = new RegExp(urlArray.map(escapeRegExp).join("|"), "g"); - code = code.replace(combinedPattern, (m) => replacementMap.get(m) ?? m); + if (replacementMap.size) { + const combinedPattern = new RegExp( + Array.from(replacementMap.keys()).map(escapeRegExp).join("|"), + "g", + ); + code = code.replace(combinedPattern, (m) => replacementMap.get(m) ?? m); + } } const hash = await generateHash(url); diff --git a/src/transforms/esm/specifier-resolver.test.ts b/src/transforms/esm/specifier-resolver.test.ts index b0a5f0e395..056eadc171 100644 --- a/src/transforms/esm/specifier-resolver.test.ts +++ b/src/transforms/esm/specifier-resolver.test.ts @@ -1,5 +1,5 @@ import "#veryfront/schemas/_test-setup.ts"; -import { assertEquals } from "#veryfront/testing/assert.ts"; +import { assertEquals, assertRejects } from "#veryfront/testing/assert.ts"; import { describe, it } from "#veryfront/testing/bdd.ts"; import type { CacheHttpModuleFn } from "./specifier-resolver.ts"; import { buildReplacements, rewriteModuleImports } from "./specifier-resolver.ts"; @@ -160,17 +160,61 @@ describe("transforms/esm/specifier-resolver", () => { assertEquals(result.size, 0); }); - it("propagates cache errors", async () => { - const code = `import foo from "https://esm.sh/foo";`; - let caught: Error | null = null; - try { - await buildReplacements(code, undefined, defaultOptions, async () => { + it("skips a dynamic specifier whose cache lookup throws instead of aborting", async () => { + // The motivating case: a lazy `import(...)` that never runs at render + // time. Pre-fetching it is an optimisation, so the specifier is left in + // place for the runtime to resolve at call time, and one upstream 500 + // does not abort the whole SSR transform. + const code = `export const load = () => import("https://esm.sh/foo");`; + const result = await buildReplacements( + code, + undefined, + defaultOptions, + async () => { throw new Error("cache failed"); - }); - } catch (e) { - caught = e as Error; - } - assertEquals(caught?.message, "cache failed"); + }, + ); + assertEquals(result.size, 0); + }); + + it("aborts when a static specifier's cache lookup throws", async () => { + // A static import belongs to the emitted module's own import graph. The + // artifact contract is that every static dependency is local before the + // runtime loader sees it, so this failure stays fatal. + const code = `import foo from "https://esm.sh/foo";`; + await assertRejects( + () => + buildReplacements(code, undefined, defaultOptions, async () => { + throw new Error("cache failed"); + }), + Error, + "cache failed", + ); + }); + + it("aborts when a specifier is imported both statically and dynamically", async () => { + const code = `import foo from "https://esm.sh/foo";\nexport const again = () =>` + + ` import("https://esm.sh/foo");`; + await assertRejects( + () => + buildReplacements(code, undefined, defaultOptions, async () => { + throw new Error("cache failed"); + }), + Error, + "cache failed", + ); + }); + + it("still resolves other specifiers when a dynamic one throws", async () => { + const code = `import ok from "https://esm.sh/ok";\n` + + `export const load = () => import("https://esm.sh/broken");`; + const cache: CacheHttpModuleFn = async (url) => { + if (url === "https://esm.sh/broken") throw new Error("upstream 500"); + return "/tmp/cache/http-ok.mjs"; + }; + const result = await buildReplacements(code, undefined, defaultOptions, cache); + assertEquals(result.get("https://esm.sh/ok"), "file:///tmp/cache/http-ok.mjs"); + assertEquals(result.has("https://esm.sh/broken"), false); }); }); @@ -189,21 +233,31 @@ describe("transforms/esm/specifier-resolver", () => { assertEquals(result.includes("https://esm.sh/react@18"), false); }); - it("propagates cache errors from rewriteModuleImports", async () => { - let caught: Error | null = null; - try { - await rewriteModuleImports( - `import foo from "https://esm.sh/foo";`, - "https://esm.sh/parent", - defaultOptions, - async () => { + it("leaves a dynamic specifier untouched when its cache lookup throws", async () => { + // Same split contract as buildReplacements: a lazy import that fails to + // pre-fetch stays in the emitted code for the runtime to resolve. + const original = `export const load = () => import("https://esm.sh/foo");`; + const result = await rewriteModuleImports( + original, + "https://esm.sh/parent", + defaultOptions, + async () => { + throw new Error("cache failed"); + }, + ); + assertEquals(result, original); + }); + + it("aborts when a static specifier's cache lookup throws", async () => { + const original = `import foo from "https://esm.sh/foo";`; + await assertRejects( + () => + rewriteModuleImports(original, "https://esm.sh/parent", defaultOptions, async () => { throw new Error("cache failed"); - }, - ); - } catch (e) { - caught = e as Error; - } - assertEquals(caught?.message, "cache failed"); + }), + Error, + "cache failed", + ); }); }); }); diff --git a/src/transforms/esm/specifier-resolver.ts b/src/transforms/esm/specifier-resolver.ts index af6da6ed8c..bcfcb19a59 100644 --- a/src/transforms/esm/specifier-resolver.ts +++ b/src/transforms/esm/specifier-resolver.ts @@ -9,7 +9,10 @@ import { basename } from "#veryfront/compat/path/index.ts"; import { resolveImport } from "#veryfront/modules/import-map/resolver.ts"; -import { parseImports, replaceSpecifiers } from "./lexer.ts"; +import { rendererLogger } from "#veryfront/utils"; +import { type ImportSpecifier, parseImports, replaceSpecifiers } from "./lexer.ts"; + +const logger = rendererLogger.component("specifier-resolver"); import { type CacheOptions, isCanonicalReactEsmUrl, @@ -102,8 +105,39 @@ async function resolveSpecifier( return resolveSpecifier(mapped, baseUrl, options, cacheHttpModule); } +/** + * Specifiers this module only ever reaches through `import(...)`. + * + * The distinction decides what a resolution failure means. A static import is + * part of the emitted module's own import graph, so the artifact contract holds + * for it: every static dependency resolves to a local path before the module is + * handed to the runtime loader, and a failure to do that is fatal, exactly as + * it was before graceful degradation existed. + * + * A dynamic specifier is resolved by the runtime at call time and is routinely + * guarded by the caller (`platform/adapters/redis/modules.js` only calls + * `await import("redis")` when the redis adapter is actually used). Pre-fetching + * it is an optimisation, so failing to pre-fetch it leaves the specifier in + * place rather than taking down a render that would never have imported it. + */ +function isDynamicOnly(imports: readonly ImportSpecifier[]): Set { + const dynamic = new Set(); + const staticSpecifiers = new Set(); + + for (const imp of imports) { + if (!imp.n) continue; + (imp.d > -1 ? dynamic : staticSpecifiers).add(imp.n); + } + + for (const specifier of staticSpecifiers) dynamic.delete(specifier); + return dynamic; +} + /** * Build a map of specifier replacements by resolving all imports in the code. + * + * Resolution failure is fatal for a static import and best-effort for a + * specifier only ever used in `import(...)`. See {@link isDynamicOnly}. */ export async function buildReplacements( code: string, @@ -113,8 +147,9 @@ export async function buildReplacements( ): Promise> { const imports = await parseImports(code); const uniqueSpecifiers = [...new Set(imports.map((imp) => imp.n).filter(Boolean))] as string[]; + const dynamicOnly = isDynamicOnly(imports); - const results = await Promise.all( + const settled = await Promise.allSettled( uniqueSpecifiers.map(async (specifier) => ({ specifier, resolved: await resolveSpecifier(specifier, baseUrl, options, cacheHttpModule), @@ -122,8 +157,26 @@ export async function buildReplacements( ); const replacements = new Map(); - for (const { specifier, resolved } of results) { - if (resolved && resolved !== specifier) replacements.set(specifier, resolved); + for (let i = 0; i < settled.length; i++) { + const outcome = settled[i]; + const specifier = uniqueSpecifiers[i]; + if (!outcome || specifier === undefined) continue; + + if (outcome.status === "fulfilled") { + const { specifier: resolvedFor, resolved } = outcome.value; + if (resolved && resolved !== resolvedFor) replacements.set(resolvedFor, resolved); + continue; + } + + // A static import must resolve. Leaving one unresolved would emit a module + // whose own import graph reaches outside the local cache, which is not what + // the runtime loader is handed anywhere else. + if (!dynamicOnly.has(specifier)) throw outcome.reason; + + logger.warn("Leaving an unresolvable dynamic specifier for runtime resolution", { + specifier, + error: outcome.reason instanceof Error ? outcome.reason.message : String(outcome.reason), + }); } return replacements; diff --git a/src/utils/version-constant.ts b/src/utils/version-constant.ts index 082e03ca5c..4e6ce2b267 100644 --- a/src/utils/version-constant.ts +++ b/src/utils/version-constant.ts @@ -1,4 +1,4 @@ // Keep in sync with deno.json version. // scripts/release.ts updates this constant during releases. /** Shared version value. */ -export const VERSION = "0.1.1095"; +export const VERSION = "0.1.1098";